From 7f9c9f25fb94dd844dd216fb614059aec4852049 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sun, 29 Sep 2024 13:49:27 +0300 Subject: [PATCH] Homemade badges (#1894) * Initial * Author info * Add docs --- app/db/tables.ts | 4 +- app/features/badges/BadgeRepository.server.ts | 8 +- .../badges/components/BadgeDisplay.tsx | 2 +- app/features/badges/homemade.ts | 17 ++ app/features/badges/routes/badges.$id.tsx | 13 +- app/features/badges/routes/badges.tsx | 15 +- docs/badges.md | 62 +++++++ docs/img/badges-1.png | Bin 0 -> 18593 bytes docs/img/badges-2.png | Bin 0 -> 86573 bytes locales/da/badges.json | 1 - locales/de/badges.json | 1 - locales/en/badges.json | 2 +- locales/es-ES/badges.json | 1 - locales/es-US/badges.json | 1 - locales/fr-CA/badges.json | 1 - locales/fr-EU/badges.json | 1 - locales/he/badges.json | 1 - locales/it/badges.json | 1 - locales/ja/badges.json | 1 - locales/ko/badges.json | 1 - locales/nl/badges.json | 1 - locales/pl/badges.json | 1 - locales/pt-BR/badges.json | 1 - locales/ru/badges.json | 1 - locales/zh/badges.json | 1 - migrations/071-homemade-badges.js | 9 + scripts/sync-homemade-badges.ts | 168 ++++++++++++++++++ 27 files changed, 278 insertions(+), 37 deletions(-) create mode 100644 app/features/badges/homemade.ts create mode 100644 docs/badges.md create mode 100644 docs/img/badges-1.png create mode 100644 docs/img/badges-2.png create mode 100644 migrations/071-homemade-badges.js create mode 100644 scripts/sync-homemade-badges.ts diff --git a/app/db/tables.ts b/app/db/tables.ts index 6d213dcac..2b95db447 100644 --- a/app/db/tables.ts +++ b/app/db/tables.ts @@ -69,10 +69,12 @@ export interface ArtUserMetadata { } export interface Badge { + id: GeneratedAlways; code: string; displayName: string; hue: number | null; - id: GeneratedAlways; + /** Who made the badge? If null, a legacy badge. */ + authorId: number | null; } export interface BadgeManager { diff --git a/app/features/badges/BadgeRepository.server.ts b/app/features/badges/BadgeRepository.server.ts index 4f4bb0367..b4170cffc 100644 --- a/app/features/badges/BadgeRepository.server.ts +++ b/app/features/badges/BadgeRepository.server.ts @@ -1,4 +1,4 @@ -import { jsonArrayFrom } from "kysely/helpers/sqlite"; +import { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/sqlite"; import { db } from "~/db/sql"; import { COMMON_USER_FIELDS } from "~/utils/kysely.server"; import type { Unwrapped } from "~/utils/types"; @@ -17,6 +17,12 @@ export async function all() { .whereRef("BadgeManager.badgeId", "=", "Badge.id") .select(["userId"]), ).as("managers"), + jsonObjectFrom( + eb + .selectFrom("User") + .select(COMMON_USER_FIELDS) + .whereRef("User.id", "=", "Badge.authorId"), + ).as("author"), ]) .execute(); diff --git a/app/features/badges/components/BadgeDisplay.tsx b/app/features/badges/components/BadgeDisplay.tsx index 05a4943ba..1b8067362 100644 --- a/app/features/badges/components/BadgeDisplay.tsx +++ b/app/features/badges/components/BadgeDisplay.tsx @@ -9,7 +9,7 @@ import type { Unpacked } from "~/utils/types"; import { badgeExplanationText } from "../badges-utils"; interface BadgeDisplayProps { - badges: Array; + badges: Array & { count?: number }>; onBadgeRemove?: (badgeId: number) => void; } diff --git a/app/features/badges/homemade.ts b/app/features/badges/homemade.ts new file mode 100644 index 000000000..9e0961b87 --- /dev/null +++ b/app/features/badges/homemade.ts @@ -0,0 +1,17 @@ +interface BadgeInfo { + // The name of the badge as it shows on the web page: "Awarded for winning {displayName}" + displayName: string; + // The file name of the badge: fileName.png, fileName.avif & fileName.gif + fileName: string; + // The Discord ID of the person who made the badge (not the person who commissioned it) + authorDiscordId: string; +} + +export const homemadeBadges: BadgeInfo[] = [ + // EXAMPLE + // { + // displayName: "Example Badge", + // fileName: "example", + // authorDiscordId: "123456789012345678", + // }, +]; diff --git a/app/features/badges/routes/badges.$id.tsx b/app/features/badges/routes/badges.$id.tsx index 81aa76ef3..01b80d892 100644 --- a/app/features/badges/routes/badges.$id.tsx +++ b/app/features/badges/routes/badges.$id.tsx @@ -50,14 +50,15 @@ export default function BadgeDetailsPage() {
{badgeExplanationText(t, badge)}
-
+
{t("managedBy", { - users: data.managers.map((m) => m.username).join(", "), + users: data.managers.map((m) => m.username).join(", ") || "???", + })}{" "} + ( + {t("madeBy", { + user: badge.author?.username ?? "borzoic", })} + )
{isMod(user) || canEditBadgeOwners({ user, managers: data.managers }) ? ( diff --git a/app/features/badges/routes/badges.tsx b/app/features/badges/routes/badges.tsx index b62395316..6b31383e9 100644 --- a/app/features/badges/routes/badges.tsx +++ b/app/features/badges/routes/badges.tsx @@ -1,7 +1,6 @@ import type { SerializeFrom } from "@remix-run/node"; -import { NavLink, Outlet, useLoaderData } from "@remix-run/react"; +import { Link, NavLink, Outlet, useLoaderData } from "@remix-run/react"; import * as React from "react"; -import { Trans } from "react-i18next"; import { useTranslation } from "react-i18next"; import { Badge } from "~/components/Badge"; import { Divider } from "~/components/Divider"; @@ -10,7 +9,7 @@ import { Main } from "~/components/Main"; import { SearchIcon } from "~/components/icons/Search"; import { useUser } from "~/features/auth/core/user"; import type { SendouRouteHandle } from "~/utils/remix"; -import { BADGES_PAGE, BORZOIC_TWITTER, navIconUrl } from "~/utils/urls"; +import { BADGES_PAGE, FAQ_PAGE, navIconUrl } from "~/utils/urls"; import * as BadgeRepository from "../BadgeRepository.server"; import "~/styles/badges.css"; @@ -98,16 +97,8 @@ export default function BadgesPageLayout() {

- - Badges by{" "} - - borzoic - - -

- {/*

{t("forYourEvent")} -

*/} +

); diff --git a/docs/badges.md b/docs/badges.md new file mode 100644 index 000000000..0537af393 --- /dev/null +++ b/docs/badges.md @@ -0,0 +1,62 @@ +# Badge guide + +## What are badges? + +Badges are a virtual prize that users can win from tournaments and then display on their profile. + +Current list of them can be seen here https://sendou.ink/badges + +## Rules + +Any badge to be added has to follow these rules. Badges that do not follow the rules will not be added to the site or can be removed at any time: + +**Quality and consistency** has to be matching those already on the site. + +**Uniqueness** i.e. the added badge has to be different enough from those already on the site. + +**Variations** for a maximum of 3 per unique design (e.g. 1st, 2nd & 3rd place variations). For further additions it has be a completely different and unique design and not just recolor or small design changes. + +**No AI** every badge has to be made by a human. + +**Made for sendou.ink/approved usage** badges have to be commissioned for this exact purpose or otherwise agreed with the person who made them so that they fully understand what they are used for. + +**As tournament prizes** the badge are meant to be given out as tournament prizes (awarded for reaching certain placement). If you have any other idea in mind then you need to check that with Sendou separately. + +## Adding a new badge + +1. First badge needs to be made +- 3D artists can use [picoCAD](https://johanpeitz.itch.io/picocad) +- Others can use the "[badges" Discord channel](https://discord.gg/sendou) to inquire about a commission +- Read rules from above carefully at this point and ask if you do not understand something +2. Create needed files +- .gif file, black solid background. Create via [picoCAD Web Viewer](https://lucatronica.github.io/picocad-web-viewer/) +- .png file. TODO: info on how to ceate +- .avif file. Create via e.g. [Squoosh](https://squoosh.app/) from the .png file +- All files should be squares. 512x512 is a good size for example +3. Make a pull request to the project +- You can request someone to help you on the ["development" Discord channel](https://discord.gg/sendou) +- In the PR add the 3 needed files to public/static-assets/badges folder: + +![alt text](img/badges-1.png) + +- Also update app/features/badges/homemade.ts file (read the comments to understand each value): + +![alt text](img/badges-2.png) + +4. Wait for Sendou to look into the pull request +- Sometimes this can take a while if Sendou is busy +- Changes might be requested + +5. Wait for the site to be updated +- After the pull request is merged it does not automatically go to the site yet +- Normally the site updates a couple times a week, but this can vary + +6. Request permissions +- After you see your badge on the /badges page you can request manager permissions to it on from the staff on the helpdesk channel + +7. Give out the badges to tournament winners +- Badge can be given out via the /badges page + +## Updating a badge + +Make a new pull request making the changes you need. The `fileName` should always remain the same. diff --git a/docs/img/badges-1.png b/docs/img/badges-1.png new file mode 100644 index 0000000000000000000000000000000000000000..1151d6c6bddf2a6364fac33106960361f82ff13b GIT binary patch literal 18593 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

*lGsAtQcUXU7Ch%K73*P>omedEiMB*%rP7T|E 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 literal 0 HcmV?d00001 diff --git a/locales/da/badges.json b/locales/da/badges.json index 34aecf0a3..7f3f8b72d 100644 --- a/locales/da/badges.json +++ b/locales/da/badges.json @@ -5,7 +5,6 @@ "tournament_one": "Tildeldt for at vinde {{tournament}}", "tournament_other": "Tildeldt for at vinde {{tournament}} (×{{count}})", "forYourEvent": "Mærke til dit arrangement?", - "madeBy": "Mærker er lavet af <2>borzoic", "managedBy": "Administreres af {{users}}", "own.divider": "Administrerede mærker", "other.divider": "Andre mærker" diff --git a/locales/de/badges.json b/locales/de/badges.json index 5d379bf7e..cc4440eb9 100644 --- a/locales/de/badges.json +++ b/locales/de/badges.json @@ -4,6 +4,5 @@ "tournament_one": "Verliehen für den Sieg von {{tournament}}", "tournament_other": "Verliehen für den Sieg von {{tournament}} (×{{count}})", "forYourEvent": "Abzeichen für dein Event?", - "madeBy": "Abzeichen von <2>borzoic", "managedBy": "Verwaltet durch {{users}}" } diff --git a/locales/en/badges.json b/locales/en/badges.json index 4e77fae1a..b0f27131b 100644 --- a/locales/en/badges.json +++ b/locales/en/badges.json @@ -5,8 +5,8 @@ "tournament_one": "Awarded for winning {{tournament}}", "tournament_other": "Awarded for winning {{tournament}} (×{{count}})", "forYourEvent": "Badge for your event?", - "madeBy": "Badges by <2>borzoic", "managedBy": "Managed by {{users}}", + "madeBy": "made by {{user}}", "own.divider": "Managed badges", "other.divider": "Other badges" } diff --git a/locales/es-ES/badges.json b/locales/es-ES/badges.json index 48e78d141..3a5df56cb 100644 --- a/locales/es-ES/badges.json +++ b/locales/es-ES/badges.json @@ -5,7 +5,6 @@ "tournament_one": "Recibido por ganar {{tournament}}", "tournament_other": "Recibido por ganar {{tournament}} (×{{count}})", "forYourEvent": "¿Insignia para tu evento?", - "madeBy": "Insignia por <2>borzoic", "managedBy": "Administrado por {{users}}", "own.divider": "Insignias administradas", "other.divider": "Otras insignias" diff --git a/locales/es-US/badges.json b/locales/es-US/badges.json index 4ad92fbb3..55635f6a5 100644 --- a/locales/es-US/badges.json +++ b/locales/es-US/badges.json @@ -5,7 +5,6 @@ "tournament_one": "Recibido por ganar {{tournament}}", "tournament_other": "Recibido por ganar {{tournament}} (×{{count}})", "forYourEvent": "¿Insignia para tu evento?", - "madeBy": "Insignia por <2>borzoic", "managedBy": "Administrado por {{users}}", "own.divider": "Insignias administradas", "other.divider": "Otras insignias" diff --git a/locales/fr-CA/badges.json b/locales/fr-CA/badges.json index d5dc48c8c..0678c3e7b 100644 --- a/locales/fr-CA/badges.json +++ b/locales/fr-CA/badges.json @@ -5,6 +5,5 @@ "tournament_one": "Attribué pour avoir gagné {{tournament}}", "tournament_other": "Attribué pour avoir gagné {{tournament}} (×{{count}})", "forYourEvent": "Un badge pour votre événement ?", - "madeBy": "Badges créés par <2>borzoic", "managedBy": "Géré par {{users}}" } diff --git a/locales/fr-EU/badges.json b/locales/fr-EU/badges.json index d5dc48c8c..0678c3e7b 100644 --- a/locales/fr-EU/badges.json +++ b/locales/fr-EU/badges.json @@ -5,6 +5,5 @@ "tournament_one": "Attribué pour avoir gagné {{tournament}}", "tournament_other": "Attribué pour avoir gagné {{tournament}} (×{{count}})", "forYourEvent": "Un badge pour votre événement ?", - "madeBy": "Badges créés par <2>borzoic", "managedBy": "Géré par {{users}}" } diff --git a/locales/he/badges.json b/locales/he/badges.json index b67b5b23c..81d97c399 100644 --- a/locales/he/badges.json +++ b/locales/he/badges.json @@ -5,6 +5,5 @@ "tournament_one": "מוענק עבור ניצחון {{tournament}}", "tournament_other": "מוענק עבור ניצחון {{tournament}} (×{{count}})", "forYourEvent": "תג לאירוע שלכם?", - "madeBy": "תגים מאת <2>borzoic", "managedBy": "מנוהל על ידי {{users}}" } diff --git a/locales/it/badges.json b/locales/it/badges.json index ba9bc2758..527c76eea 100644 --- a/locales/it/badges.json +++ b/locales/it/badges.json @@ -4,6 +4,5 @@ "tournament_one": "Premio per aver vinto {{tournament}}", "tournament_other": "Premio per aver vinto {{tournament}} (×{{count}})", "forYourEvent": "Vuoi creare una medaglia per il tuo evento?", - "madeBy": "Medaglie fatte da <2>borzoic", "managedBy": "Gestito da {{users}}" } diff --git a/locales/ja/badges.json b/locales/ja/badges.json index d850fb21c..0618ca434 100644 --- a/locales/ja/badges.json +++ b/locales/ja/badges.json @@ -5,7 +5,6 @@ "tournament_one": "{{tournament}} の勝者", "tournament_other": "{{tournament}} の勝者 (×{{count}})", "forYourEvent": "イベント専用のバッジ?", - "madeBy": "<2>borzoic によって作成されたバッジ", "managedBy": "{{users}} によって管理されています", "own.divider": "管理しているバッジ", "other.divider": "他のバッジ" diff --git a/locales/ko/badges.json b/locales/ko/badges.json index 0d3a4f131..c313f1597 100644 --- a/locales/ko/badges.json +++ b/locales/ko/badges.json @@ -5,6 +5,5 @@ "tournament_one": "{{tournament}} 우승 기념", "tournament_other": "{{tournament}} (×{{count}}) 우승 기념", "forYourEvent": "이벤트에 배지를 원하나요?", - "madeBy": "<2>borzoic 제작", "managedBy": "{{users}}가 관리" } diff --git a/locales/nl/badges.json b/locales/nl/badges.json index 07c0cb1d2..96996c993 100644 --- a/locales/nl/badges.json +++ b/locales/nl/badges.json @@ -4,6 +4,5 @@ "tournament_one": "Uitgereikt voor het winnen van {{tournament}}", "tournament_other": "Uitgereikt voor het winnen van {{tournament}} (×{{count}})", "forYourEvent": "Ook een badge voor jouw evenement?", - "madeBy": "Badges gemaakt door <2>borzoic", "managedBy": "Beheerd door {{users}}" } diff --git a/locales/pl/badges.json b/locales/pl/badges.json index 5260c07dd..9fa4e7b42 100644 --- a/locales/pl/badges.json +++ b/locales/pl/badges.json @@ -4,6 +4,5 @@ "tournament_one": "Nagrodzony/a za wygranie {{tournament}}", "tournament_other": "Nagrodzony/a {{tournament}} (×{{count}})", "forYourEvent": "Odznaka dla twojego eventu?", - "madeBy": "Odznaki robione przez <2>borzoic", "managedBy": "Zarządzane przez {{users}}" } diff --git a/locales/pt-BR/badges.json b/locales/pt-BR/badges.json index 94cfd41f0..a2cc99687 100644 --- a/locales/pt-BR/badges.json +++ b/locales/pt-BR/badges.json @@ -5,7 +5,6 @@ "tournament_one": "Premiado(a) por vencer o(a) {{tournament}}", "tournament_other": "Premiado(a) por vencer o(a) {{tournament}} (×{{count}})", "forYourEvent": "Quer insígnia(s) para o seu evento?", - "madeBy": "Insígnias por <2>borzoic", "managedBy": "Gerenciado por/pela {{users}}", "own.divider": "Ingínias gerenciadas", "other.divider": "Outras insígnias" diff --git a/locales/ru/badges.json b/locales/ru/badges.json index f88925a56..6ac863474 100644 --- a/locales/ru/badges.json +++ b/locales/ru/badges.json @@ -5,6 +5,5 @@ "tournament_one": "Награда за победу в {{tournament}}", "tournament_other": "Награда за победу в {{tournament}} (×{{count}})", "forYourEvent": "Значок для вашего события?", - "madeBy": "Значки от <2>borzoic", "managedBy": "Выдаётся {{users}}" } diff --git a/locales/zh/badges.json b/locales/zh/badges.json index 4fd8c0c9c..4058eccaf 100644 --- a/locales/zh/badges.json +++ b/locales/zh/badges.json @@ -5,7 +5,6 @@ "tournament_one": "{{tournament}}冠军奖励", "tournament_other": "{{tournament}} (×{{count}})冠军奖励", "forYourEvent": "在我的活动中设置徽章", - "madeBy": "由<2>borzoic设计", "managedBy": "由{{users}}管理", "own.divider": "管理徽章", "other.divider": "其他徽章" diff --git a/migrations/071-homemade-badges.js b/migrations/071-homemade-badges.js new file mode 100644 index 000000000..3f09f2140 --- /dev/null +++ b/migrations/071-homemade-badges.js @@ -0,0 +1,9 @@ +export function up(db) { + db.transaction(() => { + db.prepare(/* sql */ `alter table "Badge" add "authorId" integer`).run(); + })(); + + db.prepare( + /* sql */ `create index badge_author_id on "Badge"("authorId")`, + ).run(); +} diff --git a/scripts/sync-homemade-badges.ts b/scripts/sync-homemade-badges.ts new file mode 100644 index 000000000..0f3a2ba72 --- /dev/null +++ b/scripts/sync-homemade-badges.ts @@ -0,0 +1,168 @@ +import "dotenv/config"; + +import { db } from "~/db/sql"; +import { homemadeBadges } from "~/features/badges/homemade"; +import { logger } from "~/utils/logger"; + +async function main() { + let deleted = 0; + let updated = 0; + + const isGood = validateHomemadeBadges(); + + if (!isGood) { + logger.error( + "Homemade badges are not valid, skipping badge update process", + ); + return; + } + + // update existing + for (const existingBadge of await homemadeBadgesInDb()) { + const badge = homemadeBadges.find( + (badge) => badge.fileName === existingBadge.code, + ); + + if (!badge) { + await deleteBadge(existingBadge.id); + deleted++; + continue; + } + + const author = await findUserByDiscordId(badge.authorDiscordId); + + if (!author) { + logger.warn( + `Author not found for badge with id: ${existingBadge.id}, skipping`, + ); + continue; + } + + if ( + badge.displayName !== existingBadge.displayName || + badge.authorDiscordId !== existingBadge.discordId + ) { + await updateBadge(existingBadge.id, { + displayName: badge.displayName, + authorId: author.id, + }); + updated++; + } + } + + const homemadeAfterUpdates = await homemadeBadgesInDb(); + + let added = 0; + + // add new + for (const badge of homemadeBadges) { + const existing = homemadeAfterUpdates.find( + (existingBadge) => badge.fileName === existingBadge.code, + ); + + if (existing) { + continue; + } + + const author = await findUserByDiscordId(badge.authorDiscordId); + if (!author) { + logger.warn( + `Author not found for badge with fileName: ${badge.fileName}, skipping`, + ); + continue; + } + + await addBadge({ + code: badge.fileName, + displayName: badge.displayName, + authorId: author.id, + }); + + added++; + } + + logger.info( + `Deleted ${deleted}, updated ${updated}, added ${added} homemade badges`, + ); +} + +function validateHomemadeBadges() { + const names = new Set(); + + for (const badge of homemadeBadges) { + if (names.has(badge.fileName)) { + return false; + } + + names.add(badge.fileName); + } + + return true; +} + +async function homemadeBadgesInDb() { + return db + .selectFrom("Badge") + .innerJoin("User", "Badge.authorId", "User.id") + .select(["Badge.id", "Badge.code", "User.discordId", "Badge.displayName"]) + .execute(); +} + +async function findUserByDiscordId(discordId: string) { + return db + .selectFrom("User") + .select("id") + .where("discordId", "=", discordId) + .executeTakeFirst(); +} + +async function deleteBadge(badgeId: number) { + const owners = await db + .selectFrom("BadgeOwner") + .where("badgeId", "=", badgeId) + .execute(); + + if (owners.length > 0) { + logger.warn(`Refusing to delete badge ${badgeId} because it has owners`); + return; + } + + await db.transaction().execute(async (trx) => { + await trx + .deleteFrom("BadgeManager") + .where("badgeId", "=", badgeId) + .execute(); + await trx.deleteFrom("Badge").where("id", "=", badgeId).execute(); + }); +} + +async function updateBadge( + badgeId: number, + badge: { displayName: string; authorId: number }, +) { + return db + .updateTable("Badge") + .set({ + displayName: badge.displayName, + authorId: badge.authorId, + }) + .where("id", "=", badgeId) + .execute(); +} + +async function addBadge(badge: { + code: string; + displayName: string; + authorId: number; +}) { + return db + .insertInto("Badge") + .values({ + code: badge.code, + displayName: badge.displayName, + authorId: badge.authorId, + }) + .execute(); +} + +main();