From 92a7a0d8a7221b2abf77a71bc07fc20a4847d917 Mon Sep 17 00:00:00 2001 From: mtvpls Date: Fri, 17 Apr 2026 21:07:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3UNKNOWN=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/suwayomi.client.ts | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/lib/suwayomi.client.ts b/src/lib/suwayomi.client.ts index bfe5733..1f50fe4 100644 --- a/src/lib/suwayomi.client.ts +++ b/src/lib/suwayomi.client.ts @@ -75,6 +75,31 @@ export function buildSuwayomiImageProxyUrl(pathOrUrl: string): string { return `/api/manga/image?path=${encodeURIComponent(pathOrUrl)}`; } +function normalizeMangaStatus(status?: string): string | undefined { + if (!status) return undefined; + + const normalized = status.trim().toUpperCase(); + switch (normalized) { + case 'ONGOING': + return '连载中'; + case 'COMPLETED': + return '已完结'; + case 'LICENSED': + return '已授权'; + case 'PUBLISHING_FINISHED': + return '已完结'; + case 'CANCELLED': + return '已取消'; + case 'ON_HIATUS': + return '休刊中'; + case 'UNKNOWN': + case 'UNRECOGNIZED': + return undefined; + default: + return status; + } +} + export class SuwayomiClient { private options: SuwayomiClientOptions; @@ -210,7 +235,7 @@ export class SuwayomiClient { author: manga.author, artist: manga.artist, genre: manga.genre, - status: manga.status, + status: normalizeMangaStatus(manga.status), }); } } @@ -292,7 +317,7 @@ export class SuwayomiClient { author: manga.author, artist: manga.artist, genre: manga.genre, - status: manga.status, + status: normalizeMangaStatus(manga.status), })), }; } @@ -410,7 +435,7 @@ export class SuwayomiClient { author: detailData.manga.author || metadata.author, artist: detailData.manga.artist, genre: detailData.manga.genre, - status: detailData.manga.status || metadata.status, + status: normalizeMangaStatus(detailData.manga.status) || normalizeMangaStatus(metadata.status), }; } } catch { @@ -427,7 +452,7 @@ export class SuwayomiClient { author: metadata.author, artist: metadata.artist, genre: metadata.genre, - status: metadata.status, + status: normalizeMangaStatus(metadata.status), chapters, }; }