From 57fefe2e3496914d24c63ee89259da724718ad55 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 13:23:12 +0500 Subject: [PATCH] Update release.js --- api/v1/src/release.js | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/api/v1/src/release.js b/api/v1/src/release.js index b853fcb..dac74ae 100644 --- a/api/v1/src/release.js +++ b/api/v1/src/release.js @@ -29,21 +29,21 @@ scheduleFetchNotes(); // Функция для поиска аниме в Shikimori по названию async function searchShikimoriAnime(titleRu, titleEn) { try { - const searchQuery = titleRu || titleEn; // Используем русское название, если есть, иначе английское + const searchQuery = titleRu || titleEn; if (!searchQuery) return null; const response = await axios.get('https://shikimori.one/api/animes', { params: { search: searchQuery, - limit: 1, // Берем только первое совпадение + limit: 1, + }, + headers: { + 'User-Agent': 'YourAppName', // Замени на имя твоего приложения }, timeout: 5000, }); - const anime = response.data[0]; - if (!anime) return null; - - return anime; + return response.data[0] || null; } catch (error) { console.error('Ошибка при поиске аниме в Shikimori:', error.message); return null; @@ -53,12 +53,17 @@ async function searchShikimoriAnime(titleRu, titleEn) { // Функция для получения данных о персонажах с Shikimori async function fetchShikimoriCharacters(animeId) { try { - const response = await axios.get(`https://shikimori.one/api/animes/${animeId}/roles`, { timeout: 5000 }); + const response = await axios.get(`https://shikimori.one/api/animes/${animeId}/roles`, { + headers: { + 'User-Agent': 'YourAppName', // Замени на имя твоего приложения + }, + timeout: 5000, + }); const characters = response.data - .filter(role => role.roles.includes('Main')) // Берем только главных персонажей + .filter(role => role.roles.includes('Main')) .map(role => role.character) .filter(char => char && char.name && char.url); - return characters.slice(0, 3); // Ограничиваем до 3 персонажей + return characters.slice(0, 3); } catch (error) { console.error('Ошибка при запросе персонажей из Shikimori:', error.message); return []; @@ -77,11 +82,13 @@ async function getReleaseFromAnixart(releaseId, token = '') { releaseData.release = {}; } + console.log('releaseData:', releaseData); // Отладка структуры данных + // Находим оригинальный note от Anixart const noteEntry = cachedNotes.find(entry => entry.id === Number(releaseId)); const originalNote = noteEntry ? noteEntry.note : ''; - // Извлекаем названия релиза (предполагаем, что API Anixart возвращает их в releaseData) + // Извлекаем названия релиза const titleRu = releaseData.release.name_ru || ''; const titleEn = releaseData.release.name_en || ''; @@ -96,15 +103,10 @@ async function getReleaseFromAnixart(releaseId, token = '') { } // Формируем новый note - let newNote = ''; - - // Добавляем оригинальный note от Anixart, только если он есть - if (originalNote) { - newNote += `Примечание от Anixart:
${originalNote}
`; - } + let newNote = originalNote ? `Примечание от Anixart:
${originalNote}
` : ''; // Добавляем оценку Shikimori - if (shikimoriScore !== 'N/A') { + if (shikimoriAnime && shikimoriScore !== 'N/A') { newNote += `${newNote ? '
' : ''}Оценка Shikimori: ${shikimoriScore}
`; } @@ -116,10 +118,8 @@ async function getReleaseFromAnixart(releaseId, token = '') { }); } - // Применяем новый note, только если есть что добавить - if (newNote) { - releaseData.release.note = newNote; - } + // Применяем note, если есть данные + releaseData.release.note = newNote || releaseData.release.note || ''; return releaseData; } catch (error) {