From 9f956d8cd603106ef3bc01829c315a1df01d0fc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=BC=E3=83=BC=E3=83=AC?= Date: Mon, 12 May 2025 16:42:58 +0500 Subject: [PATCH] Update release.ts --- api/v1/src/release.ts | 54 ++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/api/v1/src/release.ts b/api/v1/src/release.ts index 2aab64a..694b00c 100644 --- a/api/v1/src/release.ts +++ b/api/v1/src/release.ts @@ -5,9 +5,10 @@ const baseHeaders = { "Accept": "application/json", }; +// Функция для получения данных из Shikimori async function getShikimoriData(search, year) { if (!search) { - return { score: "N/A", characters: [] }; + return { myAnimeListScore: "N/A", shikimoriScore: "N/A", characters: [] }; } const animeUrl = `https://shikimori.one/api/animes?search=${encodeURIComponent(search)}&limit=1${year ? `&year=${year}` : ""}`; @@ -18,7 +19,7 @@ async function getShikimoriData(search, year) { const anime = animeData?.[0]; if (!anime || !anime.id) { - return { score: "N/A", characters: [] }; + return { myAnimeListScore: "N/A", shikimoriScore: "N/A", characters: [] }; } const rolesUrl = `https://shikimori.one/api/animes/${anime.id}/roles`; @@ -34,11 +35,37 @@ async function getShikimoriData(search, year) { })); return { - score: anime.score || "N/A", + myAnimeListScore: anime.score || "N/A", // Оценка с MyAnimeList (основная) + shikimoriScore: anime.rating || "N/A", // Оценка с Shikimori (вторая) characters: mainCharacters, }; } catch { - return { score: "N/A", characters: [] }; + return { myAnimeListScore: "N/A", shikimoriScore: "N/A", characters: [] }; + } +} + +// Функция для получения данных из MyAnimeList +async function getMyAnimeListData(search) { + if (!search) { + return { score: "N/A" }; + } + + const malUrl = `https://api.jikan.moe/v4/anime?q=${encodeURIComponent(search)}&limit=1`; + + try { + const malRes = await fetch(malUrl); + const malData = await malRes.json(); + const malAnime = malData?.data?.[0]; + + if (!malAnime) { + return { score: "N/A" }; + } + + return { + score: malAnime.rating || "N/A", // Оценка с MyAnimeList + }; + } catch { + return { score: "N/A" }; } } @@ -58,17 +85,16 @@ async function getReleaseFromAnixart(releaseId, token = "") { const year = release.year || ""; let noteExtra = ""; - try { - const shikiData = await getShikimoriData(title, year); - const score = shikiData.score || "N/A"; - const characters = shikiData.characters.length - ? shikiData.characters.map((c) => `${c.name}`).join(", ") - : "N/A"; + // Получаем данные из Shikimori + let shikiData = await getShikimoriData(title, year); + let shikiScore = shikiData.shikimoriScore || "N/A"; + let myAnimeListScore = shikiData.myAnimeListScore || "N/A"; + let characters = shikiData.characters.length + ? shikiData.characters.map((c) => `${c.name}`).join(", ") + : "N/A"; - noteExtra = `Оценки из Shikimori: ${score}★
Главные персонажи: ${characters}
`; - } catch { - noteExtra = `Оценки из Shikimori: N/A
Главные персонажи: N/A
`; - } + // Формируем дополнительную информацию + noteExtra = `Оценки из MyAnimeList: ${myAnimeListScore}★
Оценки из Shikimori: ${shikiScore}★
Главные персонажи из Shikimori: ${characters}
`; const originalNote = release.note?.trim(); let finalNote = noteExtra;