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, // id: 0, workers: "источник: seele.su", // name: "Недоступно (⁠≧⁠▽⁠≦⁠)", // icon: null, // view_count: null, // pinned: false, // episodes_count: null, })); // Если список `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 };