fedimbed: nullcheck postData, misskey mastoapi emoji fix

This commit is contained in:
Cynthia Foxwell 2025-03-14 18:17:18 -06:00
parent 9fba9d2c9e
commit 134f417b91
Signed by: Cynosphere
SSH key fingerprint: SHA256:H3SM8ufP/uxqLwKSH7xY89TDnbR9uOHzjLoBr0tlajk

View file

@ -786,7 +786,9 @@ async function processUrl(msg, url, spoiler = false, command = false) {
// Fetch post // Fetch post
const postData = await fetchPost(url, platform); const postData = await fetchPost(url, platform);
if (postData._fedimbed_mastoapi) { if (!postData) {
return {};
} else if (postData._fedimbed_mastoapi) {
if (postData.url) { if (postData.url) {
const realUrlObj = new URL(postData.url); const realUrlObj = new URL(postData.url);
if (realUrlObj.origin != urlObj.origin) { if (realUrlObj.origin != urlObj.origin) {
@ -812,7 +814,9 @@ async function processUrl(msg, url, spoiler = false, command = false) {
avatar: postData.account?.avatar ?? postData.user?.avatarUrl, avatar: postData.account?.avatar ?? postData.user?.avatarUrl,
}; };
timestamp = postData.created_at ?? postData.createdAt; timestamp = postData.created_at ?? postData.createdAt;
emotes = postData.emojis.filter((x) => !x.name.endsWith("#.")).map((x) => ({name: `:${x.name}:`, url: x.url})); emotes = postData.emojis
.filter((x) => !(x.name ?? x.shortcode)?.endsWith("#."))
.map((x) => ({name: `:${x.name ?? x.shortcode}:`, url: x.url}));
sensitive = postData.sensitive; sensitive = postData.sensitive;
if (postData.in_reply_to_id) { if (postData.in_reply_to_id) {
@ -1487,6 +1491,7 @@ events.add("messageCreate", "fedimbed", async function (msg) {
logger.verbose("fedimbed", `Hit "${service}" for "${url}", processing now.`); logger.verbose("fedimbed", `Hit "${service}" for "${url}", processing now.`);
try { try {
const {response, sendWait} = await processUrl(msg, url, hasSpoiler); const {response, sendWait} = await processUrl(msg, url, hasSpoiler);
if (!response) return;
await msg.channel.createMessage(response).then(() => { await msg.channel.createMessage(response).then(() => {
if (sendWait) { if (sendWait) {
msg.removeReaction("\uD83D\uDCE4"); msg.removeReaction("\uD83D\uDCE4");
@ -1497,7 +1502,7 @@ events.add("messageCreate", "fedimbed", async function (msg) {
} }
}); });
} catch (err) { } catch (err) {
logger.error("fedimbed", `Error processing "${url}":\n` + err.stack); logger.error("fedimbed", `Error processing "${url}":\n${err.stack}`);
} }
break; break;
} }