diff --git a/packages/excavator-projects/projects/miniKiwi.ts b/packages/excavator-projects/projects/miniKiwi.ts index b86fa56..623897e 100644 --- a/packages/excavator-projects/projects/miniKiwi.ts +++ b/packages/excavator-projects/projects/miniKiwi.ts @@ -58,4 +58,5 @@ export const MINI_KIWI: ExcavatorProject = { COMBAT_ROUND: spadeKiwi, }, since: 27973, // mini kiwi familiar equipment added + completed: true, }; diff --git a/packages/excavator-projects/type.ts b/packages/excavator-projects/type.ts index ed58c0b..93a0ae7 100644 --- a/packages/excavator-projects/type.ts +++ b/packages/excavator-projects/type.ts @@ -19,4 +19,5 @@ export type ExcavatorProject = { author: string; hooks: Partial; since?: number; + completed?: boolean; }; diff --git a/packages/excavator-script/src/excavator.ts b/packages/excavator-script/src/excavator.ts index 2df1926..c70957f 100644 --- a/packages/excavator-script/src/excavator.ts +++ b/packages/excavator-script/src/excavator.ts @@ -14,7 +14,10 @@ type Event = keyof ExcavatorProject["hooks"]; function main(event: Event, meta: string, page: string) { projects - .filter(({ hooks, since = 0 }) => event in hooks && since <= getRevision()) + .filter( + ({ hooks, since = 0, completed }) => + !completed && event in hooks && since <= getRevision(), + ) .map(({ name, hooks }) => [name, hooks[event]!(meta, page)] as const) .filter(tupleNotNull) .forEach(([name, data]) => { diff --git a/packages/excavator-web/app/routes/projects.$project.tsx b/packages/excavator-web/app/routes/projects.$project.tsx index ba398cb..631de8e 100644 --- a/packages/excavator-web/app/routes/projects.$project.tsx +++ b/packages/excavator-web/app/routes/projects.$project.tsx @@ -52,6 +52,11 @@ export default function Project() { return ( + {project.completed && ( + + This project is completed. It is no longer accepting data. + + )} {data.length === 0 ? ( No data for this project yet - you better get excavating! ) : ( diff --git a/packages/excavator-web/etl.ts b/packages/excavator-web/etl.ts index 576739b..29aaff7 100644 --- a/packages/excavator-web/etl.ts +++ b/packages/excavator-web/etl.ts @@ -1,5 +1,6 @@ import { PrismaClient } from "@prisma/client"; import "dotenv/config"; +import { projects } from "excavator-projects"; import makeFetchCookie from "fetch-cookie"; import crypto from "node:crypto"; @@ -113,6 +114,10 @@ function applyFixes(data: SpadingData) { if (data._PROJECT === "Fresh Coat Of Paint") data._PROJECT = "Fresh Coat of Paint"; + // 24-06-20: Some projects are "completed" + const project = projects.find(({ name }) => name === data._PROJECT); + if (project?.completed) return null; + // 2024-04-02: Accidentally zero-indexed this item count if (data._PROJECT === "Continental Juice Bar" && "item0" in data) { data["item3"] = data["item2"];