From fe1d1f66ba22944c1a1c72f1c633bb439deba16f Mon Sep 17 00:00:00 2001 From: horrible little slime <69secret69email69@gmail.com> Date: Thu, 20 Jun 2024 12:34:11 -0400 Subject: [PATCH 1/5] create mechanism for "completing" projects --- packages/excavator-projects/type.ts | 1 + packages/excavator-script/src/excavator.ts | 5 ++++- packages/excavator-web/app/routes/projects.$project.tsx | 1 + packages/excavator-web/etl.ts | 4 ++++ 4 files changed, 10 insertions(+), 1 deletion(-) 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..803ae2c 100644 --- a/packages/excavator-web/app/routes/projects.$project.tsx +++ b/packages/excavator-web/app/routes/projects.$project.tsx @@ -52,6 +52,7 @@ 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..561d984 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"; @@ -163,6 +164,9 @@ async function main() { const { _PROJECT, _VERSION, ...data } = fixed; + if (projects.find((project) => project.name === _PROJECT)?.completed) + continue; + const id = Number(kmail.id); await prisma.spadingData.upsert({ From 2c2e62a0005ec7e046b71c3071a78d2b24e7febd Mon Sep 17 00:00:00 2001 From: horrible little slime <69secret69email69@gmail.com> Date: Thu, 20 Jun 2024 12:37:43 -0400 Subject: [PATCH 2/5] "complete" the mini-kiwi project --- packages/excavator-projects/projects/miniKiwi.ts | 1 + 1 file changed, 1 insertion(+) 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, }; From db758d2a945d1b420098532fd140fe56e0543a0c Mon Sep 17 00:00:00 2001 From: horrible little slime <69secret69email69@gmail.com> Date: Thu, 20 Jun 2024 12:40:52 -0400 Subject: [PATCH 3/5] format --- packages/excavator-web/app/routes/projects.$project.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/excavator-web/app/routes/projects.$project.tsx b/packages/excavator-web/app/routes/projects.$project.tsx index 803ae2c..631de8e 100644 --- a/packages/excavator-web/app/routes/projects.$project.tsx +++ b/packages/excavator-web/app/routes/projects.$project.tsx @@ -52,7 +52,11 @@ export default function Project() { return ( - {project.completed && This project is completed. It is no longer accepting data.} + {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! ) : ( From 27883d49d1cd6f140dd7d567da2b158392a72529 Mon Sep 17 00:00:00 2001 From: horrible little slime <69secret69email69@gmail.com> Date: Thu, 20 Jun 2024 12:43:22 -0400 Subject: [PATCH 4/5] move logic to `applyFixes` --- packages/excavator-web/etl.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/excavator-web/etl.ts b/packages/excavator-web/etl.ts index 561d984..4cc7163 100644 --- a/packages/excavator-web/etl.ts +++ b/packages/excavator-web/etl.ts @@ -137,6 +137,9 @@ function applyFixes(data: SpadingData) { data["source"] = "Unknown"; } + const project = projects.find(({ name }) => name === data._PROJECT); + if (project?.completed) return null; + return data; } @@ -164,9 +167,6 @@ async function main() { const { _PROJECT, _VERSION, ...data } = fixed; - if (projects.find((project) => project.name === _PROJECT)?.completed) - continue; - const id = Number(kmail.id); await prisma.spadingData.upsert({ From e1a00e6ed3115ceb3fb361bb8e319beddddd4949 Mon Sep 17 00:00:00 2001 From: horrible little slime <69secret69email69@gmail.com> Date: Thu, 20 Jun 2024 13:13:40 -0400 Subject: [PATCH 5/5] move project completion check --- packages/excavator-web/etl.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/excavator-web/etl.ts b/packages/excavator-web/etl.ts index 4cc7163..29aaff7 100644 --- a/packages/excavator-web/etl.ts +++ b/packages/excavator-web/etl.ts @@ -114,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"]; @@ -137,9 +141,6 @@ function applyFixes(data: SpadingData) { data["source"] = "Unknown"; } - const project = projects.find(({ name }) => name === data._PROJECT); - if (project?.completed) return null; - return data; }