Update profile.js
This commit is contained in:
@@ -1,105 +1,57 @@
|
|||||||
const express = require('express');
|
const axios = require('axios');
|
||||||
// Новый методы
|
|
||||||
const getVerifiedUsers = require('./src/is_verified');
|
|
||||||
const getRolesUsers = require('./src/is_roles');
|
|
||||||
const { getProfileFromAnixart } = require('./src/profile');
|
|
||||||
const { getEpisodeFromAnixart } = require('./src/episode');
|
|
||||||
const getToggles = require('./src/toggles');
|
|
||||||
|
|
||||||
// Старый методы
|
// Функция для запроса профиля Anixart
|
||||||
const { getOldEpisodeFromAnixart } = require('./src/old/episode-old-v1');
|
async function getProfileFromAnixart(profileId, token = '') {
|
||||||
const configDataOld = require('./src/old/toggles-old-v1');
|
const url = `https://api.anixart.tv/profile/${profileId}${token ? `?token=${token}` : ''}`;
|
||||||
|
|
||||||
const app = express();
|
|
||||||
const PORT = 3000;
|
|
||||||
|
|
||||||
// Новый эндпоинты Открываем
|
|
||||||
|
|
||||||
// Эндпоинт для получения Verified
|
|
||||||
app.get('/api/is_roles', (req, res) => {
|
|
||||||
try {
|
try {
|
||||||
const data = getRolesUsers();
|
const response = await axios.get(url);
|
||||||
res.status(200).json(data);
|
const profileData = response.data;
|
||||||
|
|
||||||
|
// Убедимся, что profile существует
|
||||||
|
if (!profileData.profile) {
|
||||||
|
profileData.profile = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Проверка верификации
|
||||||
|
try {
|
||||||
|
const verifiedResponse = await axios.get('https://anixart.seele.su/api/is_verified');
|
||||||
|
const verifiedList = verifiedResponse.data;
|
||||||
|
|
||||||
|
const alreadyVerified = !!profileData.profile.is_verified;
|
||||||
|
|
||||||
|
if (!alreadyVerified && Array.isArray(verifiedList) && verifiedList.includes(profileId.toString())) {
|
||||||
|
profileData.profile.is_verified = true;
|
||||||
|
}
|
||||||
|
// Если уже верифицирован — не затираем
|
||||||
} catch {
|
} catch {
|
||||||
res.status(200).json([]);
|
// Если профиль уже верифицирован — оставляем, иначе false
|
||||||
|
if (typeof profileData.profile.is_verified !== 'boolean') {
|
||||||
|
profileData.profile.is_verified = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
// Эндпоинт для получения Verified
|
// Подгружаем кастомные роли
|
||||||
app.get('/api/is_verified', (req, res) => {
|
|
||||||
try {
|
try {
|
||||||
const data = getVerifiedUsers();
|
const rolesResponse = await axios.get('https://anixart.seele.su/api/is_roles');
|
||||||
res.status(200).json(data);
|
const rolesList = rolesResponse.data;
|
||||||
|
|
||||||
|
const userRoles = rolesList.find(entry => entry.id === Number(profileId));
|
||||||
|
if (userRoles && Array.isArray(userRoles.roles)) {
|
||||||
|
profileData.profile.roles = userRoles.roles;
|
||||||
|
}
|
||||||
} catch {
|
} catch {
|
||||||
res.status(200).json([]);
|
// Ошибку загрузки ролей игнорируем
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
// Эндпоинт для получения профиля
|
return profileData;
|
||||||
app.get('/api/profile/:profileId', async (req, res) => {
|
} catch {
|
||||||
const { profileId } = req.params;
|
return {
|
||||||
const { token } = req.query;
|
code: 2,
|
||||||
try {
|
profile: null,
|
||||||
const data = await getProfileFromAnixart(profileId, token);
|
is_my_profile: false,
|
||||||
res.json(data);
|
};
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
// Эндпоинт для получения информации об эпизоде (Новый эндпоинт)
|
module.exports = { getProfileFromAnixart };
|
||||||
app.get('/api/episode/:releaseId', async (req, res) => {
|
|
||||||
const { releaseId } = req.params;
|
|
||||||
const { token } = req.query; // Извлекаем token из query-параметров
|
|
||||||
try {
|
|
||||||
const data = await getEpisodeFromAnixart(releaseId, token);
|
|
||||||
res.json(data);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Эндпоинт для конфигурационного JSON из toggles.js
|
|
||||||
app.get('/api/config/toggles', async (req, res) => {
|
|
||||||
try {
|
|
||||||
const toggles = await getToggles();
|
|
||||||
res.json(toggles);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Новый эндпоинты Закрываем
|
|
||||||
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
// Старый эндпоинты Открываем
|
|
||||||
|
|
||||||
// Эндпоинт для получения информации об эпизоде (Старый эндпоинт)
|
|
||||||
app.get('/api/extension/episode/:releaseId', async (req, res) => {
|
|
||||||
const { releaseId } = req.params;
|
|
||||||
try {
|
|
||||||
const data = await getOldEpisodeFromAnixart(releaseId);
|
|
||||||
res.json(data);
|
|
||||||
} catch (error) {
|
|
||||||
res.status(500).json({ error: error.message });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Эндпоинт для конфигурационного JSON из toggles-old-1.js (Старый Toggles)
|
|
||||||
app.get('/api/extension/config/toggles', (req, res) => {
|
|
||||||
res.json(configDataOld);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Старый эндпоинты Закрываем
|
|
||||||
|
|
||||||
// --------------------------
|
|
||||||
|
|
||||||
// Обработчик для всех неизвестных маршрутов
|
|
||||||
app.use((req, res) => {
|
|
||||||
res.status(404).json({ error: "Страница не существует!", status: 404 });
|
|
||||||
});
|
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
|
||||||
console.log(`Сервер запущен на http://localhost:${PORT}`);
|
|
||||||
});
|
|
||||||
|
|||||||
Reference in New Issue
Block a user