Files
anixart-extension/api/v1/src/episode.js
2025-05-03 17:54:58 +05:00

88 lines
3.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');
// Функция для запроса к Anixart API
async function getEpisodeFromAnixart(releaseId, token = '') {
const url = `https://api.anixart.tv/episode/${releaseId}${token ? `?token=${token}` : ''}`;
try {
const response = await axios.get(url);
const data = response.data;
// Изменение структуры поля `workers`
data.types = data.types.map((type) => ({
...type,
workers: "источник: seele.su",
}));
// Если список `types` пуст, обращаемся к Seele API
if (data.code === 1 || data.types.length === 0) {
return await getEpisodeFromSeele(releaseId, token);
}
return data;
} catch (error) {
console.error("Ошибка при запросе к Anixart API:", error.message);
throw new Error("Ошибка при получении данных из Anixart API");
}
}
// Функция для запроса к Seele API
async function getEpisodeFromSeele(releaseId, token = '') {
const url = `https://cloud.seele.su/episode/${releaseId}.json${token ? `?token=${token}` : ''}`;
try {
const response = await axios.get(url);
const data = response.data;
// Проверяем наличие `types`, если пусто - возвращаем кастомный ответ
if (!data.types || data.types.length === 0) {
return getCustomNotFoundResponse();
}
// Изменение структуры поля `workers`
data.types = data.types.map((type) => ({
...type,
workers: "источник: seele.su",
}));
return data;
} catch (error) {
// Если ошибка - 404, возвращаем кастомный ответ
if (error.response && error.response.status === 404) {
return getCustomNotFoundResponse();
}
console.error("Ошибка при запросе к Seele API:", error.message);
throw new Error("Ошибка при получении данных из Seele API");
}
}
// Функция для создания кастомного JSON-ответа
function getCustomNotFoundResponse() {
return {
"code": 0,
"types": [
{
"@id": 1,
"id": 1,
"name": "К сожалению, это аниме недоступно!",
"icon": "https://cloud.seele.su/images/seele.jpg",
"workers": "Это аниме полностью удалено с сервера anixart, либо его там не было изначально.",
"is_sub": false,
"episodes_count": 0,
"view_count": 0,
"pinned": false
},
{
"@id": 2,
"id": 2,
"name": "Не забудьте подписаться на наш Telegram-канал 😊",
"icon": "https://cloud.seele.su/images/seele.jpg",
"workers": "Тгк: @seele_channel",
"is_sub": false,
"episodes_count": 0,
"view_count": 0,
"pinned": false
}
]
};
}
module.exports = { getEpisodeFromAnixart };