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
|
- 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
|
- 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
|
- 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)
|
- 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
|
- 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
|
- Make the first post compelling to encourage thread reading
|
||||||
- Do NOT include post numbers or thread indicators (e.g., "1/5" or "🧵")
|
- Do NOT include post numbers or thread indicators (e.g., "1/5" or "🧵")
|
||||||
- Plain text format (no markdown)
|
- 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)
|
- Plain text format (no markdown)
|
||||||
- Professional yet friendly tone, conversational style suitable for a broader audience
|
- Professional yet friendly tone, conversational style suitable for a broader audience
|
||||||
- Include 3-5 relevant hashtags
|
- Include 3-5 relevant hashtags
|
||||||
- Keep it concise but informative
|
- 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:**
|
**Universal requirements:**
|
||||||
- All announcements must include a call to action to donate (https://donate.nhcarrigan.com)
|
- All announcements must include a call to action to donate (https://donate.nhcarrigan.com)
|
||||||
@@ -71,13 +71,13 @@ const announcementJsonSchema = {
|
|||||||
type: "object",
|
type: "object",
|
||||||
},
|
},
|
||||||
plaintext: {
|
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,
|
maxLength: 1900,
|
||||||
minLength: 100,
|
minLength: 100,
|
||||||
type: "string",
|
type: "string",
|
||||||
},
|
},
|
||||||
threaded: {
|
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: {
|
items: {
|
||||||
description: "A single post in the thread (max 280 characters, no post numbers or thread indicators)",
|
description: "A single post in the thread (max 280 characters, no post numbers or thread indicators)",
|
||||||
maxLength: 280,
|
maxLength: 280,
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import { announceOnDiscourse } from "../modules/announceOnDiscourse.js";
|
|||||||
import { announceOnFacebook } from "../modules/announceOnFacebook.js";
|
import { announceOnFacebook } from "../modules/announceOnFacebook.js";
|
||||||
import { announceOnMastodon } from "../modules/announceOnMastodon.js";
|
import { announceOnMastodon } from "../modules/announceOnMastodon.js";
|
||||||
import { announceOnReddit } from "../modules/announceOnReddit.js";
|
import { announceOnReddit } from "../modules/announceOnReddit.js";
|
||||||
import { announceOnThreads } from "../modules/announceOnThreads.js";
|
|
||||||
import { announceOnTwitter } from "../modules/announceOnTwitter.js";
|
import { announceOnTwitter } from "../modules/announceOnTwitter.js";
|
||||||
import { generateAnnouncements } from "../modules/generateAnnouncements.js";
|
import { generateAnnouncements } from "../modules/generateAnnouncements.js";
|
||||||
import { getIpFromRequest } from "../modules/getIpFromRequest.js";
|
import { getIpFromRequest } from "../modules/getIpFromRequest.js";
|
||||||
@@ -116,7 +115,6 @@ export const announcementRoutes: FastifyPluginAsync = async(server) => {
|
|||||||
blueskyResult,
|
blueskyResult,
|
||||||
twitterResult,
|
twitterResult,
|
||||||
facebookResult,
|
facebookResult,
|
||||||
threadsResult,
|
|
||||||
mastodonResult,
|
mastodonResult,
|
||||||
discourseResult,
|
discourseResult,
|
||||||
] = await Promise.allSettled([
|
] = await Promise.allSettled([
|
||||||
@@ -125,15 +123,14 @@ export const announcementRoutes: FastifyPluginAsync = async(server) => {
|
|||||||
announceOnBluesky(threaded),
|
announceOnBluesky(threaded),
|
||||||
announceOnTwitter(threaded),
|
announceOnTwitter(threaded),
|
||||||
announceOnFacebook(plaintext),
|
announceOnFacebook(plaintext),
|
||||||
announceOnThreads(threaded),
|
|
||||||
announceOnMastodon(threaded),
|
announceOnMastodon(threaded),
|
||||||
announceOnDiscourse(markdownTitle, markdownContent, type),
|
announceOnDiscourse(markdownTitle, markdownContent, type),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return await reply.status(201).send({
|
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,
|
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,
|
rawPost: announcement.response,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user