fedimbed: quoted fix, forgot bsky quotes
This commit is contained in:
parent
37c09e1944
commit
e9ad6e570d
1 changed files with 54 additions and 35 deletions
|
@ -325,7 +325,7 @@ function getStatsBluesky(post) {
|
|||
return stats.join("\u3000");
|
||||
}
|
||||
|
||||
async function blueskyQuoteEmbed(quote) {
|
||||
async function blueskyQuoteEmbed(quote, minimal = false) {
|
||||
const images = [];
|
||||
const videos = [];
|
||||
|
||||
|
@ -349,6 +349,10 @@ async function blueskyQuoteEmbed(quote) {
|
|||
};
|
||||
}
|
||||
|
||||
const quoteUrl = `https://bsky.app/profile/${quote.author.did}/post/${quote.uri.substring(
|
||||
quote.uri.lastIndexOf("/") + 1
|
||||
)}`;
|
||||
|
||||
for (const label of quote.labels) {
|
||||
if (label.val === "!hide") {
|
||||
hidden = true;
|
||||
|
@ -373,27 +377,34 @@ async function blueskyQuoteEmbed(quote) {
|
|||
}
|
||||
content = content.replaceAll("`", "\u02cb").replaceAll("*", "\u2217").replaceAll("||", "|\u200b|");
|
||||
|
||||
const header = [
|
||||
{
|
||||
type: 10,
|
||||
content: `-# ${Icons.fedimbed.quote} Quoted Post`,
|
||||
},
|
||||
{
|
||||
type: 9,
|
||||
components: [
|
||||
const header = minimal
|
||||
? [
|
||||
{
|
||||
type: 10,
|
||||
content: `## ${quote.author.displayName}\n-# [@${quote.author.handle}](https://bsky.app/profile/${quote.author.did})\n${content}`,
|
||||
content: `### ${Icons.fedimbed.quote} [${quote.author.displayName} (@${quote.author.handle})](${quoteUrl})`,
|
||||
},
|
||||
],
|
||||
accessory: {
|
||||
type: 11,
|
||||
media: {
|
||||
url: quote.author.avatar,
|
||||
]
|
||||
: [
|
||||
{
|
||||
type: 10,
|
||||
content: `-# ${Icons.fedimbed.quote} Quoted Post`,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
{
|
||||
type: 9,
|
||||
components: [
|
||||
{
|
||||
type: 10,
|
||||
content: `## ${quote.author.displayName}\n-# [@${quote.author.handle}](https://bsky.app/profile/${quote.author.did})\n${content}`,
|
||||
},
|
||||
],
|
||||
accessory: {
|
||||
type: 11,
|
||||
media: {
|
||||
url: quote.author.avatar,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
components.push(...header);
|
||||
|
||||
if (quote.embeds?.[0]) {
|
||||
|
@ -445,23 +456,30 @@ async function blueskyQuoteEmbed(quote) {
|
|||
}
|
||||
}
|
||||
|
||||
const footer = {
|
||||
type: 9,
|
||||
components: [
|
||||
{
|
||||
const footer = minimal
|
||||
? {
|
||||
type: 10,
|
||||
content: `### -# ${getStatsBluesky(quote)}\n${Icons.fedimbed.bluesky} Bluesky \u2022 <t:${Math.floor(
|
||||
content: `${Icons.fedimbed.bluesky} Bluesky \u2022 <t:${Math.floor(
|
||||
new Date(quote.value.createdAt).getTime() / 1000
|
||||
)}:F>`,
|
||||
},
|
||||
],
|
||||
accessory: {
|
||||
type: 2,
|
||||
style: 5,
|
||||
label: "View Post",
|
||||
url: `https://bsky.app/profile/${quote.author.did}/post/${quote.uri.substring(quote.uri.lastIndexOf("/") + 1)}`,
|
||||
},
|
||||
};
|
||||
}
|
||||
: {
|
||||
type: 9,
|
||||
components: [
|
||||
{
|
||||
type: 10,
|
||||
content: `### -# ${getStatsBluesky(quote)}\n${Icons.fedimbed.bluesky} Bluesky \u2022 <t:${Math.floor(
|
||||
new Date(quote.value.createdAt).getTime() / 1000
|
||||
)}:F>`,
|
||||
},
|
||||
],
|
||||
accessory: {
|
||||
type: 2,
|
||||
style: 5,
|
||||
label: "View Post",
|
||||
url: quoteUrl,
|
||||
},
|
||||
};
|
||||
|
||||
if (images.length > 0) {
|
||||
components.push({
|
||||
|
@ -565,7 +583,7 @@ async function bluesky(msg, url, spoiler = false, minimal = false) {
|
|||
case "app.bsky.embed.record#view": {
|
||||
hasQuote = true;
|
||||
const quote = post.embed.record;
|
||||
quoteData = await blueskyQuoteEmbed(quote);
|
||||
quoteData = await blueskyQuoteEmbed(quote, minimal);
|
||||
|
||||
if (quoteData.adult) adult = true;
|
||||
if (quoteData.hidden) hidden = true;
|
||||
|
@ -1551,8 +1569,9 @@ async function processUrl(msg, url, spoiler = false, command = false, inQuote =
|
|||
const quoteComponents = quoteRes.response.components[0].components;
|
||||
const quoteContext = `-# ${Icons.fedimbed.quote} Quoted Post`;
|
||||
if (quoteComponents[0].type == 10) {
|
||||
quoteComponents[0].content =
|
||||
(minimal ? Icons.fedimbed.quote + " " : quoteContext + "\n") + quoteComponents[0].content;
|
||||
quoteComponents[0].content = minimal
|
||||
? quoteComponents[0].content.replace(/^### /, "$& " + Icons.fedimbed.quote)
|
||||
: quoteContext + "\n" + quoteComponents[0].content;
|
||||
} else {
|
||||
quoteComponents.splice(0, 0, {type: 10, content: quoteContext});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue