From da7c843e7263ad24ebfc2f4699d1c454e58382dd Mon Sep 17 00:00:00 2001 From: Rushil Perera Date: Tue, 29 Oct 2024 07:47:46 -0400 Subject: [PATCH] fix: task for anilist-updates not encoding body in base 64 --- src/controllers/watch-status/index.ts | 1 + src/libs/tasks/id.ts | 8 ++++++-- src/libs/tasks/queueTask.ts | 10 +++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/controllers/watch-status/index.ts b/src/controllers/watch-status/index.ts index 87a6cab..c3a74d3 100644 --- a/src/controllers/watch-status/index.ts +++ b/src/controllers/watch-status/index.ts @@ -132,6 +132,7 @@ app.openapi(route, async (c) => { watchStatus, titleId, isRetrying: true, + nameSuffix: "watch-status", }, { req: c.req, scheduleConfig: { delay: { minute: 1 } } }, ); diff --git a/src/libs/tasks/id.ts b/src/libs/tasks/id.ts index 8810fb5..fa58a8c 100644 --- a/src/libs/tasks/id.ts +++ b/src/libs/tasks/id.ts @@ -2,6 +2,10 @@ export function buildNewEpisodeTaskId(aniListId: number) { return `${aniListId}`; } -export function buildAnilistRetryTaskId(deviceId: string, titleId: number) { - return `${deviceId}-${titleId}`; +export function buildAnilistRetryTaskId( + deviceId: string, + titleId: number, + nameSuffix: string, +) { + return `${deviceId}-${titleId}-${nameSuffix}`; } diff --git a/src/libs/tasks/queueTask.ts b/src/libs/tasks/queueTask.ts index 0efdd5e..5d0ad2a 100644 --- a/src/libs/tasks/queueTask.ts +++ b/src/libs/tasks/queueTask.ts @@ -18,6 +18,7 @@ type QueueBody = { watchStatus: WatchStatus | null; titleId: number; isRetrying: true; + nameSuffix: string; }; "new-episode": { aniListId: number; episodeNumber: number }; }; @@ -178,8 +179,9 @@ function buildTask( }, }; case "anilist-updates": - const { deviceId, titleId } = body as QueueBody[typeof queueName]; - taskId = buildAnilistRetryTaskId(deviceId, titleId); + const { deviceId, titleId, nameSuffix } = + body as QueueBody[typeof queueName]; + taskId = buildAnilistRetryTaskId(deviceId, titleId, nameSuffix); return { name: `projects/${projectId}/locations/northamerica-northeast1/queues/${queueName}/tasks/${taskId}`, @@ -187,7 +189,9 @@ function buildTask( httpRequest: { url: `${domain}/watch-status`, httpMethod: "POST", - body: JSON.stringify(body), + body: Buffer.from( + JSON.stringify({ ...body, nameSuffix: undefined }), + ).toString("base64"), headers: { "Content-Type": "application/json", "X-Anilist-Token": headers?.["X-Anilist-Token"],