diff --git a/api/v1/src/release.js b/api/v1/src/release.js index 73c0828..4542aeb 100644 --- a/api/v1/src/release.js +++ b/api/v1/src/release.js @@ -26,14 +26,17 @@ async function scheduleFetchNotes() { scheduleFetchNotes(); // Функция для поиска аниме в Shikimori по названию -async function searchShikimoriAnime(title) { +async function searchShikimoriAnime(titleOriginal, titleRu, year) { try { - if (!title) return null; + // Пробуем искать по title_original + let searchQuery = titleOriginal || titleRu; + if (!searchQuery) return null; const response = await axios.get('https://shikimori.one/api/animes', { params: { - search: encodeURIComponent(title), + search: encodeURIComponent(searchQuery), limit: 1, + year: year || undefined, // Добавляем фильтр по году, если он есть }, headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', @@ -41,7 +44,25 @@ async function searchShikimoriAnime(title) { timeout: 5000, }); - return response.data[0] || null; + let anime = response.data[0] || null; + + // Если не нашли по title_original, пробуем title_ru + if (!anime && titleRu && titleRu !== titleOriginal) { + const responseRu = await axios.get('https://shikimori.one/api/animes', { + params: { + search: encodeURIComponent(titleRu), + limit: 1, + year: year || undefined, + }, + headers: { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', + }, + timeout: 5000, + }); + anime = responseRu.data[0] || null; + } + + return anime; } catch (error) { return null; } @@ -82,11 +103,13 @@ async function getReleaseFromAnixart(releaseId, token = '') { const noteEntry = cachedNotes.find(entry => entry.id === Number(releaseId)); const originalNote = noteEntry ? noteEntry.note : ''; - // Извлекаем название релиза (используем title_original, как в старом коде) - const title = releaseData.release.title_original || ''; + // Извлекаем данные для поиска + const titleOriginal = releaseData.release.title_original || ''; + const titleRu = releaseData.release.title_ru || ''; + const year = releaseData.release.year || ''; - // Ищем аниме в Shikimori по названию - const shikimoriAnime = await searchShikimoriAnime(title); + // Ищем аниме в Shikimori + const shikimoriAnime = await searchShikimoriAnime(titleOriginal, titleRu, year); let shikimoriScore = 'N/A'; let characters = [];