mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-09-30 07:12:36 -05:00
Add badge winners script
This commit is contained in:
@@ -160,6 +160,12 @@ npm run add-badge -- sundae "4v4 Sundaes"
|
||||
npm run rename-badge -- 10 "New 4v4 Sundaes"
|
||||
```
|
||||
|
||||
### Add many badge owners
|
||||
|
||||
```bash
|
||||
npm run add-badge-winners -- 10 "750705955909664791,79237403620945920"
|
||||
```
|
||||
|
||||
### Convert many .png files to .avif
|
||||
|
||||
While in the folder with the images:
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"migrate:reset": "node scripts/delete-db-files.mjs && npm run migrate && npm run seed",
|
||||
"add-badge": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/add-badge.ts",
|
||||
"rename-badge": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/rename-badge.ts",
|
||||
"add-badge-winners": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/add-badge-winners.ts",
|
||||
"create-gear-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-gear-json.ts",
|
||||
"create-object-dmg-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-object-dmg-json.ts",
|
||||
"create-misc-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-misc-json.ts",
|
||||
|
||||
26
scripts/add-badge-winners.ts
Normal file
26
scripts/add-badge-winners.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
/* eslint-disable no-console */
|
||||
import "dotenv/config";
|
||||
import invariant from "tiny-invariant";
|
||||
import { sql } from "~/db/sql";
|
||||
|
||||
const badgeId = process.argv[2]?.trim();
|
||||
const discordIds = process.argv[3]?.trim();
|
||||
|
||||
invariant(discordIds, "id list of discord ids required (argument 1)");
|
||||
invariant(badgeId, "display name of badge is required (argument 2)");
|
||||
invariant(
|
||||
discordIds.includes(","),
|
||||
"discordIds must be a comma separated list of discord ids"
|
||||
);
|
||||
|
||||
const stm = sql.prepare(
|
||||
/* sql */ `insert into "TournamentBadgeOwner" ("badgeId", "userId") values (@badgeId, (select "id" from "User" where "discordId" = @userId))`
|
||||
);
|
||||
|
||||
const users = discordIds.split(",");
|
||||
|
||||
for (const userId of users) {
|
||||
stm.run({ badgeId: Number(badgeId), userId });
|
||||
}
|
||||
|
||||
console.log(`Added ${users.length} owners to the badge`);
|
||||
Reference in New Issue
Block a user