Update release.js

This commit is contained in:
2025-05-12 13:23:12 +05:00
committed by GitHub
parent fb98e67a89
commit 57fefe2e34

View File

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