From 7cd9131b60cadf411e3215025ca42ce51ccef1db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Mon, 30 Dec 2024 11:42:48 -0600 Subject: [PATCH 1/3] Update assets.yml --- .github/workflows/assets.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/assets.yml b/.github/workflows/assets.yml index 618c891e6..2615428af 100644 --- a/.github/workflows/assets.yml +++ b/.github/workflows/assets.yml @@ -113,6 +113,9 @@ jobs: - name: Install dependencies run: bun install + - name: Lint + run: bun run lint:website + - name: Download depots uses: actions/download-artifact@v4 with: From 4deee2d709184ad5b63571d6751fa48d8f6bf650 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:15:14 -0600 Subject: [PATCH 2/3] feat: update locales --- .../src/core/discord/localizationObject.ts | 4 +-- .../core/localization/strings/constants.ts | 29 ++++++++++++++----- .../src/core/localization/strings/index.ts | 11 +++++-- .../bot/src/core/localization/translator.ts | 14 +++++---- packages/bot/tsconfig.json | 2 +- packages/core/src/blitzkit/index.ts | 1 + .../core/src/blitzkit/supportedLocales.ts | 13 +++++++++ 7 files changed, 55 insertions(+), 19 deletions(-) create mode 100644 packages/core/src/blitzkit/supportedLocales.ts diff --git a/packages/bot/src/core/discord/localizationObject.ts b/packages/bot/src/core/discord/localizationObject.ts index a89f9cd0a..c0f3298a3 100644 --- a/packages/bot/src/core/discord/localizationObject.ts +++ b/packages/bot/src/core/discord/localizationObject.ts @@ -1,5 +1,5 @@ import { Locale } from 'discord.js'; -import { SUPPORTED_LOCALES } from '../localization/strings/constants'; +import { SUPPORTED_LOCALES_DISCORD } from '../localization/strings/constants'; import { translator } from '../localization/translator'; const validNameRegex = /^[-_\p{L}\p{N}\p{sc=Deva}\p{sc=Thai}]{1,32}$/u; @@ -9,7 +9,7 @@ export function localizationObject( literals?: string[], strict = false, ) { - return SUPPORTED_LOCALES.reduce>>( + return SUPPORTED_LOCALES_DISCORD.reduce>>( (localizations, locale) => { const { translate } = translator(locale); const translation = translate(path, literals); diff --git a/packages/bot/src/core/localization/strings/constants.ts b/packages/bot/src/core/localization/strings/constants.ts index 7b0b977a4..85a3a24aa 100644 --- a/packages/bot/src/core/localization/strings/constants.ts +++ b/packages/bot/src/core/localization/strings/constants.ts @@ -1,10 +1,23 @@ +import { DEFAULT_LOCALE, SupportedLocale } from '@blitzkit/core'; import { Locale } from 'discord.js'; -export const SUPPORTED_LOCALES: Locale[] = [ - Locale.EnglishUS, - Locale.SpanishES, - Locale.Croatian, - Locale.Russian, - Locale.Ukrainian, - Locale.ChineseCN, -]; +const SUPPORTED_LOCALES_DISCORD_MAP: Record = { + en: Locale.EnglishUS, + es: Locale.SpanishES, + hr: Locale.Croatian, + pt: Locale.PortugueseBR, + ru: Locale.Russian, + uk: Locale.Ukrainian, + zh: Locale.ChineseCN, +}; + +export const SUPPORTED_LOCALES_DISCORD_MAP_INVERSE = Object.fromEntries( + Object.entries(SUPPORTED_LOCALES_DISCORD_MAP).map(([k, v]) => [v, k]), +) as Record; + +export const SUPPORTED_LOCALES_DISCORD = Object.values( + SUPPORTED_LOCALES_DISCORD_MAP, +); + +export const DEFAULT_LOCALE_DISCORD = + SUPPORTED_LOCALES_DISCORD_MAP[DEFAULT_LOCALE]; diff --git a/packages/bot/src/core/localization/strings/index.ts b/packages/bot/src/core/localization/strings/index.ts index 133f3a5ca..8ac34208a 100644 --- a/packages/bot/src/core/localization/strings/index.ts +++ b/packages/bot/src/core/localization/strings/index.ts @@ -1,5 +1,8 @@ import { Locale } from 'discord.js'; -import { SUPPORTED_LOCALES } from './constants'; +import { + SUPPORTED_LOCALES_DISCORD, + SUPPORTED_LOCALES_DISCORD_MAP_INVERSE, +} from './constants'; export type TranslationFragmentTree = { [key: string]: TranslationFragment; @@ -8,12 +11,14 @@ export type TranslationFragmentTree = { }; export type TranslationFragment = string | TranslationFragmentTree; -export const translations = SUPPORTED_LOCALES.reduce< +export const translations = SUPPORTED_LOCALES_DISCORD.reduce< Partial> >( (table, locale) => ({ ...table, - [locale]: require(`../../../../../core/lang/${locale}.json`), + [locale]: require( + `../../../../../core/lang/${SUPPORTED_LOCALES_DISCORD_MAP_INVERSE[locale]}.json`, + ), }), {}, ); diff --git a/packages/bot/src/core/localization/translator.ts b/packages/bot/src/core/localization/translator.ts index 2428b75b2..2b09fb8b5 100644 --- a/packages/bot/src/core/localization/translator.ts +++ b/packages/bot/src/core/localization/translator.ts @@ -1,12 +1,16 @@ import { Locale } from 'discord.js'; import { translations } from './strings'; -import { SUPPORTED_LOCALES } from './strings/constants'; +import { + DEFAULT_LOCALE_DISCORD, + SUPPORTED_LOCALES_DISCORD, +} from './strings/constants'; export function translator(localeRaw: Locale) { const locale = - localeRaw !== Locale.EnglishUS && SUPPORTED_LOCALES.includes(localeRaw) + localeRaw !== DEFAULT_LOCALE_DISCORD && + SUPPORTED_LOCALES_DISCORD.includes(localeRaw) ? localeRaw - : Locale.EnglishUS; + : DEFAULT_LOCALE_DISCORD; const strings = translations[locale]!; function translate(path: string, literals?: string[]): string { @@ -25,11 +29,11 @@ export function translator(localeRaw: Locale) { if (typeof fragment === 'undefined') { const message = `Undefined translation at "${pathItem}" in "${path}" for locale "${locale}"`; - if (locale === Locale.EnglishUS) { + if (locale === DEFAULT_LOCALE_DISCORD) { throw new Error(message); } else { console.warn(`${message} falling back to en-US`); - return translator(Locale.EnglishUS).translate(path, literals); + return translator(DEFAULT_LOCALE_DISCORD).translate(path, literals); } } } diff --git a/packages/bot/tsconfig.json b/packages/bot/tsconfig.json index 52d43eaaa..e86b8943b 100644 --- a/packages/bot/tsconfig.json +++ b/packages/bot/tsconfig.json @@ -1,4 +1,4 @@ { "extends": "../../tsconfig.json", - "include": ["src/**/*"] + "include": ["src/**/*", "../core/src/blitzkit/supportedLocales.ts"] } diff --git a/packages/core/src/blitzkit/index.ts b/packages/core/src/blitzkit/index.ts index 983def4d7..3f3cf0daa 100644 --- a/packages/core/src/blitzkit/index.ts +++ b/packages/core/src/blitzkit/index.ts @@ -46,4 +46,5 @@ export * from './votes'; export * from './createDefaultProvisions'; export * from './metaSortTank'; export * from './romanize'; +export * from './supportedLocales'; export * from './youtubers'; diff --git a/packages/core/src/blitzkit/supportedLocales.ts b/packages/core/src/blitzkit/supportedLocales.ts new file mode 100644 index 000000000..864646de8 --- /dev/null +++ b/packages/core/src/blitzkit/supportedLocales.ts @@ -0,0 +1,13 @@ +export const SUPPORTED_LOCALES = [ + 'en', + 'es', + 'hr', + 'pt', + 'ru', + 'uk', + 'zh', +] as const; + +export const DEFAULT_LOCALE = SUPPORTED_LOCALES[0]; + +export type SupportedLocale = (typeof SUPPORTED_LOCALES)[number]; From bf9addf58969071281fe839c97464349f1efdc10 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:32:03 -0600 Subject: [PATCH 3/3] feat: iteration --- bun.lockb | Bin 421992 -> 421992 bytes packages/bot/src/main.ts | 29 +++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/bun.lockb b/bun.lockb index 1e02b7c8185a17ee916d29730186b4de05ec4709..b09f501d1d8e2d7221ba198ea44aec66a3e56eb0 100644 GIT binary patch delta 40 ucmaFyK=Q={$%Yoj7N!>FEiBXRIT+&%^eim&4BF@0vj8#c_WAZ~Ck+5UHx69@ delta 40 qcmaFyK=Q={$%Yoj7N!>FEiBXRIhYtApnbkQ3lOtzpKs50(f|M>6%5n> diff --git a/packages/bot/src/main.ts b/packages/bot/src/main.ts index 713f5795a..e1538f01e 100644 --- a/packages/bot/src/main.ts +++ b/packages/bot/src/main.ts @@ -1,27 +1,30 @@ -import { assertSecret, EventManager } from '@blitzkit/core'; +// import { assertSecret, EventManager } from '@blitzkit/core'; +// import { ActivityType, ShardingManager } from 'discord.js'; +// import { +// discoveredIdsDefinitions, +// tankDefinitions, +// } from './core/blitzkit/nonBlockingPromises'; + +import { assertSecret } from '@blitzkit/core'; import { ActivityType, ShardingManager } from 'discord.js'; import { discoveredIdsDefinitions, tankDefinitions, } from './core/blitzkit/nonBlockingPromises'; -const somethingEvent = new EventManager(); +let iteration = 0; +const interval = setInterval(async () => { + iteration++; + + console.log(`Attempting launch on iteration ${iteration}`); -somethingEvent.on(async () => { const manager = new ShardingManager('dist/bot/workers/bot.js', { token: assertSecret(import.meta.env.DISCORD_TOKEN), }); - const timeout = setTimeout(() => { - console.warn(`Shards didn't launch in 5 seconds; trying again...`); - somethingEvent.emit(undefined); - - shards.forEach((shard) => shard.kill()); - }, 5000); - const shards = await manager .on('shardCreate', (shard) => { - clearTimeout(timeout); + clearInterval(interval); console.log(`🟡 Launching shard ${shard.id}`); shard.on('ready', () => console.log(`🟢 Launched shard ${shard.id}`)); }) @@ -76,6 +79,4 @@ somethingEvent.on(async () => { error, ); } -}); - -somethingEvent.emit(undefined); +}, 5000);