feat: store unreleased titles where first episode time is unknown

This commit is contained in:
2024-09-21 13:45:37 -04:00
parent c1bf12de4f
commit 755ae4b94f
7 changed files with 76 additions and 11 deletions

View File

@@ -2,6 +2,10 @@ import { Client } from "@upstash/qstash";
import type { HonoRequest } from "hono";
import { setTitleMessage } from "~/models/titleMessages";
import {
addUnreleasedTitle,
removeUnreleasedTitle,
} from "~/models/unreleasedTitles";
import type { Env } from "~/types/env";
import { getNextEpisodeTimeUntilAiring } from "./anilist/getNextEpisodeAiringAt";
@@ -13,9 +17,14 @@ export async function maybeScheduleNextAiringEpisode(
req: HonoRequest,
aniListId: number,
) {
const nextAiring = await getNextEpisodeTimeUntilAiring(aniListId);
const { nextAiring, status } = await getNextEpisodeTimeUntilAiring(aniListId);
if (!nextAiring) {
await deleteMessageIdForTitle(env, aniListId);
if (status === "NOT_YET_RELEASED") {
await addUnreleasedTitle(env, aniListId);
} else {
await deleteMessageIdForTitle(env, aniListId);
}
return;
}
@@ -30,5 +39,8 @@ export async function maybeScheduleNextAiringEpisode(
delay: timeUntilAiring,
contentBasedDeduplication: true,
});
await setTitleMessage(env, aniListId, messageId);
await Promise.allSettled([
setTitleMessage(env, aniListId, messageId),
removeUnreleasedTitle(env, aniListId),
]);
}