Files
anixart-extension/api/v1/src/release.js
2025-05-12 14:32:10 +05:00

60 lines
2.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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) => `<a href="https://shikimori.one${char.character.url}">${char.character.russian}</a>`)
.join(', ');
characters = mainCharacters || 'N/A';
}
noteExtra = `<b>Оценки из Shikimori:</b> ${score}<br><b>Главные персонажи:</b> ${characters}<br>`;
} catch (err) {
noteExtra = `<b>Оценки из Shikimori:</b> N/A<br><b>Главные персонажи:</b> N/A`;
}
// Объединяем с оригинальным note от Anixart
const originalNote = release.note?.trim();
let finalNote = noteExtra;
if (originalNote) {
finalNote += `<br><b>Примечание от Anixart:</b><br>${originalNote}`;
}
release.note = finalNote;
return { code: 0, release };
} catch {
return { code: 2, release: null };
}
}
module.exports = { getReleaseFromAnixart };