From cef8551a358b974af9af3f2a0f0a334ade580387 Mon Sep 17 00:00:00 2001 From: kitt Date: Fri, 30 Dec 2022 23:00:12 -0500 Subject: [PATCH 1/2] add a mastodon test command --- app/index.mjs | 2 ++ app/social/index.mjs | 8 ++++---- package.json | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/index.mjs b/app/index.mjs index dd41d58..587a7be 100644 --- a/app/index.mjs +++ b/app/index.mjs @@ -4,6 +4,7 @@ import cron from './cron.mjs'; import { sendStatuses, testStatuses } from './social/index.mjs'; import { updateAll } from './data/index.mjs'; import { warmCaches } from "./splatnet/index.mjs"; +import MastodonClient from './social/clients/MastodonClient.mjs'; consoleStamp(console); dotenv.config(); @@ -12,6 +13,7 @@ const actions = { cron, social: sendStatuses, socialTest: testStatuses, + socialTestMastodon: () => testStatuses([new MastodonClient]), splatnet: updateAll, warmCaches, } diff --git a/app/social/index.mjs b/app/social/index.mjs index 01ed7bc..5c166d4 100644 --- a/app/social/index.mjs +++ b/app/social/index.mjs @@ -34,10 +34,10 @@ export function defaultStatusGeneratorManager() { ); } -export function testStatusGeneratorManager() { +export function testStatusGeneratorManager(additionalClients) { return new StatusGeneratorManager( defaultStatusGenerators(), - [new FileWriter], + [new FileWriter, ...additionalClients], ); } @@ -45,6 +45,6 @@ export function sendStatuses() { return defaultStatusGeneratorManager().sendStatuses(); } -export function testStatuses() { - return testStatusGeneratorManager().sendStatuses(true); +export function testStatuses(additionalClients = []) { + return testStatusGeneratorManager(additionalClients).sendStatuses(true); } diff --git a/package.json b/package.json index 7b83af5..504013a 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "cron": "node app/index.mjs cron", "social": "node app/index.mjs social", "social:test": "node app/index.mjs socialTest", + "social:test:mastodon": "node app/index.mjs socialTestMastodon", "splatnet": "node app/index.mjs splatnet", "warmCaches": "node app/index.mjs warmCaches" }, From b87108d2d7f791cb0726c84afaf7e87c53ea1a75 Mon Sep 17 00:00:00 2001 From: kitt Date: Fri, 30 Dec 2022 23:01:45 -0500 Subject: [PATCH 2/2] Add Content Wrappers --- app/social/Status.mjs | 1 + app/social/clients/MastodonClient.mjs | 2 ++ app/social/generators/SplatfestResultsStatus.mjs | 10 ++++++++++ app/social/generators/StatusGenerator.mjs | 5 +++++ 4 files changed, 18 insertions(+) diff --git a/app/social/Status.mjs b/app/social/Status.mjs index db954c5..c124812 100644 --- a/app/social/Status.mjs +++ b/app/social/Status.mjs @@ -1,5 +1,6 @@ export default class Status { status = null; + contentWrapper = null; media = []; } diff --git a/app/social/clients/MastodonClient.mjs b/app/social/clients/MastodonClient.mjs index 8ceac8d..2d75841 100644 --- a/app/social/clients/MastodonClient.mjs +++ b/app/social/clients/MastodonClient.mjs @@ -42,6 +42,8 @@ export default class MastodonClient extends Client // Send status await masto.statuses.create({ status: status.status, + spoilerText: status.contentWrapper, + sensitive: !!status.contentWrapper, // Without the sensitive property the image is still visible mediaIds, }); } diff --git a/app/social/generators/SplatfestResultsStatus.mjs b/app/social/generators/SplatfestResultsStatus.mjs index 7333ee1..ec250a7 100644 --- a/app/social/generators/SplatfestResultsStatus.mjs +++ b/app/social/generators/SplatfestResultsStatus.mjs @@ -35,6 +35,16 @@ export default class SplatfestResultsStatus extends StatusGenerator return `Splatfest results: Team ${winningTeam.teamName} wins! #splatfest #splatoon3`; } + async _getContentWrapper() { + let festival = await this.getFestival(); + + if (!festival || !festival.hasResults) { + return false; + } + + return `${festival.title} Splatfest Results`; + } + /** @param {ScreenshotHelper} screenshotHelper */ async _getMedia(screenshotHelper) { let media = new Media; diff --git a/app/social/generators/StatusGenerator.mjs b/app/social/generators/StatusGenerator.mjs index 8f87a5a..f4a05c4 100644 --- a/app/social/generators/StatusGenerator.mjs +++ b/app/social/generators/StatusGenerator.mjs @@ -67,6 +67,7 @@ export default class StatusGenerator const status = new Status; status.status = await this._getStatus(); + status.contentWrapper = await this._getContentWrapper(); let media = await this.getMedia(screenshotHelper); if (media && !Array.isArray(media)) { @@ -87,6 +88,10 @@ export default class StatusGenerator // } + async _getContentWrapper() { + // + } + /** @param {ScreenshotHelper} screenshotHelper */ async getMedia(screenshotHelper) { await this._prepareScreenshotHelper(screenshotHelper);