From 8baf122723cc258081914fa314d7962b2ea56e89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=BC=E3=83=BC=E3=83=AC?= Date: Wed, 7 May 2025 18:13:05 +0500 Subject: [PATCH] Update profile.js --- api/v1/src/profile.js | 150 ++++++++++++++---------------------------- 1 file changed, 51 insertions(+), 99 deletions(-) diff --git a/api/v1/src/profile.js b/api/v1/src/profile.js index b2aa94b..0db1f72 100644 --- a/api/v1/src/profile.js +++ b/api/v1/src/profile.js @@ -1,105 +1,57 @@ -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 axios = require('axios'); -// Старый методы -const { getOldEpisodeFromAnixart } = require('./src/old/episode-old-v1'); -const configDataOld = require('./src/old/toggles-old-v1'); +// Функция для запроса профиля Anixart +async function getProfileFromAnixart(profileId, token = '') { + 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 { - const data = getRolesUsers(); - res.status(200).json(data); + const response = await axios.get(url); + 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 { + // Если профиль уже верифицирован — оставляем, иначе false + if (typeof profileData.profile.is_verified !== 'boolean') { + profileData.profile.is_verified = false; + } + } + + // Подгружаем кастомные роли + try { + const rolesResponse = await axios.get('https://anixart.seele.su/api/is_roles'); + 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 { + // Ошибку загрузки ролей игнорируем + } + + return profileData; } catch { - res.status(200).json([]); + return { + code: 2, + profile: null, + is_my_profile: false, + }; } -}); +} -// Эндпоинт для получения 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) { - 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 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}`); -}); +module.exports = { getProfileFromAnixart };