Add files via upload

This commit is contained in:
2024-10-26 16:26:50 +05:00
committed by GitHub
parent e20f165f24
commit da080e29df
5 changed files with 1001 additions and 0 deletions

71
api/v1/src/episode.js Normal file
View File

@@ -0,0 +1,71 @@
// src/episode.js
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;
// Если список `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: false,
episodes_count: 0,
view_count: 0,
pinned: false
}
]
};
}
module.exports = { getEpisodeFromAnixart };