50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
const axios = require('axios');
|
|
|
|
// Кэш кастомных заметок
|
|
let cachedNotes = [];
|
|
|
|
// Функция для загрузки заметок из внешнего API
|
|
async function fetchNotes() {
|
|
try {
|
|
const response = await axios.get('https://anixart.seele.su/api/release_note');
|
|
cachedNotes = Array.isArray(response.data) ? response.data : [];
|
|
} catch {
|
|
cachedNotes = [];
|
|
}
|
|
}
|
|
|
|
// Загружаем заметки сразу при запуске
|
|
fetchNotes();
|
|
|
|
// Обновляем заметки каждые 10 минут
|
|
setInterval(fetchNotes, 10 * 60 * 1000);
|
|
|
|
// Основная функция-парсер
|
|
async function getReleaseFromAnixart(releaseId, token = '') {
|
|
const url = `https://api.anixart.tv/release/${releaseId}${token ? `?token=${token}` : ''}`;
|
|
|
|
try {
|
|
const response = await axios.get(url);
|
|
const releaseData = response.data;
|
|
|
|
if (!releaseData.release) {
|
|
releaseData.release = {};
|
|
}
|
|
|
|
// Применяем кастомный note, если он есть
|
|
const noteEntry = cachedNotes.find(entry => entry.id === Number(releaseId));
|
|
if (noteEntry) {
|
|
releaseData.release.note = noteEntry.note;
|
|
}
|
|
|
|
return releaseData;
|
|
} catch {
|
|
return {
|
|
code: 2,
|
|
release: null,
|
|
};
|
|
}
|
|
}
|
|
|
|
module.exports = { getReleaseFromAnixart };
|