diff --git a/server/src/config/announcements.ts b/server/src/config/announcements.ts index f7f2a96..226cf72 100644 --- a/server/src/config/announcements.ts +++ b/server/src/config/announcements.ts @@ -24,7 +24,7 @@ Platform-specific requirements: - Include clear calls to action - The same content will be used for Discord, Reddit, Ko-fi, and Patreon, so make it work well for all these platforms -**Threaded (for Threads, Twitter, Bluesky, and Mastodon):** +**Threaded (for Twitter, Bluesky, and Mastodon):** - Break content into a thread of individual posts - Each post should be under 280 characters (to work for Twitter's limit, which is the most restrictive) - Posts should flow naturally from one to the next @@ -32,14 +32,14 @@ Platform-specific requirements: - Make the first post compelling to encourage thread reading - Do NOT include post numbers or thread indicators (e.g., "1/5" or "🧵") - Plain text format (no markdown) -- The same thread will be used for Threads, Twitter, Bluesky, and Mastodon +- The same thread will be used for Twitter, Bluesky, and Mastodon -**Plaintext (for LinkedIn, Facebook, and Peerlist):** +**Plaintext (for LinkedIn and Facebook):** - Plain text format (no markdown) - Professional yet friendly tone, conversational style suitable for a broader audience - Include 3-5 relevant hashtags - Keep it concise but informative -- The same content will be used for LinkedIn, Facebook, and Peerlist +- The same content will be used for LinkedIn and Facebook **Universal requirements:** - All announcements must include a call to action to donate (https://donate.nhcarrigan.com) @@ -71,13 +71,13 @@ const announcementJsonSchema = { type: "object", }, plaintext: { - description: "Plain text announcement for LinkedIn, Facebook, and Peerlist (shared content). Should be professional yet friendly, conversational style suitable for a broader audience. Include 3-5 relevant hashtags and calls to action for donating and joining Discord.", + description: "Plain text announcement for LinkedIn and Facebook (shared content). Should be professional yet friendly, conversational style suitable for a broader audience. Include 3-5 relevant hashtags and calls to action for donating and joining Discord.", maxLength: 1900, minLength: 100, type: "string", }, threaded: { - description: "Array of individual posts that form a thread. Will be used for Threads, Twitter, Bluesky, and Mastodon. Each post should be under 280 characters (Twitter's limit) and flow naturally from one to the next.", + description: "Array of individual posts that form a thread. Will be used for Twitter, Bluesky, and Mastodon. Each post should be under 280 characters (Twitter's limit) and flow naturally from one to the next.", items: { description: "A single post in the thread (max 280 characters, no post numbers or thread indicators)", maxLength: 280, diff --git a/server/src/routes/announcement.ts b/server/src/routes/announcement.ts index 6a99744..2687834 100644 --- a/server/src/routes/announcement.ts +++ b/server/src/routes/announcement.ts @@ -12,7 +12,6 @@ import { announceOnDiscourse } from "../modules/announceOnDiscourse.js"; import { announceOnFacebook } from "../modules/announceOnFacebook.js"; import { announceOnMastodon } from "../modules/announceOnMastodon.js"; import { announceOnReddit } from "../modules/announceOnReddit.js"; -import { announceOnThreads } from "../modules/announceOnThreads.js"; import { announceOnTwitter } from "../modules/announceOnTwitter.js"; import { generateAnnouncements } from "../modules/generateAnnouncements.js"; import { getIpFromRequest } from "../modules/getIpFromRequest.js"; @@ -116,7 +115,6 @@ export const announcementRoutes: FastifyPluginAsync = async(server) => { blueskyResult, twitterResult, facebookResult, - threadsResult, mastodonResult, discourseResult, ] = await Promise.allSettled([ @@ -125,15 +123,14 @@ export const announcementRoutes: FastifyPluginAsync = async(server) => { announceOnBluesky(threaded), announceOnTwitter(threaded), announceOnFacebook(plaintext), - announceOnThreads(threaded), announceOnMastodon(threaded), announceOnDiscourse(markdownTitle, markdownContent, type), ]); return await reply.status(201).send({ - alert: `Please remember to manually post to: LinkedIn, Peerlist, Ko-fi, and Patreon.`, + alert: `Please remember to manually post to: LinkedIn, Ko-fi, and Patreon.`, cost: announcement.cost, - message: `Announcement processed. Discord: ${getPlatformResult(discordResult)}, Reddit: ${getPlatformResult(redditResult)}, Bluesky: ${getPlatformResult(blueskyResult)}, Twitter: ${getPlatformResult(twitterResult)}, Facebook: ${getPlatformResult(facebookResult)}, Threads: ${getPlatformResult(threadsResult)}, Mastodon: ${getPlatformResult(mastodonResult)}, Discourse: ${getPlatformResult(discourseResult)}`, + message: `Announcement processed. Discord: ${getPlatformResult(discordResult)}, Reddit: ${getPlatformResult(redditResult)}, Bluesky: ${getPlatformResult(blueskyResult)}, Twitter: ${getPlatformResult(twitterResult)}, Facebook: ${getPlatformResult(facebookResult)}, Mastodon: ${getPlatformResult(mastodonResult)}, Discourse: ${getPlatformResult(discourseResult)}`, rawPost: announcement.response, }); },