From 359579fd55d98d5efe4dea826eeef7b71ef2c54e Mon Sep 17 00:00:00 2001 From: XLor Date: Mon, 29 Jan 2024 21:11:26 +0800 Subject: [PATCH] feat!: migrate to latest animegarden --- packages/animegarden/src/format.ts | 30 ++++++++----------- packages/animegarden/src/index.ts | 1 + packages/animegarden/src/resources/cache.ts | 5 +--- packages/bangumi/src/generate.ts | 2 +- .../cli/test/__snapshots__/space.test.ts.snap | 24 +++------------ packages/core/src/anime/anime.ts | 6 ++-- packages/core/src/plan/plan.ts | 12 ++++---- packages/core/src/plan/types.ts | 2 +- .../test/__snapshots__/space.test.ts.snap | 24 +++------------ .../core/test/fixtures/space/plans/2023.yaml | 4 +-- 10 files changed, 33 insertions(+), 77 deletions(-) diff --git a/packages/animegarden/src/format.ts b/packages/animegarden/src/format.ts index 5589e0ff8..93a0575e0 100644 --- a/packages/animegarden/src/format.ts +++ b/packages/animegarden/src/format.ts @@ -16,27 +16,21 @@ export function formatAnimeGardenSearchURL(anime: Anime) { } export function printKeywords(anime: Anime, logger: ConsolaInstance) { - if (anime.plan.keywords.include.length === 1) { - const first = anime.plan.keywords.include[0]; - const sum = first.reduce((acc, t) => acc + width(t), 0); - if (sum > 50) { - logger.log(dim('Include keywords | ') + underline(overflowText(first[0], 50))); - for (const t of first.slice(1)) { - logger.log(` ${dim('|')} ${underline(overflowText(t, 50))}`); - } - } else { - logger.log( - `${dim('Include keywords')} ${first - .map((t) => underline(overflowText(t, 50))) - .join(dim(' | '))}` - ); + const include = anime.plan.keywords.include; + const sum = include.reduce((acc, t) => acc + width(t), 0); + if (sum > 50) { + logger.log(dim('Include keywords | ') + underline(overflowText(include[0], 50))); + for (const t of include.slice(1)) { + logger.log(` ${dim('|')} ${underline(overflowText(t, 50))}`); } } else { - logger.log(dim(`Include keywords:`)); - for (const include of anime.plan.keywords.include) { - logger.log(` ${DOT} ${include.map((t) => underline(overflowText(t, 50))).join(' | ')}`); - } + logger.log( + `${dim('Include keywords')} ${include + .map((t) => underline(overflowText(t, 50))) + .join(dim(' | '))}` + ); } + if (anime.plan.keywords.exclude.length > 0) { logger.log( `${dim(`Exclude keywords`)} [ ${anime.plan.keywords.exclude diff --git a/packages/animegarden/src/index.ts b/packages/animegarden/src/index.ts index 71f9e3f09..ca9548a7b 100644 --- a/packages/animegarden/src/index.ts +++ b/packages/animegarden/src/index.ts @@ -75,6 +75,7 @@ export function AnimeGarden(options: AnimeGardenOptions): Plugin { const resource = await fetchResourceDetail( ufetch, + 'dmhy', video.source.magnet.split('/').at(-1)! ); diff --git a/packages/animegarden/src/resources/cache.ts b/packages/animegarden/src/resources/cache.ts index df06ddf0d..4ac4afbc9 100644 --- a/packages/animegarden/src/resources/cache.ts +++ b/packages/animegarden/src/resources/cache.ts @@ -162,14 +162,11 @@ export class ResourcesCache { return false; } - const stringifyArray = (include: string[][]) => { - return include.map((inc) => `[${inc.map(normalizeTitle).join(',')}]`).join(','); - }; const stringify = (keys?: string[]) => (keys ?? []).join(','); if ( !cache.filter.include || - stringifyArray(cache.filter.include) !== stringifyArray(anime.plan.keywords.include) + stringify(cache.filter.include) !== stringify(anime.plan.keywords.include) ) { return false; } diff --git a/packages/bangumi/src/generate.ts b/packages/bangumi/src/generate.ts index af287b5cf..33afcea3a 100644 --- a/packages/bangumi/src/generate.ts +++ b/packages/bangumi/src/generate.ts @@ -164,7 +164,7 @@ export async function getCollections(username: string) { async function getFansub(titles: string[]) { const { resources } = await fetchResources(ufetch, { - include: [titles], + include: titles, count: -1, retry: 5 }); diff --git a/packages/cli/test/__snapshots__/space.test.ts.snap b/packages/cli/test/__snapshots__/space.test.ts.snap index d8902030d..6eb1e239a 100644 --- a/packages/cli/test/__snapshots__/space.test.ts.snap +++ b/packages/cli/test/__snapshots__/space.test.ts.snap @@ -17,9 +17,7 @@ exports[`system > should load 1`] = ` "keywords": { "exclude": [], "include": [ - [ - "熊熊勇闯异世界 Punch!", - ], + "熊熊勇闯异世界 Punch!", ], }, "preference": { @@ -73,10 +71,8 @@ exports[`system > should load 1`] = ` "keywords": { "exclude": [], "include": [ - [ - "天国大魔境", - "Tengoku Daimakyou", - ], + "天国大魔境", + "Tengoku Daimakyou", ], }, "preference": { @@ -136,19 +132,7 @@ exports[`system > should load 1`] = ` "闪耀色彩", ], "include": [ - [ - "偶像大师 灰姑娘女孩 U149", - ], - [ - "偶像大师", - "iDOLM@STER", - ], - [ - "灰姑娘女孩", - ], - [ - "U149", - ], + "偶像大师 灰姑娘女孩 U149", ], }, "preference": { diff --git a/packages/core/src/anime/anime.ts b/packages/core/src/anime/anime.ts index 9d3158e1b..bbfb89083 100644 --- a/packages/core/src/anime/anime.ts +++ b/packages/core/src/anime/anime.ts @@ -92,9 +92,9 @@ export class Anime { return false; } } - for (const list of this.plan.keywords.include) { - if (list.every((keyword) => !text.includes(keyword))) { - return false; + for (const key of this.plan.keywords.include) { + if (text.includes(key)) { + return true; } } return true; diff --git a/packages/core/src/plan/plan.ts b/packages/core/src/plan/plan.ts index 03acb69c1..5d04a44b2 100644 --- a/packages/core/src/plan/plan.ts +++ b/packages/core/src/plan/plan.ts @@ -106,26 +106,24 @@ function resolveKeywordsArray( if (keywords !== undefined && keywords !== null) { if (typeof keywords === 'string') { if (!keywords.startsWith('!')) { - return { include: [titles, [keywords]], exclude: [] }; + return { include: [...titles, keywords], exclude: [] }; } else { - return { include: [titles], exclude: [keywords.slice(1)] }; + return { include: titles, exclude: [keywords.slice(1)] }; } } else if (Array.isArray(keywords)) { - const include: string[][] = [titles]; + const include: string[] = []; const exclude: string[] = []; for (const keyword of keywords) { if (typeof keyword === 'string') { if (!keyword.startsWith('!')) { - include.push([keyword]); + include.push(keyword); } else { exclude.push(keyword.slice(1)); } - } else if (Array.isArray(keyword)) { - include.push(keyword); } } return { include, exclude }; } } - return { include: [titles], exclude: [] }; + return { include: titles, exclude: [] }; } diff --git a/packages/core/src/plan/types.ts b/packages/core/src/plan/types.ts index 949cc14fc..26c2daf25 100644 --- a/packages/core/src/plan/types.ts +++ b/packages/core/src/plan/types.ts @@ -82,7 +82,7 @@ export interface AnimePlan { } export interface KeywordsParams { - readonly include: string[][]; + readonly include: string[]; readonly exclude: string[]; } diff --git a/packages/core/test/__snapshots__/space.test.ts.snap b/packages/core/test/__snapshots__/space.test.ts.snap index a791eaff6..df638dae9 100644 --- a/packages/core/test/__snapshots__/space.test.ts.snap +++ b/packages/core/test/__snapshots__/space.test.ts.snap @@ -111,9 +111,7 @@ exports[`Load Space > should work 2`] = ` "keywords": { "exclude": [], "include": [ - [ - "熊熊勇闯异世界 Punch!", - ], + "熊熊勇闯异世界 Punch!", ], }, "preference": { @@ -167,10 +165,8 @@ exports[`Load Space > should work 2`] = ` "keywords": { "exclude": [], "include": [ - [ - "天国大魔境", - "Tengoku Daimakyou", - ], + "天国大魔境", + "Tengoku Daimakyou", ], }, "preference": { @@ -230,19 +226,7 @@ exports[`Load Space > should work 2`] = ` "闪耀色彩", ], "include": [ - [ - "偶像大师 灰姑娘女孩 U149", - ], - [ - "偶像大师", - "iDOLM@STER", - ], - [ - "灰姑娘女孩", - ], - [ - "U149", - ], + "偶像大师 灰姑娘女孩 U149", ], }, "preference": { diff --git a/packages/core/test/fixtures/space/plans/2023.yaml b/packages/core/test/fixtures/space/plans/2023.yaml index 31bc9c24a..539f6942f 100644 --- a/packages/core/test/fixtures/space/plans/2023.yaml +++ b/packages/core/test/fixtures/space/plans/2023.yaml @@ -21,7 +21,5 @@ onair: bgm: 376703 fansub: 喵萌奶茶屋 keywords: - - [偶像大师, iDOLM@STER] - - 灰姑娘女孩 - - U149 + - 偶像大师 灰姑娘女孩 U149 - '!闪耀色彩'