diff --git a/api/v1/src/release.js b/api/v1/src/release.js
index fc64256..b39ead6 100644
--- a/api/v1/src/release.js
+++ b/api/v1/src/release.js
@@ -1,55 +1,57 @@
const axios = require('axios');
-const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
-
-// Получить данные из Shikimori
-async function getShikimoriData(title) {
- const searchUrl = `https://shikimori.one/api/animes?search=${encodeURIComponent(title)}&limit=1`;
- const headers = {
- 'User-Agent': USER_AGENT,
- 'Accept': 'application/json'
- };
-
- try {
- const searchResponse = await axios.get(searchUrl, { headers });
- const anime = searchResponse.data[0];
- if (!anime) return `Оценки из Shikimori: N/A
Главные персонажи: N/A
`;
-
- const rolesUrl = `https://shikimori.one/api/animes/${anime.id}/roles`;
- const rolesResponse = await axios.get(rolesUrl, { headers });
-
- const characters = rolesResponse.data
- .filter(c => c.roles.includes('Main'))
- .slice(0, 3)
- .map(c =>
- `${c.character.russian || c.character.name}`
- ).join(', ') || 'N/A';
-
- return `Оценки из Shikimori: ${anime.score || 'N/A'}★
Главные персонажи: ${characters}
`;
- } catch (e) {
- console.error('Shikimori API error:', e.message);
- return `Оценки из Shikimori: N/A
Главные персонажи: N/A
`;
- }
-}
-
-// Получить релиз с Anixart и дополнить note
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;
+ const release = response.data?.release;
- if (!release) return { code: 1, release: null };
+ if (!release) {
+ return { code: 2, release: null };
+ }
const title = release.title_original || release.title_ru || '';
- const shikiNote = await getShikimoriData(title);
- const anixNote = release.note ? `Примечание от Anixart:
${release.note}
` : '';
+ 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;
- release.note = `${anixNote}${shikiNote}`;
return { code: 0, release };
- } catch (e) {
- console.error('Anixart API error:', e.message);
+ } catch {
return { code: 2, release: null };
}
}