diff --git a/api/v1/src/old/episode-old-v1.js b/api/v1/src/old/episode-old-v1.js new file mode 100644 index 0000000..fe1f284 --- /dev/null +++ b/api/v1/src/old/episode-old-v1.js @@ -0,0 +1,87 @@ +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 };