From 89bd6206af3e49ca119656c97c1fa19635120c08 Mon Sep 17 00:00:00 2001 From: Max Isom Date: Thu, 4 Aug 2022 22:06:54 -0500 Subject: Bump dependencies & fix bot status (#753) --- src/services/config.ts | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'src/services') diff --git a/src/services/config.ts b/src/services/config.ts index ca4fc68..1cafd3c 100644 --- a/src/services/config.ts +++ b/src/services/config.ts @@ -4,6 +4,7 @@ import {injectable} from 'inversify'; import path from 'path'; import xbytes from 'xbytes'; import {ConditionalKeys} from 'type-fest'; +import {ActivityType, PresenceStatusData} from 'discord.js'; dotenv.config(); export const DATA_DIR = path.resolve(process.env.DATA_DIR ? process.env.DATA_DIR : './data'); @@ -18,11 +19,18 @@ const CONFIG_MAP = { CACHE_DIR: path.join(DATA_DIR, 'cache'), CACHE_LIMIT_IN_BYTES: xbytes.parseSize(process.env.CACHE_LIMIT ?? '2GB'), BOT_STATUS: process.env.BOT_STATUS ?? 'online', - BOT_ACTIVITY_TYPE: process.env.BOT_ACTIVITY_TYPE ?? 'Listening', + BOT_ACTIVITY_TYPE: process.env.BOT_ACTIVITY_TYPE ?? 'LISTENING', BOT_ACTIVITY_URL: process.env.BOT_ACTIVITY_URL ?? '', BOT_ACTIVITY: process.env.BOT_ACTIVITY ?? 'music', } as const; +const BOT_ACTIVITY_TYPE_MAP = { + PLAYING: ActivityType.Playing, + LISTENING: ActivityType.Listening, + WATCHING: ActivityType.Watching, + STREAMING: ActivityType.Streaming, +} as const; + @injectable() export default class Config { readonly DISCORD_TOKEN!: string; @@ -33,8 +41,8 @@ export default class Config { readonly DATA_DIR!: string; readonly CACHE_DIR!: string; readonly CACHE_LIMIT_IN_BYTES!: number; - readonly BOT_STATUS!: string; - readonly BOT_ACTIVITY_TYPE!: string; + readonly BOT_STATUS!: PresenceStatusData; + readonly BOT_ACTIVITY_TYPE!: Exclude; readonly BOT_ACTIVITY_URL!: string; readonly BOT_ACTIVITY!: string; @@ -45,10 +53,16 @@ export default class Config { process.exit(1); } + if (key === 'BOT_ACTIVITY_TYPE') { + this[key] = BOT_ACTIVITY_TYPE_MAP[(value as string).toUpperCase() as keyof typeof BOT_ACTIVITY_TYPE_MAP]; + continue; + } + if (typeof value === 'number') { this[key as ConditionalKeys] = value; } else if (typeof value === 'string') { - this[key as ConditionalKeys] = value.trim(); + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + (this as any)[key] = value.trim(); } else if (typeof value === 'boolean') { this[key as ConditionalKeys] = value; } else { -- cgit v1.2.3