generated from nhcarrigan/template
feat(announcements): remove threads posting and peerlist reminder (#23)
## Summary - Removes automated announcement posting to Threads (moving to manual cross-posting as part of social engagement strategy) - Removes Peerlist from the manual posting reminder (moving to social engagement rather than product announcements) - Updates system prompt and JSON schema descriptions to reflect the current set of platforms ## Test Plan - [ ] Trigger an announcement and confirm Threads is no longer called - [ ] Confirm the alert in the response no longer mentions Peerlist - [ ] Confirm lint and build pass (verified locally) ✨ This issue was created with help from Hikari~ 🌸 Reviewed-on: #23 Co-authored-by: Hikari <hikari@nhcarrigan.com> Co-committed-by: Hikari <hikari@nhcarrigan.com>
This commit was merged in pull request #23.
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user