3 Commits

Author SHA1 Message Date
minori 7774634ffe Merge pull request 'deps: update turbo to 2.8.11' (#18) from dependencies/update-turbo into main
Node.js CI / CI (push) Successful in 1m1s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m29s
2026-03-09 07:01:36 -07:00
minori b1bfd2439f deps: update turbo to 2.8.11
Node.js CI / CI (pull_request) Successful in 1m10s
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 1m19s
2026-03-07 07:02:02 -08:00
hikari 637699f5bb feat: announce on Discourse support forum (#17)
Node.js CI / CI (push) Successful in 53s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 2m32s
## Summary

- Adds `announceOnDiscourse` module to post announcements to the NHCarrigan Discourse support forum (category 16), tagged by announcement type
- Adds `chunkContent` utility to split long announcements at paragraph/line boundaries for Discord (2000 chars), Reddit (40,000 chars), and Discourse (32,000 chars); Reddit overflows chain as nested replies, Discord as sequential messages, Discourse as sequential replies
- Refactors the announcement route to run all platforms concurrently via `Promise.allSettled`, ensuring a failure on any one platform never blocks the others, with all results reported back
- Fixes generation failure response from incorrect `201` to `500`

 This PR was created with love from Hikari~ 🌸

Reviewed-on: #17
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
2026-03-03 18:05:27 -08:00
3 changed files with 41 additions and 46 deletions
+11 -16
View File
@@ -7,15 +7,12 @@
import { DiscordAnalytics } from "@nhcarrigan/discord-analytics";
import { Client, Events, GatewayIntentBits, Partials } from "discord.js";
import { chatInputInteractionCreate } from "./events/interactionCreate.js";
import {
guildMessageCreate,
directMessageCreate,
} from "./events/messageCreate.js";
import { logger } from "./utils/logger.js";
/*
* Import {
* guildMessageCreate,
* directMessageCreate,
* } from "./events/messageCreate.js";
*/
const hikari = new Client({
intents: [
GatewayIntentBits.Guilds,
@@ -38,15 +35,13 @@ hikari.once(Events.ClientReady, () => {
analytics.startCron();
});
/*
* Hikari.on(Events.MessageCreate, (message) => {
* if (!message.inGuild()) {
* void directMessageCreate(hikari, message);
* return;
* }
* void guildMessageCreate(hikari, message);
* });
*/
hikari.on(Events.MessageCreate, (message) => {
if (!message.inGuild()) {
void directMessageCreate(hikari, message);
return;
}
void guildMessageCreate(hikari, message);
});
hikari.on(Events.InteractionCreate, (interaction) => {
if (interaction.isChatInputCommand()) {
+1 -1
View File
@@ -18,7 +18,7 @@
"@nhcarrigan/eslint-config": "5.2.0",
"@nhcarrigan/typescript-config": "4.0.0",
"eslint": "9.30.1",
"turbo": "2.8.10",
"turbo": "2.8.11",
"typescript": "5.8.3"
}
}
+29 -29
View File
@@ -18,8 +18,8 @@ importers:
specifier: 9.30.1
version: 9.30.1(jiti@2.4.2)
turbo:
specifier: 2.8.10
version: 2.8.10
specifier: 2.8.11
version: 2.8.11
typescript:
specifier: 5.8.3
version: 5.8.3
@@ -4618,38 +4618,38 @@ packages:
resolution: {integrity: sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==}
engines: {node: ^18.17.0 || >=20.5.0}
turbo-darwin-64@2.8.10:
resolution: {integrity: sha512-A03fXh+B7S8mL3PbdhTd+0UsaGrhfyPkODvzBDpKRY7bbeac4MDFpJ7I+Slf2oSkCEeSvHKR7Z4U71uKRUfX7g==}
turbo-darwin-64@2.8.11:
resolution: {integrity: sha512-XKaCWaz4OCt77oYYvGCIRpvYD4c/aNaKjRkUpv+e8rN3RZb+5Xsyew4yRO+gaHdMIUhQznXNXfHlhs+/p7lIhA==}
cpu: [x64]
os: [darwin]
turbo-darwin-arm64@2.8.10:
resolution: {integrity: sha512-sidzowgWL3s5xCHLeqwC9M3s9M0i16W1nuQF3Mc7fPHpZ+YPohvcbVFBB2uoRRHYZg6yBnwD4gyUHKTeXfwtXA==}
turbo-darwin-arm64@2.8.11:
resolution: {integrity: sha512-VvynLHGUNvQ9k7GZjRPSsRcK4VkioTfFb7O7liAk4nHKjEcMdls7GqxzjVWgJiKz3hWmQGaP9hRa9UUnhVWCxA==}
cpu: [arm64]
os: [darwin]
turbo-linux-64@2.8.10:
resolution: {integrity: sha512-YK9vcpL3TVtqonB021XwgaQhY9hJJbKKUhLv16osxV0HkcQASQWUqR56yMge7puh6nxU67rQlTq1b7ksR1T3KA==}
turbo-linux-64@2.8.11:
resolution: {integrity: sha512-cbSn37dcm+EmkQ7DD0euy7xV7o2el4GAOr1XujvkAyKjjNvQ+6QIUeDgQcwAx3D17zPpDvfDMJY2dLQadWnkmQ==}
cpu: [x64]
os: [linux]
turbo-linux-arm64@2.8.10:
resolution: {integrity: sha512-3+j2tL0sG95iBJTm+6J8/45JsETQABPqtFyYjVjBbi6eVGdtNTiBmHNKrbvXRlQ3ZbUG75bKLaSSDHSEEN+btQ==}
turbo-linux-arm64@2.8.11:
resolution: {integrity: sha512-+trymp2s2aBrhS04l6qFxcExzZ8ffndevuUB9c5RCeqsVpZeiWuGQlWNm5XjOmzoMayxRARZ5ma7yiWbGMiLqQ==}
cpu: [arm64]
os: [linux]
turbo-windows-64@2.8.10:
resolution: {integrity: sha512-hdeF5qmVY/NFgiucf8FW0CWJWtyT2QPm5mIsX0W1DXAVzqKVXGq+Zf+dg4EUngAFKjDzoBeN6ec2Fhajwfztkw==}
turbo-windows-64@2.8.11:
resolution: {integrity: sha512-3kJjFSM4yw1n9Uzmi+XkAUgCae19l/bH6RJ442xo7mnZm0tpOjo33F+FYHoSVpIWVMd0HG0LDccyafPSdylQbA==}
cpu: [x64]
os: [win32]
turbo-windows-arm64@2.8.10:
resolution: {integrity: sha512-QGdr/Q8LWmj+ITMkSvfiz2glf0d7JG0oXVzGL3jxkGqiBI1zXFj20oqVY0qWi+112LO9SVrYdpHS0E/oGFrMbQ==}
turbo-windows-arm64@2.8.11:
resolution: {integrity: sha512-JOM4uF2vuLsJUvibdR6X9QqdZr6BhC6Nhlrw4LKFPsXZZI/9HHLoqAiYRpE4MuzIwldCH/jVySnWXrI1SKto0g==}
cpu: [arm64]
os: [win32]
turbo@2.8.10:
resolution: {integrity: sha512-OxbzDES66+x7nnKGg2MwBA1ypVsZoDTLHpeaP4giyiHSixbsiTaMyeJqbEyvBdp5Cm28fc+8GG6RdQtic0ijwQ==}
turbo@2.8.11:
resolution: {integrity: sha512-H+rwSHHPLoyPOSoHdmI1zY0zy0GGj1Dmr7SeJW+nZiWLz2nex8EJ+fkdVabxXFMNEux+aywI4Sae8EqhmnOv4A==}
hasBin: true
twitter-api-v2@1.28.0:
@@ -10192,32 +10192,32 @@ snapshots:
transitivePeerDependencies:
- supports-color
turbo-darwin-64@2.8.10:
turbo-darwin-64@2.8.11:
optional: true
turbo-darwin-arm64@2.8.10:
turbo-darwin-arm64@2.8.11:
optional: true
turbo-linux-64@2.8.10:
turbo-linux-64@2.8.11:
optional: true
turbo-linux-arm64@2.8.10:
turbo-linux-arm64@2.8.11:
optional: true
turbo-windows-64@2.8.10:
turbo-windows-64@2.8.11:
optional: true
turbo-windows-arm64@2.8.10:
turbo-windows-arm64@2.8.11:
optional: true
turbo@2.8.10:
turbo@2.8.11:
optionalDependencies:
turbo-darwin-64: 2.8.10
turbo-darwin-arm64: 2.8.10
turbo-linux-64: 2.8.10
turbo-linux-arm64: 2.8.10
turbo-windows-64: 2.8.10
turbo-windows-arm64: 2.8.10
turbo-darwin-64: 2.8.11
turbo-darwin-arm64: 2.8.11
turbo-linux-64: 2.8.11
turbo-linux-arm64: 2.8.11
turbo-windows-64: 2.8.11
turbo-windows-arm64: 2.8.11
twitter-api-v2@1.28.0: {}