Skip to content

Commit

Permalink
fix: parse episode overwrite
Browse files Browse the repository at this point in the history
  • Loading branch information
yjl9903 committed Jun 2, 2023
1 parent cc3b89e commit caa281b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 20 deletions.
17 changes: 15 additions & 2 deletions packages/core/src/space/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,20 @@ export const AnimePlanSchema = z
date: z.coerce.date().optional(),
rewrite: z
.object({
episode: z.number().optional()
episode: z
.union([
z.coerce.number().transform(n => ({
offset: n,
gte: Number.MIN_SAFE_INTEGER,
lte: Number.MAX_SAFE_INTEGER
})),
z.object({
offset: z.coerce.number(),
gte: z.coerce.number().default(Number.MIN_SAFE_INTEGER),
lte: z.coerce.number().default(Number.MAX_SAFE_INTEGER)
})
])
.optional()
})
.passthrough()
.optional(),
Expand Down Expand Up @@ -143,7 +156,7 @@ export interface AnimePlan {
* Rewrite the inferred things
*/
readonly rewrite?: {
readonly episode?: number | { offset: number; gte?: number; lte?: number };
readonly episode?: { offset: number; gte: number; lte: number };
};
}

Expand Down
20 changes: 2 additions & 18 deletions packages/core/src/system/anime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -199,24 +199,8 @@ export class Anime {
if (episode !== undefined) {
const overwrite = this.plan.rewrite?.episode;
if (overwrite !== undefined) {
const parsed = z
.union([
z.coerce.number().transform(n => ({
offset: n,
gte: Number.MIN_SAFE_INTEGER,
lte: Number.MAX_SAFE_INTEGER
})),
z.object({
offset: z.coerce.number(),
gte: z.coerce.number().default(Number.MIN_SAFE_INTEGER),
lte: z.coerce.number().default(Number.MAX_SAFE_INTEGER)
})
])
.safeParse(overwrite);
if (parsed.success) {
if (parsed.data.gte <= episode && episode <= parsed.data.lte) {
return episode + parsed.data.offset;
}
if (overwrite.gte <= episode && episode <= overwrite.lte) {
return episode + overwrite.offset;
}
}
return episode;
Expand Down

0 comments on commit caa281b

Please sign in to comment.