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