diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 6c69624..eb5870f 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -1,53 +1,55 @@
/* eslint-env node */
-const createAliasSetting = require('@vue/eslint-config-airbnb/createAliasSetting')
+const createAliasSetting = require('@vue/eslint-config-airbnb/createAliasSetting');
module.exports = {
- "root": true,
- "extends": [
- "plugin:vue/vue3-recommended",
- "eslint:recommended",
- "plugin:import/recommended",
- "plugin:jsdoc/recommended",
+ 'root': true,
+ 'extends': [
+ 'plugin:vue/vue3-recommended',
+ 'eslint:recommended',
+ 'plugin:import/recommended',
+ 'plugin:jsdoc/recommended',
],
- "rules": {
+ 'rules': {
// ESLint
- "indent": ["warn", 2, { "SwitchCase": 1 }],
- "comma-dangle": ["warn", "always-multiline"],
- "no-unused-vars": ["warn", { "args": "none" }],
+ 'indent': ['warn', 2, { 'SwitchCase': 1 }],
+ 'comma-dangle': ['warn', 'always-multiline'],
+ 'no-unused-vars': ['warn', { 'args': 'none' }],
+ 'semi': 'warn',
+ 'quotes': ['warn' , 'single'],
// Vue
- "vue/multi-word-component-names": "off",
- "vue/require-default-prop": "off",
- "vue/max-attributes-per-line": ["warn", { singleline: { max: 4 } }],
- "vue/html-self-closing": ["warn", { html: { void: "always" } }],
+ 'vue/multi-word-component-names': 'off',
+ 'vue/require-default-prop': 'off',
+ 'vue/max-attributes-per-line': ['warn', { singleline: { max: 4 } }],
+ 'vue/html-self-closing': ['warn', { html: { void: 'always' } }],
// Imports
- "import/order": "warn",
+ 'import/order': 'warn',
// JSDoc
- "jsdoc/require-jsdoc": "off",
- "jsdoc/require-returns": "off",
- "jsdoc/require-param-description": "off",
+ 'jsdoc/require-jsdoc': 'off',
+ 'jsdoc/require-returns': 'off',
+ 'jsdoc/require-param-description': 'off',
},
- "globals": {
- "__dirname": "readonly",
- "process": "readonly",
- "require": "readonly",
- "module": "readonly",
- "Buffer": "readonly",
+ 'globals': {
+ '__dirname': 'readonly',
+ 'process': 'readonly',
+ 'require': 'readonly',
+ 'module': 'readonly',
+ 'Buffer': 'readonly',
},
- "env": {
- "vue/setup-compiler-macros": true,
+ 'env': {
+ 'vue/setup-compiler-macros': true,
},
- "ignorePatterns": [
- "src/assets/i18n/index.mjs", // "assert" syntax is currently unrecognized
+ 'ignorePatterns': [
+ 'src/assets/i18n/index.mjs', // "assert" syntax is currently unrecognized
],
- "parserOptions": {
- "ecmaVersion": 13,
+ 'parserOptions': {
+ 'ecmaVersion': 13,
},
settings: {
...createAliasSetting({
'@': './src',
}),
},
-}
+};
diff --git a/app/common/sentry.mjs b/app/common/sentry.mjs
index 0e4c2c7..4f0dd70 100644
--- a/app/common/sentry.mjs
+++ b/app/common/sentry.mjs
@@ -1,4 +1,4 @@
-import * as Sentry from "@sentry/node";
+import * as Sentry from '@sentry/node';
export function sentryInit() {
if (!process.env.SENTRY_DSN) {
diff --git a/app/cron.mjs b/app/cron.mjs
index 9f1b076..9b3e1ff 100644
--- a/app/cron.mjs
+++ b/app/cron.mjs
@@ -1,8 +1,8 @@
-import { CronJob } from "cron";
-import { update } from "./data/index.mjs";
-import { warmCaches } from "./splatnet/index.mjs";
-import { sendStatuses } from "./social/index.mjs";
-import { archiveData } from "./data/DataArchiver.mjs";
+import { CronJob } from 'cron';
+import { update } from './data/index.mjs';
+import { warmCaches } from './splatnet/index.mjs';
+import { sendStatuses } from './social/index.mjs';
+import { archiveData } from './data/DataArchiver.mjs';
let updating = false;
diff --git a/app/data/DataArchiver.mjs b/app/data/DataArchiver.mjs
index 9bd64a0..d5a2040 100644
--- a/app/data/DataArchiver.mjs
+++ b/app/data/DataArchiver.mjs
@@ -1,6 +1,6 @@
import fs from 'fs/promises';
import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3';
-import prefixedConsole from "../common/prefixedConsole.mjs";
+import prefixedConsole from '../common/prefixedConsole.mjs';
export function archiveData() {
return (new DataArchiver).process();
diff --git a/app/data/ImageProcessor.mjs b/app/data/ImageProcessor.mjs
index 05ffe70..dd84a9f 100644
--- a/app/data/ImageProcessor.mjs
+++ b/app/data/ImageProcessor.mjs
@@ -1,7 +1,7 @@
import fs from 'fs/promises';
import path from 'path';
import mkdirp from 'mkdirp';
-import prefixedConsole from "../common/prefixedConsole.mjs";
+import prefixedConsole from '../common/prefixedConsole.mjs';
import { normalizeSplatnetResourcePath } from '../common/util.mjs';
import { exists } from '../common/fs.mjs';
@@ -41,7 +41,7 @@ export default class ImageProcessor
async maybeDownload(url, destination) {
// If the file already exists, we don't need to download it again
if (await exists(this.localPath(destination))) {
- return
+ return;
}
return await this.download(url, destination);
diff --git a/app/data/LocalizationProcessor.mjs b/app/data/LocalizationProcessor.mjs
index 56a47f2..8941019 100644
--- a/app/data/LocalizationProcessor.mjs
+++ b/app/data/LocalizationProcessor.mjs
@@ -83,7 +83,7 @@ export class LocalizationProcessor {
data = JSON.stringify(data, undefined, space);
- await mkdirp(path.dirname(this.filename))
+ await mkdirp(path.dirname(this.filename));
await fs.writeFile(this.filename, data);
}
diff --git a/app/data/index.mjs b/app/data/index.mjs
index 7f98e82..8f7eae7 100644
--- a/app/data/index.mjs
+++ b/app/data/index.mjs
@@ -1,10 +1,10 @@
-import * as Sentry from "@sentry/node";
-import GearUpdater from "./updaters/GearUpdater.mjs";
-import StageScheduleUpdater from "./updaters/StageScheduleUpdater.mjs";
-import CoopUpdater from "./updaters/CoopUpdater.mjs";
-import FestivalUpdater from "./updaters/FestivalUpdater.mjs";
-import XRankUpdater from "./updaters/XRankUpdater.mjs";
-import StagesUpdater from "./updaters/StagesUpdater.mjs";
+import * as Sentry from '@sentry/node';
+import GearUpdater from './updaters/GearUpdater.mjs';
+import StageScheduleUpdater from './updaters/StageScheduleUpdater.mjs';
+import CoopUpdater from './updaters/CoopUpdater.mjs';
+import FestivalUpdater from './updaters/FestivalUpdater.mjs';
+import XRankUpdater from './updaters/XRankUpdater.mjs';
+import StagesUpdater from './updaters/StagesUpdater.mjs';
function updaters() {
return [
diff --git a/app/data/updaters/CoopUpdater.mjs b/app/data/updaters/CoopUpdater.mjs
index 54cc8d0..ddae2ac 100644
--- a/app/data/updaters/CoopUpdater.mjs
+++ b/app/data/updaters/CoopUpdater.mjs
@@ -1,4 +1,4 @@
-import DataUpdater from "./DataUpdater.mjs";
+import DataUpdater from './DataUpdater.mjs';
export default class CoopUpdater extends DataUpdater
{
diff --git a/app/data/updaters/DataUpdater.mjs b/app/data/updaters/DataUpdater.mjs
index 9c135b0..72a1cf8 100644
--- a/app/data/updaters/DataUpdater.mjs
+++ b/app/data/updaters/DataUpdater.mjs
@@ -4,8 +4,8 @@ import { Console } from 'node:console';
import mkdirp from 'mkdirp';
import jsonpath from 'jsonpath';
import ical from 'ical-generator';
-import prefixedConsole from "../../common/prefixedConsole.mjs";
-import SplatNet3Client from "../../splatnet/SplatNet3Client.mjs";
+import prefixedConsole from '../../common/prefixedConsole.mjs';
+import SplatNet3Client from '../../splatnet/SplatNet3Client.mjs';
import ImageProcessor from '../ImageProcessor.mjs';
import NsoClient from '../../splatnet/NsoClient.mjs';
import { locales, regionalLocales, defaultLocale } from '../../../src/common/i18n.mjs';
@@ -212,7 +212,7 @@ export default class DataUpdater
}
async writeFile(file, data) {
- await mkdirp(path.dirname(file))
+ await mkdirp(path.dirname(file));
await fs.writeFile(file, data);
}
diff --git a/app/data/updaters/FestivalRankingUpdater.mjs b/app/data/updaters/FestivalRankingUpdater.mjs
index d5eec3a..9df6f3f 100644
--- a/app/data/updaters/FestivalRankingUpdater.mjs
+++ b/app/data/updaters/FestivalRankingUpdater.mjs
@@ -1,7 +1,7 @@
-import prefixedConsole from "../../common/prefixedConsole.mjs";
+import prefixedConsole from '../../common/prefixedConsole.mjs';
import { getFestId, getFestTeamId } from '../../common/util.mjs';
import { olderThan } from '../../common/fs.mjs';
-import DataUpdater from "./DataUpdater.mjs";
+import DataUpdater from './DataUpdater.mjs';
export default class FestivalRankingUpdater extends DataUpdater
{
diff --git a/app/data/updaters/FestivalUpdater.mjs b/app/data/updaters/FestivalUpdater.mjs
index d360836..7c81635 100644
--- a/app/data/updaters/FestivalUpdater.mjs
+++ b/app/data/updaters/FestivalUpdater.mjs
@@ -4,7 +4,7 @@ import { getFestId } from '../../common/util.mjs';
import ValueCache from '../../common/ValueCache.mjs';
import { regionTokens } from '../../splatnet/NsoClient.mjs';
import FestivalRankingUpdater from './FestivalRankingUpdater.mjs';
-import DataUpdater from "./DataUpdater.mjs";
+import DataUpdater from './DataUpdater.mjs';
function generateFestUrl(id) {
return process.env.DEBUG ?
diff --git a/app/data/updaters/GearUpdater.mjs b/app/data/updaters/GearUpdater.mjs
index 30a1104..3ddf530 100644
--- a/app/data/updaters/GearUpdater.mjs
+++ b/app/data/updaters/GearUpdater.mjs
@@ -1,4 +1,4 @@
-import DataUpdater from "./DataUpdater.mjs";
+import DataUpdater from './DataUpdater.mjs';
export default class GearUpdater extends DataUpdater
{
diff --git a/app/data/updaters/StageScheduleUpdater.mjs b/app/data/updaters/StageScheduleUpdater.mjs
index 80ebdbd..88c968b 100644
--- a/app/data/updaters/StageScheduleUpdater.mjs
+++ b/app/data/updaters/StageScheduleUpdater.mjs
@@ -1,5 +1,5 @@
import _ from 'lodash';
-import DataUpdater from "./DataUpdater.mjs";
+import DataUpdater from './DataUpdater.mjs';
export default class StageScheduleUpdater extends DataUpdater
{
diff --git a/app/data/updaters/StagesUpdater.mjs b/app/data/updaters/StagesUpdater.mjs
index 8357eb5..d46fdab 100644
--- a/app/data/updaters/StagesUpdater.mjs
+++ b/app/data/updaters/StagesUpdater.mjs
@@ -1,4 +1,4 @@
-import DataUpdater from "./DataUpdater.mjs";
+import DataUpdater from './DataUpdater.mjs';
export default class StagesUpdater extends DataUpdater
{
diff --git a/app/data/updaters/XRankDetailUpdater.mjs b/app/data/updaters/XRankDetailUpdater.mjs
index f8befe2..9f42a1a 100644
--- a/app/data/updaters/XRankDetailUpdater.mjs
+++ b/app/data/updaters/XRankDetailUpdater.mjs
@@ -1,7 +1,7 @@
-import { olderThan } from "../../common/fs.mjs";
-import prefixedConsole from "../../common/prefixedConsole.mjs";
-import { getXRankSeasonId } from "../../common/util.mjs";
-import DataUpdater from "./DataUpdater.mjs";
+import { olderThan } from '../../common/fs.mjs';
+import prefixedConsole from '../../common/prefixedConsole.mjs';
+import { getXRankSeasonId } from '../../common/util.mjs';
+import DataUpdater from './DataUpdater.mjs';
export default class XRankDetailUpdater extends DataUpdater
{
diff --git a/app/data/updaters/XRankUpdater.mjs b/app/data/updaters/XRankUpdater.mjs
index 6a1c65e..c80738c 100644
--- a/app/data/updaters/XRankUpdater.mjs
+++ b/app/data/updaters/XRankUpdater.mjs
@@ -1,7 +1,7 @@
-import prefixedConsole from "../../common/prefixedConsole.mjs";
+import prefixedConsole from '../../common/prefixedConsole.mjs';
import { getXRankSeasonId } from '../../common/util.mjs';
-import DataUpdater from "./DataUpdater.mjs";
-import XRankDetailUpdater from "./XRankDetailUpdater.mjs";
+import DataUpdater from './DataUpdater.mjs';
+import XRankDetailUpdater from './XRankDetailUpdater.mjs';
export default class XRankUpdater extends DataUpdater
{
diff --git a/app/index.mjs b/app/index.mjs
index 20be096..2128c32 100644
--- a/app/index.mjs
+++ b/app/index.mjs
@@ -3,7 +3,7 @@ import consoleStamp from 'console-stamp';
import cron from './cron.mjs';
import { sendStatuses, testStatuses } from './social/index.mjs';
import { update } from './data/index.mjs';
-import { warmCaches } from "./splatnet/index.mjs";
+import { warmCaches } from './splatnet/index.mjs';
import MastodonClient from './social/clients/MastodonClient.mjs';
import ImageWriter from './social/clients/ImageWriter.mjs';
import BlueskyClient from './social/clients/BlueskyClient.mjs';
@@ -26,7 +26,7 @@ const actions = {
splatnet: update,
warmCaches,
dataArchive: archiveData,
-}
+};
const command = process.argv[2];
const params = process.argv.slice(3);
diff --git a/app/social/StatusGeneratorManager.mjs b/app/social/StatusGeneratorManager.mjs
index 8c83571..693fd31 100644
--- a/app/social/StatusGeneratorManager.mjs
+++ b/app/social/StatusGeneratorManager.mjs
@@ -1,7 +1,7 @@
-import prefixedConsole from "../common/prefixedConsole.mjs";
-import ScreenshotHelper from "../screenshots/ScreenshotHelper.mjs";
-import Client from "./clients/Client.mjs";
-import StatusGenerator from "./generators/StatusGenerator.mjs";
+import prefixedConsole from '../common/prefixedConsole.mjs';
+import ScreenshotHelper from '../screenshots/ScreenshotHelper.mjs';
+import Client from './clients/Client.mjs';
+import StatusGenerator from './generators/StatusGenerator.mjs';
export default class StatusGeneratorManager
{
diff --git a/app/social/clients/BlueskyClient.mjs b/app/social/clients/BlueskyClient.mjs
index 7fecf83..a9fc6cd 100644
--- a/app/social/clients/BlueskyClient.mjs
+++ b/app/social/clients/BlueskyClient.mjs
@@ -1,6 +1,6 @@
-import atprotoApi from "@atproto/api";
-import sharp from "sharp";
-import Client from "./Client.mjs";
+import atprotoApi from '@atproto/api';
+import sharp from 'sharp';
+import Client from './Client.mjs';
const { BskyAgent, RichText } = atprotoApi;
@@ -39,7 +39,7 @@ export default class BlueskyClient extends Client
// We have to convert the PNG to a JPG for Bluesky because of size limits
let jpeg = await sharp(m.file).jpeg().toBuffer();
- let response = await this.#agent.uploadBlob(jpeg, { encoding: 'image/jpeg' })
+ let response = await this.#agent.uploadBlob(jpeg, { encoding: 'image/jpeg' });
return {
image: response.data.blob,
diff --git a/app/social/clients/Client.mjs b/app/social/clients/Client.mjs
index 38d29dc..f262a95 100644
--- a/app/social/clients/Client.mjs
+++ b/app/social/clients/Client.mjs
@@ -1,5 +1,5 @@
-import Status from "../Status.mjs";
-import StatusGenerator from "../generators/StatusGenerator.mjs";
+import Status from '../Status.mjs';
+import StatusGenerator from '../generators/StatusGenerator.mjs';
export default class Client
{
diff --git a/app/social/clients/FileWriter.mjs b/app/social/clients/FileWriter.mjs
index 653dc1c..44f474f 100644
--- a/app/social/clients/FileWriter.mjs
+++ b/app/social/clients/FileWriter.mjs
@@ -1,6 +1,6 @@
import fs from 'fs/promises';
import mkdirp from 'mkdirp';
-import Client from "./Client.mjs";
+import Client from './Client.mjs';
export default class FileWriter extends Client {
key = 'file';
diff --git a/app/social/clients/ImageWriter.mjs b/app/social/clients/ImageWriter.mjs
index 0ecb818..9560d2e 100644
--- a/app/social/clients/ImageWriter.mjs
+++ b/app/social/clients/ImageWriter.mjs
@@ -1,6 +1,6 @@
import fs from 'fs/promises';
import mkdirp from 'mkdirp';
-import Client from "./Client.mjs";
+import Client from './Client.mjs';
export default class ImageWriter extends Client {
key = 'image';
diff --git a/app/social/clients/MastodonClient.mjs b/app/social/clients/MastodonClient.mjs
index 4e6295b..e4c3101 100644
--- a/app/social/clients/MastodonClient.mjs
+++ b/app/social/clients/MastodonClient.mjs
@@ -1,5 +1,5 @@
import { createRestAPIClient } from 'masto';
-import Client from "./Client.mjs";
+import Client from './Client.mjs';
export default class MastodonClient extends Client
{
diff --git a/app/social/clients/ThreadsClient.mjs b/app/social/clients/ThreadsClient.mjs
index 8aff3ae..2870a08 100644
--- a/app/social/clients/ThreadsClient.mjs
+++ b/app/social/clients/ThreadsClient.mjs
@@ -1,10 +1,10 @@
-import sharp from "sharp";
-import threads from "threads-api";
-import Client from "./Client.mjs";
+import sharp from 'sharp';
+import threads from 'threads-api';
+import Client from './Client.mjs';
export default class ThreadsClient extends Client {
- key = "threads";
- name = "Threads";
+ key = 'threads';
+ name = 'Threads';
#api;
@@ -33,7 +33,7 @@ export default class ThreadsClient extends Client {
await this.#api.publish({
text: status.status,
- image: { type: "image/jpeg", data: jpeg },
+ image: { type: 'image/jpeg', data: jpeg },
});
}
}
diff --git a/app/social/clients/TwitterClient.mjs b/app/social/clients/TwitterClient.mjs
index ed1f4b8..e1b456d 100644
--- a/app/social/clients/TwitterClient.mjs
+++ b/app/social/clients/TwitterClient.mjs
@@ -1,5 +1,5 @@
-import { TwitterApi } from "twitter-api-v2";
-import Client from "./Client.mjs";
+import { TwitterApi } from 'twitter-api-v2';
+import Client from './Client.mjs';
export default class TwitterClient extends Client
{
diff --git a/app/social/generators/ChallengeStatus.mjs b/app/social/generators/ChallengeStatus.mjs
index f6bf34d..286bdeb 100644
--- a/app/social/generators/ChallengeStatus.mjs
+++ b/app/social/generators/ChallengeStatus.mjs
@@ -1,8 +1,8 @@
-import Media from "../Media.mjs";
-import { useEventSchedulesStore } from "../../../src/stores/schedules.mjs";
-import { br2nl } from "../../../src/common/util.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import { useEventSchedulesStore } from '../../../src/stores/schedules.mjs';
+import { br2nl } from '../../../src/common/util.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class ChallengeStatus extends StatusGenerator
{
key = 'challenge';
diff --git a/app/social/generators/CountdownStatus.mjs b/app/social/generators/CountdownStatus.mjs
index a02c638..92815e2 100644
--- a/app/social/generators/CountdownStatus.mjs
+++ b/app/social/generators/CountdownStatus.mjs
@@ -1,6 +1,6 @@
-import Media from "../Media.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
const releaseDate = new Date('2022-09-09');
diff --git a/app/social/generators/DailyDropGearStatus.mjs b/app/social/generators/DailyDropGearStatus.mjs
index cfc6ffb..27b5ced 100644
--- a/app/social/generators/DailyDropGearStatus.mjs
+++ b/app/social/generators/DailyDropGearStatus.mjs
@@ -1,8 +1,8 @@
-import Media from "../Media.mjs";
-import { useGearStore } from "../../../src/stores/gear.mjs";
-import { getGearIcon } from "../../common/util.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import { useGearStore } from '../../../src/stores/gear.mjs';
+import { getGearIcon } from '../../common/util.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class DailyDropGearStatus extends StatusGenerator
{
diff --git a/app/social/generators/EggstraWorkStatus.mjs b/app/social/generators/EggstraWorkStatus.mjs
index 69f8f73..4c52b9e 100644
--- a/app/social/generators/EggstraWorkStatus.mjs
+++ b/app/social/generators/EggstraWorkStatus.mjs
@@ -1,7 +1,7 @@
-import Media from "../Media.mjs";
-import { useEggstraWorkSchedulesStore } from "../../../src/stores/schedules.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import { useEggstraWorkSchedulesStore } from '../../../src/stores/schedules.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class EggstraWorkStatus extends StatusGenerator
{
@@ -25,7 +25,7 @@ export default class EggstraWorkStatus extends StatusGenerator
let lines = [];
- let mode = 'EGGSTRA WORK'
+ let mode = 'EGGSTRA WORK';
lines.push(`${mode} is now open on ${schedule.settings.coopStage.name}! #salmonrun #splatoon3`);
@@ -41,7 +41,7 @@ export default class EggstraWorkStatus extends StatusGenerator
async _getMedia(screenshotHelper) {
let media = new Media;
media.file = await screenshotHelper.capture('salmonrun', {
- params: {eggstra: "true"},
+ params: {eggstra: 'true'},
});
return media;
diff --git a/app/social/generators/EggstraWorkUpcomingStatus.mjs b/app/social/generators/EggstraWorkUpcomingStatus.mjs
index 4be1bbc..fa1ae4d 100644
--- a/app/social/generators/EggstraWorkUpcomingStatus.mjs
+++ b/app/social/generators/EggstraWorkUpcomingStatus.mjs
@@ -1,8 +1,8 @@
-import Media from "../Media.mjs";
-import { useEggstraWorkSchedulesStore } from "../../../src/stores/schedules.mjs";
-import { useTimeStore } from "../../../src/stores/time.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import { useEggstraWorkSchedulesStore } from '../../../src/stores/schedules.mjs';
+import { useTimeStore } from '../../../src/stores/time.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class EggstraWorkUpcomingStatus extends StatusGenerator
{
@@ -66,7 +66,7 @@ export default class EggstraWorkUpcomingStatus extends StatusGenerator
let media = new Media;
media.file = await screenshotHelper.capture('salmonRun', {
- params: { startTime: schedule?.startTime, eggstra: "true" },
+ params: { startTime: schedule?.startTime, eggstra: 'true' },
});
return media;
diff --git a/app/social/generators/RegularGearStatus.mjs b/app/social/generators/RegularGearStatus.mjs
index 85826c6..cd4816d 100644
--- a/app/social/generators/RegularGearStatus.mjs
+++ b/app/social/generators/RegularGearStatus.mjs
@@ -1,7 +1,7 @@
-import Media from "../Media.mjs";
-import { useGearStore } from "../../../src/stores/gear.mjs";
-import { getGearIcon } from "../../common/util.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import { useGearStore } from '../../../src/stores/gear.mjs';
+import { getGearIcon } from '../../common/util.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class RegularGearStatus extends StatusGenerator
{
diff --git a/app/social/generators/SalmonRunGearStatus.mjs b/app/social/generators/SalmonRunGearStatus.mjs
index 3d96905..6a70a1e 100644
--- a/app/social/generators/SalmonRunGearStatus.mjs
+++ b/app/social/generators/SalmonRunGearStatus.mjs
@@ -1,7 +1,7 @@
-import Media from "../Media.mjs";
-import { useCoopGearStore } from "../../../src/stores/gear.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import { useCoopGearStore } from '../../../src/stores/gear.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class SalmonRunGearStatus extends StatusGenerator
{
diff --git a/app/social/generators/SalmonRunStatus.mjs b/app/social/generators/SalmonRunStatus.mjs
index 8c565b3..8512072 100644
--- a/app/social/generators/SalmonRunStatus.mjs
+++ b/app/social/generators/SalmonRunStatus.mjs
@@ -1,7 +1,7 @@
-import Media from "../Media.mjs";
-import { useSalmonRunSchedulesStore } from "../../../src/stores/schedules.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import { useSalmonRunSchedulesStore } from '../../../src/stores/schedules.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class SalmonRunStatus extends StatusGenerator
{
@@ -11,7 +11,7 @@ export default class SalmonRunStatus extends StatusGenerator
async getActiveSchedule() {
await this.preparePinia();
- return useSalmonRunSchedulesStore().activeSchedule
+ return useSalmonRunSchedulesStore().activeSchedule;
}
async getDataTime() {
diff --git a/app/social/generators/SalmonRunUpcomingStatus.mjs b/app/social/generators/SalmonRunUpcomingStatus.mjs
index b824e34..edab785 100644
--- a/app/social/generators/SalmonRunUpcomingStatus.mjs
+++ b/app/social/generators/SalmonRunUpcomingStatus.mjs
@@ -1,8 +1,8 @@
-import Media from "../Media.mjs";
-import { useSalmonRunSchedulesStore } from "../../../src/stores/schedules.mjs";
-import { useTimeStore } from "../../../src/stores/time.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import Media from '../Media.mjs';
+import { useSalmonRunSchedulesStore } from '../../../src/stores/schedules.mjs';
+import { useTimeStore } from '../../../src/stores/time.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class SalmonRunUpcomingStatus extends StatusGenerator
{
diff --git a/app/social/generators/SchedulesStatus.mjs b/app/social/generators/SchedulesStatus.mjs
index 7bde00f..40dfc48 100644
--- a/app/social/generators/SchedulesStatus.mjs
+++ b/app/social/generators/SchedulesStatus.mjs
@@ -1,8 +1,8 @@
-import Media from "../Media.mjs";
-import { useAnarchyOpenSchedulesStore, useAnarchySeriesSchedulesStore, useRegularSchedulesStore, useSplatfestOpenSchedulesStore, useSplatfestProSchedulesStore, useXSchedulesStore } from "../../../src/stores/schedules.mjs";
+import Media from '../Media.mjs';
+import { useAnarchyOpenSchedulesStore, useAnarchySeriesSchedulesStore, useRegularSchedulesStore, useSplatfestOpenSchedulesStore, useSplatfestProSchedulesStore, useXSchedulesStore } from '../../../src/stores/schedules.mjs';
import { useUSSplatfestsStore } from '../../../src/stores/splatfests.mjs';
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class SchedulesStatus extends StatusGenerator
{
key = 'schedules';
@@ -19,7 +19,7 @@ export default class SchedulesStatus extends StatusGenerator
splatfestOpen: useSplatfestOpenSchedulesStore().activeSchedule,
splatfestPro: useSplatfestProSchedulesStore().activeSchedule,
tricolor: useUSSplatfestsStore().tricolor,
- }
+ };
}
async getDataTime() {
@@ -42,7 +42,7 @@ export default class SchedulesStatus extends StatusGenerator
'',
`– Open: ${festOpenStages[0].name} and ${festOpenStages[1].name}`,
`– Pro: ${festProStages[0].name} and ${festProStages[1].name}`,
- ]
+ ];
if(stages.tricolor?.isTricolorActive) {
lines.push(`– Tricolor: ${stages.tricolor.tricolorStage.name}`);
diff --git a/app/social/generators/SplatfestResultsStatus.mjs b/app/social/generators/SplatfestResultsStatus.mjs
index 8a00c1f..f9dd35d 100644
--- a/app/social/generators/SplatfestResultsStatus.mjs
+++ b/app/social/generators/SplatfestResultsStatus.mjs
@@ -1,7 +1,7 @@
-import Media from "../Media.mjs";
+import Media from '../Media.mjs';
import { useUSSplatfestsStore, useEUSplatfestsStore, useJPSplatfestsStore, useAPSplatfestsStore } from '../../../src/stores/splatfests.mjs';
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class SplatfestResultsStatus extends StatusGenerator
{
@@ -20,10 +20,10 @@ export default class SplatfestResultsStatus extends StatusGenerator
let store;
switch(this.region) {
- case "NA": store = useUSSplatfestsStore(); break;
- case "EU": store = useEUSplatfestsStore(); break;
- case "JP": store = useJPSplatfestsStore(); break;
- case "AP": store = useAPSplatfestsStore(); break;
+ case 'NA': store = useUSSplatfestsStore(); break;
+ case 'EU': store = useEUSplatfestsStore(); break;
+ case 'JP': store = useJPSplatfestsStore(); break;
+ case 'AP': store = useAPSplatfestsStore(); break;
}
return store.recentFestival;
@@ -49,7 +49,7 @@ export default class SplatfestResultsStatus extends StatusGenerator
let winningTeam = festival.teams.find(t => t.result.isWinner);
const global = festival.regions.length == 4;
- const regionText = global ? 'Global' : festival.regions.join("/");
+ const regionText = global ? 'Global' : festival.regions.join('/');
return `${regionText} Splatfest results: Team ${winningTeam.teamName} wins! #splatfest #splatoon3`;
}
diff --git a/app/social/generators/SplatfestStatus.mjs b/app/social/generators/SplatfestStatus.mjs
index 2b62858..1b24b27 100644
--- a/app/social/generators/SplatfestStatus.mjs
+++ b/app/social/generators/SplatfestStatus.mjs
@@ -1,8 +1,8 @@
-import Media from "../Media.mjs";
+import Media from '../Media.mjs';
import { useUSSplatfestsStore, useEUSplatfestsStore, useJPSplatfestsStore, useAPSplatfestsStore, STATUS_ACTIVE, STATUS_PAST } from '../../../src/stores/splatfests.mjs';
-import { useTimeStore } from "../../../src/stores/time.mjs";
-import ScreenshotHelper from "../../screenshots/ScreenshotHelper.mjs";
-import StatusGenerator from "./StatusGenerator.mjs";
+import { useTimeStore } from '../../../src/stores/time.mjs';
+import ScreenshotHelper from '../../screenshots/ScreenshotHelper.mjs';
+import StatusGenerator from './StatusGenerator.mjs';
export default class SplatfestStatus extends StatusGenerator
{
@@ -20,10 +20,10 @@ export default class SplatfestStatus extends StatusGenerator
await this.preparePinia();
let store;
switch(this.region) {
- case "NA": store = useUSSplatfestsStore(); break;
- case "EU": store = useEUSplatfestsStore(); break;
- case "JP": store = useJPSplatfestsStore(); break;
- case "AP": store = useAPSplatfestsStore(); break;
+ case 'NA': store = useUSSplatfestsStore(); break;
+ case 'EU': store = useEUSplatfestsStore(); break;
+ case 'JP': store = useJPSplatfestsStore(); break;
+ case 'AP': store = useAPSplatfestsStore(); break;
}
return store.upcomingFestival
|| store.activeFestival
@@ -87,19 +87,19 @@ export default class SplatfestStatus extends StatusGenerator
}
const global = festival.regions.length == 4;
- const regionText = global ? 'global' : festival.regions.join("/");
+ const regionText = global ? 'global' : festival.regions.join('/');
switch (state) {
case 'upcoming':
return `You can now vote in the next ${regionText} Splatfest: ${festival.title} #splatfest #splatoon3`;
case 'upcoming:3d':
- return `Reminder: The next ${regionText} Splatfest starts in 3 DAYS! ${festival.title} #splatfest #splatoon3`
+ return `Reminder: The next ${regionText} Splatfest starts in 3 DAYS! ${festival.title} #splatfest #splatoon3`;
case 'upcoming:1d':
- return `Reminder: The next ${regionText} Splatfest starts in 24 HOURS! ${festival.title} #splatfest #splatoon3`
+ return `Reminder: The next ${regionText} Splatfest starts in 24 HOURS! ${festival.title} #splatfest #splatoon3`;
case 'active':
- return `The ${regionText} Splatfest is NOW OPEN! ${festival.title} #splatfest #splatoon3`
+ return `The ${regionText} Splatfest is NOW OPEN! ${festival.title} #splatfest #splatoon3`;
case 'ended':
- return `The ${regionText} Splatfest is now closed. Results are usually posted within 2 hours! #splatfest #splatoon3`
+ return `The ${regionText} Splatfest is now closed. Results are usually posted within 2 hours! #splatfest #splatoon3`;
}
}
diff --git a/app/social/index.mjs b/app/social/index.mjs
index fc69184..c32ecd5 100644
--- a/app/social/index.mjs
+++ b/app/social/index.mjs
@@ -1,21 +1,21 @@
-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";
+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 [
@@ -26,14 +26,14 @@ function defaultStatusGenerators() {
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 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,
];
diff --git a/app/splatnet/NsoClient.mjs b/app/splatnet/NsoClient.mjs
index 6c6bab5..0dd11e9 100644
--- a/app/splatnet/NsoClient.mjs
+++ b/app/splatnet/NsoClient.mjs
@@ -1,6 +1,6 @@
// eslint-disable-next-line import/no-unresolved
import CoralApi from 'nxapi/coral';
-import { addUserAgent } from "nxapi";
+import { addUserAgent } from 'nxapi';
import ValueCache from '../common/ValueCache.mjs';
import prefixedConsole from '../common/prefixedConsole.mjs';
diff --git a/app/splatnet/SplatNet3Client.mjs b/app/splatnet/SplatNet3Client.mjs
index b9364b5..51cda07 100644
--- a/app/splatnet/SplatNet3Client.mjs
+++ b/app/splatnet/SplatNet3Client.mjs
@@ -1,5 +1,5 @@
import fs from 'fs/promises';
-import ValueCache from "../common/ValueCache.mjs";
+import ValueCache from '../common/ValueCache.mjs';
import prefixedConsole from '../common/prefixedConsole.mjs';
export const SPLATNET3_WEB_SERVICE_ID = '4834290508791808';
diff --git a/app/splatnet/index.mjs b/app/splatnet/index.mjs
index 958bbee..9403f42 100644
--- a/app/splatnet/index.mjs
+++ b/app/splatnet/index.mjs
@@ -1,5 +1,5 @@
-import NsoClient, { regionTokens } from "./NsoClient.mjs";
-import SplatNet3Client, { SPLATNET3_WEB_SERVICE_ID } from "./SplatNet3Client.mjs";
+import NsoClient, { regionTokens } from './NsoClient.mjs';
+import SplatNet3Client, { SPLATNET3_WEB_SERVICE_ID } from './SplatNet3Client.mjs';
/**
* Cache Warming
diff --git a/postcss.config.js b/postcss.config.js
index 33ad091..12a703d 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -3,4 +3,4 @@ module.exports = {
tailwindcss: {},
autoprefixer: {},
},
-}
+};
diff --git a/src/common/i18n.mjs b/src/common/i18n.mjs
index e28aa20..6ed200a 100644
--- a/src/common/i18n.mjs
+++ b/src/common/i18n.mjs
@@ -1,5 +1,5 @@
-import { createI18n } from 'vue-i18n'
-import languages from '../assets/i18n/index.mjs'
+import { createI18n } from 'vue-i18n';
+import languages from '../assets/i18n/index.mjs';
const LANGUAGE_KEY = 'lang';
@@ -79,19 +79,19 @@ export function initializeI18n() {
// Adapted from: https://vue-i18n.intlify.dev/guide/essentials/pluralization.html#custom-pluralization
function ruPluralization(choice, choicesLength, orgRule) {
if (choice === 0) {
- return 0
+ return 0;
}
- const teen = choice > 10 && choice < 20
- const endsWithOne = choice % 10 === 1
+ const teen = choice > 10 && choice < 20;
+ const endsWithOne = choice % 10 === 1;
if (!teen && endsWithOne) {
- return 1
+ return 1;
}
if (!teen && choice % 10 >= 2 && choice % 10 <= 4) {
- return 2
+ return 2;
}
- return choicesLength < 4 ? 2 : 3
+ return choicesLength < 4 ? 2 : 3;
}
function reload() {
@@ -100,18 +100,18 @@ function reload() {
switch (currentLocale().code) {
case 'zh-CN':
- document.documentElement.style.setProperty("--font-family-s1", "splatoon1, splatoon1chzh, sans-serif");
- document.documentElement.style.setProperty("--font-family-s2", "splatoon2, splatoon2chzh, sans-serif");
+ document.documentElement.style.setProperty('--font-family-s1', 'splatoon1, splatoon1chzh, sans-serif');
+ document.documentElement.style.setProperty('--font-family-s2', 'splatoon2, splatoon2chzh, sans-serif');
break;
case 'zh-TW':
- document.documentElement.style.setProperty("--font-family-s1", "splatoon1, splatoon1twzh, sans-serif");
- document.documentElement.style.setProperty("--font-family-s2", "splatoon2, splatoon2twzh, sans-serif");
+ document.documentElement.style.setProperty('--font-family-s1', 'splatoon1, splatoon1twzh, sans-serif');
+ document.documentElement.style.setProperty('--font-family-s2', 'splatoon2, splatoon2twzh, sans-serif');
break;
default:
- document.documentElement.style.setProperty("--font-family-s1", "splatoon1, splatoon1jpja, sans-serif");
- document.documentElement.style.setProperty("--font-family-s2", "splatoon2, splatoon2jpja, sans-serif");
+ document.documentElement.style.setProperty('--font-family-s1', 'splatoon1, splatoon1jpja, sans-serif');
+ document.documentElement.style.setProperty('--font-family-s2', 'splatoon2, splatoon2jpja, sans-serif');
break;
}
}
diff --git a/src/common/links.js b/src/common/links.js
index 1d14769..5ddbe4e 100644
--- a/src/common/links.js
+++ b/src/common/links.js
@@ -1,5 +1,5 @@
const baseUrl = 'https://s.nintendo.com/av5ja-lp1/znca/game/4834290508791808';
export function getGesotownGearUrl(id) {
- return `${baseUrl}?p=/gesotown/${id}`
+ return `${baseUrl}?p=/gesotown/${id}`;
}
diff --git a/src/common/time.js b/src/common/time.js
index 572eda8..551d9da 100644
--- a/src/common/time.js
+++ b/src/common/time.js
@@ -48,7 +48,7 @@ export function formatDurationFromNow(value, hideSeconds = false) {
}
export function formatShortDuration(value) {
- const { t } = useI18n()
+ const { t } = useI18n();
let { negative, days, hours, minutes, seconds } = getDurationParts(value);
if (days)
@@ -67,7 +67,7 @@ export function formatShortDurationFromNow(value) {
}
export function formatDurationHours(value) {
- const { t } = useI18n()
+ const { t } = useI18n();
let { negative, days, hours } = getDurationParts(value);
hours += 24 * days;
diff --git a/src/components/LanguageButton.vue b/src/components/LanguageButton.vue
index 82c5f3e..c4d7129 100644
--- a/src/components/LanguageButton.vue
+++ b/src/components/LanguageButton.vue
@@ -9,8 +9,8 @@