Files
splatoon3.ink/app/social/index.mjs
2026-08-29 17:52:28 -07:00

78 lines
2.5 KiB
JavaScript

import { canUpload, upload } from '../sync/index.mjs';
import FileWriter from './clients/FileWriter.mjs';
import ImageWriter from './clients/ImageWriter.mjs';
import MastodonClient from './clients/MastodonClient.mjs';
// import TwitterClient from './clients/TwitterClient.mjs';
import DailyDropGearStatus from './generators/DailyDropGearStatus.mjs';
import RegularGearStatus from './generators/RegularGearStatus.mjs';
// import SalmonRunGearStatus from './generators/SalmonRunGearStatus.mjs';
import SalmonRunStatus from './generators/SalmonRunStatus.mjs';
import SchedulesStatus from './generators/SchedulesStatus.mjs';
import SplatfestStatus from './generators/SplatfestStatus.mjs';
import SplatfestResultsStatus from './generators/SplatfestResultsStatus.mjs';
import StatusGeneratorManager from './StatusGeneratorManager.mjs';
import SalmonRunUpcomingStatus from './generators/SalmonRunUpcomingStatus.mjs';
import EggstraWorkStatus from './generators/EggstraWorkStatus.mjs';
import EggstraWorkUpcomingStatus from './generators/EggstraWorkUpcomingStatus.mjs';
import BlueskyClient from './clients/BlueskyClient.mjs';
import ChallengeStatus from './generators/ChallengeStatus.mjs';
import ThreadsClient from './clients/ThreadsClient.mjs';
function defaultStatusGenerators() {
return [
new SchedulesStatus,
new DailyDropGearStatus,
new RegularGearStatus,
new ChallengeStatus,
new SalmonRunStatus,
new SalmonRunUpcomingStatus,
// new SalmonRunGearStatus,
new SplatfestStatus('NA'),
new SplatfestStatus('EU'),
new SplatfestStatus('JP'),
new SplatfestStatus('AP'),
new SplatfestResultsStatus('NA'),
new SplatfestResultsStatus('EU'),
new SplatfestResultsStatus('JP'),
new SplatfestResultsStatus('AP'),
new EggstraWorkStatus,
new EggstraWorkUpcomingStatus,
];
}
export function defaultClients() {
return [
// new TwitterClient,
new MastodonClient,
new BlueskyClient,
new ThreadsClient,
new ImageWriter,
];
}
export function defaultStatusGeneratorManager() {
return new StatusGeneratorManager(
defaultStatusGenerators(),
defaultClients(),
);
}
export function testStatusGeneratorManager(additionalClients) {
return new StatusGeneratorManager(
defaultStatusGenerators(),
[new FileWriter, ...additionalClients],
);
}
export async function sendStatuses() {
await defaultStatusGeneratorManager().sendStatuses();
if (canUpload()) {
await upload();
}
}
export function testStatuses(additionalClients = []) {
return testStatusGeneratorManager(additionalClients).sendStatuses(true);
}