diff --git a/client/auditProducts.ts b/client/auditProducts.ts new file mode 100644 index 0000000..0546ab4 --- /dev/null +++ b/client/auditProducts.ts @@ -0,0 +1,22 @@ +import { products } from "./src/app/config/products"; + +const repos: { name:string}[] = []; +let page = 1 +let productReq = await fetch(`https://git.nhcarrigan.com/api/v1/orgs/nhcarrigan/repos?limit=50&page=${page}`); +let productRes: { name: string }[] = await productReq.json(); + +repos.push(...productRes); + +while (productRes.length >= 50) { + page++; + productReq = await fetch(`https://git.nhcarrigan.com/api/v1/orgs/nhcarrigan/repos?limit=50&page=${page}`); + productRes = await productReq.json(); + repos.push(...productRes); +} + +console.log(`Auditing ${repos.length} repositories.`); + +const excludedProducts = repos.filter(product => products.findIndex(p => p.name.toLowerCase().replace(/\s/g, "-") === product.name) === -1); + +console.log("The following products do not appear to be listed in the directory."); +console.log(excludedProducts.map(product => product.name).join("\n")); diff --git a/client/src/app/config/products.ts b/client/src/app/config/products.ts index 6f288a9..90809af 100644 --- a/client/src/app/config/products.ts +++ b/client/src/app/config/products.ts @@ -155,15 +155,6 @@ export const products: Array<{ url: "https://docs.nhcarrigan.com", wip: true, }, - { - avatar: null, - category: "websites", - description: "A self-hosted Discourse instance for our community.", - name: "Fourm", - premium: false, - url: "https://forum.nhcarrigan.com", - wip: false, - }, { avatar: null, category: "websites", @@ -251,8 +242,8 @@ export const products: Array<{ description: "A Discord bot that allows servers to specify a venting channel for automatic deletion.", name: "Sorielle", premium: true, - url: null, - wip: true, + url: "https://sorielle.nhcarrigan.com", + wip: false, }, { avatar: "https://cdn.nhcarrigan.com/new-avatars/verena.png", @@ -470,4 +461,112 @@ export const products: Array<{ url: null, wip: true, }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/veluna.png", + category: "community", + description: "Discord bot that allows you to receive and answer anonymous questions.", + name: "Veluna", + premium: true, + url: null, + wip: true, + }, + { + avatar: null, + category: "apps", + description: "Idle RPG in the browser.", + name: "Elysium", + premium: true, + url: null, + wip: true, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/chibika.png", + category: "community", + description: "A Discord bot that generates ascii anime girls.", + name: "Chibika", + premium: true, + url: "https://chibika.nhcarrigan.com", + wip: false, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/elaria.png", + category: "websites", + description: "Meeting schedule coordination tool.", + name: "Elaria", + premium: true, + url: null, + wip: true, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/elunara.png", + category: "community", + description: "Discord bot that allows users to proxy messages so they correctly appear as composed by an alter.", + name: "Elunara", + premium: true, + url: null, + wip: true, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/aureline.png", + category: "websites", + description: "Web app that allows you to create/upload digital badges and certifications and grant them to users", + name: "Aureline", + premium: true, + url: null, + wip: true, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/lynira.png", + category: "apps", + description: "Link shortener managed via a Discord bot.", + name: "Lynira", + premium: true, + url: "https://lynira.link", + wip: false, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/altaria.png", + category: "community", + description: "A Discord bot that reminds you to provide alt-text for images.", + name: "Altaria", + premium: false, + url: "https://altaria.nhcarrigan.com", + wip: false, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/pavelle.png", + category: "community", + description: "Discord bot that allows you to throw things (like cake) at your fellow server members.", + name: "Pavelle", + premium: true, + url: "https://pavelle.nhcarrigan.com", + wip: false, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/amari.png", + category: "community", + description: "Naomi's virtual personal assistant who helps out with automation around our Discord community.", + name: "Amari", + premium: false, + url: "https://amari.nhcarrigan.com", + wip: false, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/serenya.png", + category: "community", + description: "Discord bot that allows you to force yourself to take a break.", + name: "Serenya", + premium: false, + url: "https://serenya.nhcarrigan.com", + wip: false, + }, + { + avatar: "https://cdn.nhcarrigan.com/new-avatars/caelia.png", + category: "community", + description: "Discord bot that gently reminds you to use inclusive language.", + name: "Caelia", + premium: false, + url: "https://caelia.nhcarrigan.com", + wip: false, + }, ]; diff --git a/client/tsconfig.json b/client/tsconfig.json index 5985f6c..c7bb0c3 100644 --- a/client/tsconfig.json +++ b/client/tsconfig.json @@ -23,5 +23,6 @@ "strictInjectionParameters": true, "strictInputAccessModifiers": true, "strictTemplates": true - } + }, + "exclude": ["auditProducts.ts"] }