From 38f912dc0a7bcf2eaef09521f742d9df27e2cc2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sun, 1 Oct 2023 16:48:53 -0500 Subject: [PATCH] feat: removed server --- .github/workflows/ci-build-server.yml | 43 ------------------- docs/changelogs/1.13.0.md | 7 +++ src/commands/ratings.tsx | 2 +- src/core/blitz/getArchivedRatingsInfo.ts | 2 +- src/core/database/getMidnightLeaderboard.ts | 2 +- src/core/discord/resolvePeriodFromButton.ts | 2 +- .../resolvePeriodFromURL.ts | 4 +- src/core/discord/resolvePlayerFromButton.ts | 2 +- .../resolvePlayerFromURL.ts | 0 src/core/express/normalizeRouteReturnable.ts | 11 ----- src/core/express/resolvePeriodFromRequest.ts | 11 ----- src/core/express/resolvePlayerFromRequest.ts | 7 --- src/core/express/withAutoRefresh.ts | 23 ---------- src/core/{express => github}/octokit.ts | 0 src/routes/stats.tsx | 23 ---------- src/routes/today.tsx | 20 --------- src/server.ts | 36 ---------------- 17 files changed, 14 insertions(+), 181 deletions(-) delete mode 100644 .github/workflows/ci-build-server.yml create mode 100644 docs/changelogs/1.13.0.md rename src/core/{express => discord}/resolvePeriodFromURL.ts (92%) rename src/core/{express => discord}/resolvePlayerFromURL.ts (100%) delete mode 100644 src/core/express/normalizeRouteReturnable.ts delete mode 100644 src/core/express/resolvePeriodFromRequest.ts delete mode 100644 src/core/express/resolvePlayerFromRequest.ts delete mode 100644 src/core/express/withAutoRefresh.ts rename src/core/{express => github}/octokit.ts (100%) delete mode 100644 src/routes/stats.tsx delete mode 100644 src/routes/today.tsx delete mode 100644 src/server.ts diff --git a/.github/workflows/ci-build-server.yml b/.github/workflows/ci-build-server.yml deleted file mode 100644 index 6451f578b..000000000 --- a/.github/workflows/ci-build-server.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: CI Build - -on: [push, pull_request] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - name: Build - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Use node - uses: actions/setup-node@v3 - with: - node-version: 18 - cache: 'npm' - - - name: Install Yarn - run: npm install --location=global yarn - - - name: Use node_modules cache - uses: actions/cache@v3 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - name: Install dependencies - run: yarn - - - name: Build - run: yarn build:server - - - name: Archive build - uses: actions/upload-artifact@v3 - with: - name: server - path: dist/server diff --git a/docs/changelogs/1.13.0.md b/docs/changelogs/1.13.0.md new file mode 100644 index 000000000..6df64981d --- /dev/null +++ b/docs/changelogs/1.13.0.md @@ -0,0 +1,7 @@ +# Blitzkrieg 1.30.0 + +One of the biggest updates ever! This changelog's size does not truly represent the work (and brain cells) spent. + +## Changes + +- Disabled the `/clan-event` command diff --git a/src/commands/ratings.tsx b/src/commands/ratings.tsx index 7894163bf..3f49a15ea 100644 --- a/src/commands/ratings.tsx +++ b/src/commands/ratings.tsx @@ -21,7 +21,7 @@ import addRegionChoices from '../core/discord/addRegionChoices'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteUsername from '../core/discord/autocompleteUsername'; import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand'; -import { octokit } from '../core/express/octokit'; +import { octokit } from '../core/github/octokit'; import throwError from '../core/node/throwError'; import { CommandRegistryRaw } from '../events/interactionCreate'; import { AccountInfo } from '../types/accountInfo'; diff --git a/src/core/blitz/getArchivedRatingsInfo.ts b/src/core/blitz/getArchivedRatingsInfo.ts index 40be6a267..c22e29653 100644 --- a/src/core/blitz/getArchivedRatingsInfo.ts +++ b/src/core/blitz/getArchivedRatingsInfo.ts @@ -1,7 +1,7 @@ import { RatingsInfo } from '../../commands/ratings'; import { Region } from '../../constants/regions'; import { DATABASE_REPO } from '../database/getMidnightLeaderboard'; -import { octokit } from '../express/octokit'; +import { octokit } from '../github/octokit'; import throwError from '../node/throwError'; export default async function getArchivedRatingsInfo( diff --git a/src/core/database/getMidnightLeaderboard.ts b/src/core/database/getMidnightLeaderboard.ts index 87b56d70f..b318299e2 100644 --- a/src/core/database/getMidnightLeaderboard.ts +++ b/src/core/database/getMidnightLeaderboard.ts @@ -1,6 +1,6 @@ import { BlitzkriegRatingsLeaderboard } from '../../../scripts/buildRatingsLeaderboard'; import { Region } from '../../constants/regions'; -import { octokit } from '../express/octokit'; +import { octokit } from '../github/octokit'; export const DATABASE_REPO = { owner: 'tresabhi', repo: 'blitzkrieg-db' }; diff --git a/src/core/discord/resolvePeriodFromButton.ts b/src/core/discord/resolvePeriodFromButton.ts index 3bdd6d103..8267c3dce 100644 --- a/src/core/discord/resolvePeriodFromButton.ts +++ b/src/core/discord/resolvePeriodFromButton.ts @@ -1,7 +1,7 @@ import { ButtonInteraction, CacheType } from 'discord.js'; import { CYCLIC_API } from '../../constants/cyclic'; import { Region } from '../../constants/regions'; -import resolvePeriodFromURL from '../express/resolvePeriodFromURL'; +import resolvePeriodFromURL from './resolvePeriodFromURL'; export default function resolvePeriodFromButton( server: Region, diff --git a/src/core/express/resolvePeriodFromURL.ts b/src/core/discord/resolvePeriodFromURL.ts similarity index 92% rename from src/core/express/resolvePeriodFromURL.ts rename to src/core/discord/resolvePeriodFromURL.ts index 5fba7141f..2f275e4c3 100644 --- a/src/core/express/resolvePeriodFromURL.ts +++ b/src/core/discord/resolvePeriodFromURL.ts @@ -2,11 +2,11 @@ import { Region } from '../../constants/regions'; import getPeriodNow from '../blitzstars/getPeriodNow'; import getPeriodStart from '../blitzstars/getPeriodStart'; import getTimeDaysAgo from '../blitzstars/getTimeDaysAgo'; -import { PeriodSize, PeriodType } from '../discord/addPeriodSubCommands'; +import { PeriodSize, PeriodType } from './addPeriodSubCommands'; import { ResolvedPeriod, getPeriodOptionName, -} from '../discord/resolvePeriodFromCommand'; +} from './resolvePeriodFromCommand'; export default function resolvePeriodFromURL( server: Region, diff --git a/src/core/discord/resolvePlayerFromButton.ts b/src/core/discord/resolvePlayerFromButton.ts index eb469366b..8369c4c1b 100644 --- a/src/core/discord/resolvePlayerFromButton.ts +++ b/src/core/discord/resolvePlayerFromButton.ts @@ -1,6 +1,6 @@ import { ButtonInteraction, CacheType } from 'discord.js'; import { CYCLIC_API } from '../../constants/cyclic'; -import resolvePlayerFromURL from '../express/resolvePlayerFromURL'; +import resolvePlayerFromURL from './resolvePlayerFromURL'; export default async function resolvePlayerFromButton( interaction: ButtonInteraction, diff --git a/src/core/express/resolvePlayerFromURL.ts b/src/core/discord/resolvePlayerFromURL.ts similarity index 100% rename from src/core/express/resolvePlayerFromURL.ts rename to src/core/discord/resolvePlayerFromURL.ts diff --git a/src/core/express/normalizeRouteReturnable.ts b/src/core/express/normalizeRouteReturnable.ts deleted file mode 100644 index 8f3ecfd1c..000000000 --- a/src/core/express/normalizeRouteReturnable.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { RouteReturnable } from '../../server'; -import jsxToSvg from '../node/jsxToSvg'; - -export default async function normalizeRouteReturnable( - returnable: RouteReturnable, -) { - const awaitedReturnable = await returnable; - const svg = await jsxToSvg(awaitedReturnable); - - return svg; -} diff --git a/src/core/express/resolvePeriodFromRequest.ts b/src/core/express/resolvePeriodFromRequest.ts deleted file mode 100644 index 701e41e26..000000000 --- a/src/core/express/resolvePeriodFromRequest.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request } from 'express'; -import { CYCLIC_API } from '../../constants/cyclic'; -import { Region } from '../../constants/regions'; -import resolvePeriodFromURL from './resolvePeriodFromURL'; - -export default function resolvePeriodFromRequest( - server: Region, - request: Request, -) { - return resolvePeriodFromURL(server, `${CYCLIC_API}${request.url}`); -} diff --git a/src/core/express/resolvePlayerFromRequest.ts b/src/core/express/resolvePlayerFromRequest.ts deleted file mode 100644 index 600c39fdb..000000000 --- a/src/core/express/resolvePlayerFromRequest.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Request } from 'express'; -import { CYCLIC_API } from '../../constants/cyclic'; -import resolvePlayerFromURL from './resolvePlayerFromURL'; - -export default function resolvePlayerFromRequest(request: Request) { - return resolvePlayerFromURL(`${CYCLIC_API}${request.originalUrl}`); -} diff --git a/src/core/express/withAutoRefresh.ts b/src/core/express/withAutoRefresh.ts deleted file mode 100644 index e29b780cf..000000000 --- a/src/core/express/withAutoRefresh.ts +++ /dev/null @@ -1,23 +0,0 @@ -export default function withAutoRefresh(svg: string, refreshAfter: number) { - return ` - - - - - - - - - ${svg} - - - `; -} diff --git a/src/core/express/octokit.ts b/src/core/github/octokit.ts similarity index 100% rename from src/core/express/octokit.ts rename to src/core/github/octokit.ts diff --git a/src/routes/stats.tsx b/src/routes/stats.tsx deleted file mode 100644 index 8c04f2eec..000000000 --- a/src/routes/stats.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import resolvePeriodFromRequest from '../core/express/resolvePeriodFromRequest'; -import resolvePlayerFromRequest from '../core/express/resolvePlayerFromRequest'; -import stats, { StatType } from '../renderers/stats'; -import { RouteRegistry } from '../server'; - -export const statsRoute: RouteRegistry = { - route: '/stats/:type/:period', - inProduction: true, - - async handler(req) { - const type = req.params.type as StatType; - const player = resolvePlayerFromRequest(req); - const period = resolvePeriodFromRequest(player.region, req); - - return await stats( - type, - period, - player, - parseInt(req.query.tankId as string), - true, - ); - }, -}; diff --git a/src/routes/today.tsx b/src/routes/today.tsx deleted file mode 100644 index f070df620..000000000 --- a/src/routes/today.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import resolvePlayerFromRequest from '../core/express/resolvePlayerFromRequest'; -import today from '../renderers/today'; -import { RouteRegistry } from '../server'; - -export const todayRoute: RouteRegistry = { - route: '/today', - inProduction: true, - - async handler(req) { - const player = resolvePlayerFromRequest(req); - - return await today( - player, - req.query.cutoff ? parseInt(req.query.cutoff as string) : undefined, - req.query.maximized ? parseInt(req.query.maximized as string) : undefined, - req.query['show-total'] ? req.query['show-total'] === 'true' : undefined, - true, - ); - }, -}; diff --git a/src/server.ts b/src/server.ts deleted file mode 100644 index 6fdc3df6f..000000000 --- a/src/server.ts +++ /dev/null @@ -1,36 +0,0 @@ -import express, { Request, Response } from 'express'; -import normalizeRouteReturnable from './core/express/normalizeRouteReturnable'; -import withAutoRefresh from './core/express/withAutoRefresh'; -import { Registry } from './events/interactionCreate'; -import { statsRoute } from './routes/stats'; -import { todayRoute } from './routes/today'; - -export type RouteReturnable = JSX.Element | Promise; - -export interface RouteRegistry - extends Registry { - route: string; - handlesInteraction?: HandlesInteraction; - - handler: ( - req: Request, - res: Response, - ) => HandlesInteraction extends true ? void : RouteReturnable; -} - -const app = express(); - -([statsRoute, todayRoute] as RouteRegistry[]).forEach((registry) => { - app.get(registry.route, async (req, res) => { - console.log(req.originalUrl); - - const returnable = registry.handler(req, res); - if (registry.handlesInteraction) return; - - res.send( - withAutoRefresh(await normalizeRouteReturnable(returnable), 30 * 1000), - ); - }); -}); - -app.listen(process.env.PORT ?? 3000);