const axios = require('axios');
async function getReleaseFromAnixart(releaseId, token = '') {
const url = `https://api.anixart.tv/release/${releaseId}${token ? `?token=${token}` : ''}`;
try {
const response = await axios.get(url);
const release = response.data?.release;
if (!release) {
return { code: 2, release: null };
}
const title = release.title_original || release.title_ru || '';
const year = release.year || '';
let noteExtra = '';
// Получаем данные с Deno-прокси
try {
const proxyUrl = `https://shikimori-proxy.deno.dev/shiki?search=${encodeURIComponent(title)}&year=${year}`;
const shikiRes = await axios.get(proxyUrl);
const anime = shikiRes.data?.[0];
let score = anime?.score || 'N/A';
let characters = 'N/A';
// Получение ролей персонажей
if (anime?.id) {
const rolesUrl = `https://shikimori.one/api/animes/${anime.id}/roles`;
const rolesRes = await axios.get(rolesUrl);
const mainCharacters = rolesRes.data
.filter((char) => char.roles.includes('Main'))
.slice(0, 5)
.map((char) => `${char.character.russian}`)
.join(', ');
characters = mainCharacters || 'N/A';
}
noteExtra = `Оценки из Shikimori: ${score}
Главные персонажи: ${characters}
`;
} catch (err) {
noteExtra = `Оценки из Shikimori: N/A
Главные персонажи: N/A`;
}
// Объединяем с оригинальным note от Anixart
const originalNote = release.note?.trim();
let finalNote = noteExtra;
if (originalNote) {
finalNote += `
Примечание от Anixart:
${originalNote}`;
}
release.note = finalNote;
return { code: 0, release };
} catch {
return { code: 2, release: null };
}
}
module.exports = { getReleaseFromAnixart };