diff --git a/src/lib/guildSettings.js b/src/lib/guildSettings.js index fa26f80..76e13a2 100644 --- a/src/lib/guildSettings.js +++ b/src/lib/guildSettings.js @@ -6,6 +6,7 @@ const flags = Object.freeze({ fedimbed: 1 << 2, bskyEmbeds: 1 << 3, bskyQuoteOnly: 1 << 4, + twitterEmbeds: 1 << 5, }); async function getFlags(guildId) { diff --git a/src/modules/fedimbed.js b/src/modules/fedimbed.js index c3b87ba..d28e92c 100644 --- a/src/modules/fedimbed.js +++ b/src/modules/fedimbed.js @@ -928,10 +928,12 @@ function getStatsMasto(post) { async function processUrl(msg, url, spoiler = false, command = false) { let canFedi = await hasFlag(msg.guildID, "fedimbed"); let canBsky = await hasFlag(msg.guildID, "bskyEmbeds"); + let canTwitter = await hasFlag(msg.guildID, "twitterEmbeds"); if (command === true) { canFedi = true; canBsky = true; + canTwitter = true; } let invalidUrl = false; @@ -951,7 +953,7 @@ async function processUrl(msg, url, spoiler = false, command = false) { return {}; } } - if (!canFedi) return {}; + if (!canFedi && !canTwitter) return {}; // some lemmy instances have old reddit frontend subdomains // but these frontends are just frontends and dont actually expose the API @@ -965,7 +967,7 @@ async function processUrl(msg, url, spoiler = false, command = false) { if (PATH_REGEX.twitter.test(urlObj.pathname)) { let hostname = urlObj.hostname.replace(/^www\./, ""); if (TW_DOMAINS.includes(hostname)) { - if (command === true) { + if (canTwitter === true) { urlObj.hostname = "tw.c7.pm"; url = urlObj.toString(); hostname = "tw.c7.pm"; @@ -975,10 +977,10 @@ async function processUrl(msg, url, spoiler = false, command = false) { logger.info("fedimbed", `Got new Twitter domain: ${hostname}`); } if (platform != "Nitter") return {}; - if (platform == "Nitter" && command === false) { + if (platform == "Nitter") { if (hostname != "tw.c7.pm" && hostname != "tw.counter-strike.gay") logger.info("fedimbed", `Got new Nitter domain running fork: ${hostname}`); - return {}; + if (canTwitter === false) return {}; } }