Files
limoka/mead0wsss/mead0wsMods/FaceitStatus.py
2025-08-10 01:17:09 +00:00

96 lines
4.4 KiB
Python

__version__ = (1, 0, 0)
# ███╗░░░███╗███████╗░█████╗░██████╗░░█████╗░░██╗░░░░░░░██╗░██████╗░██████╗
# ████╗░████║██╔════╝██╔══██╗██╔══██╗██╔══██╗░██║░░██╗░░██║██╔════╝██╔════╝
# ██╔████╔██║█████╗░░███████║██║░░██║██║░░██║░╚██╗████╗██╔╝╚█████╗░╚█████╗░
# ██║╚██╔╝██║██╔══╝░░██╔══██║██║░░██║██║░░██║░░████╔═████║░░╚═══██╗░╚═══██╗
# ██║░╚═╝░██║███████╗██║░░██║██████╔╝╚█████╔╝░░╚██╔╝░╚██╔╝░██████╔╝██████╔╝
# ╚═╝░░░░░╚═╝╚══════╝╚═╝░░╚═╝╚═════╝░░╚════╝░░░░╚═╝░░░╚═╝░░╚═════╝░╚═════╝░
# © Copyright 2025
# ✈ https://t.me/mead0wssMods
# scope: hikka_only
# scope: hikka_min 1.3.3
# meta developer: @mead0wssMods
# meta banner: https://x0.at/tYLF.png
import requests
from .. import loader, utils
from aiohttp import ClientSession
import logging
@loader.tds
class FaceitStatus(loader.Module):
"""Модуль для установки статуса в зависимости от уровня FACEIT CS 2"""
strings = {"name": "FaceitStatus"}
def __init__(self):
self.config = loader.ModuleConfig(
loader.ConfigValue(
"nickname",
"",
lambda: "Никнейм Faceit для получения информации",
validator=loader.validators.String()
),
loader.ConfigValue(
"enabled",
False,
lambda: "Включить или выключить обновление статуса.",
validator=loader.validators.Boolean()
)
)
self.faceit_level_emojis = {
1: 5472218969999941969,
2: 5472420816282983721,
3: 5474655053975396078,
4: 5474457803307359926,
5: 5474321889067276806,
6: 5471974427447009199,
7: 5474505554753756989,
8: 5474586712455782018,
9: 5474493773658462333,
10: 5474608393450691188,
}
async def client_ready(self):
if self.config["enabled"]:
self.update_status_loop.start()
@loader.loop(interval=60)
async def update_status_loop(self):
await self.update_status()
async def update_status(self):
nickname = self.config["nickname"]
if not nickname:
return
async with ClientSession() as session:
async with session.get(f"https://api.faceit.com/users/v1/nicknames/{nickname}") as response:
if response.status == 200:
payload = await response.json()
faceit_lvl = payload.get("payload", {}).get("games", {}).get("cs2", {}).get("skill_level")
if faceit_lvl in self.faceit_level_emojis:
emoji_id = self.faceit_level_emojis[faceit_lvl]
await self._client.set_status(emoji_id)
else:
logging.error("Ошибка при запросе к FACEIT API: %s", response.status)
@loader.command()
async def on_faccmd(self, event):
"""Включить обновление статуса."""
self.config["enabled"] = True
await self.update_status()
self.update_status_loop.start()
await event.edit("✅ Обновление статуса включено.")
@loader.command()
async def off_faccmd(self, event):
"""Выключить обновление статуса."""
self.config["enabled"] = False
self.update_status_loop.stop()
await event.edit("❌ Обновление статуса выключено.")