from hikkatl.types import Message from .. import loader, utils import genshin from genshin.models.hoyolab import GenshinAccount from .. import main import logging import random """ ███ ███ ██ ██ ██████ ██ ██ ██ ██████ ███████ ███████ ████ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██████ ██ ██ ██ ██ ██ ███████ █████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██████ ██ ██ ██████ ███████ ██████ ███████ ███████ Module name 📜 Licensed under the GNU AGPLv3 """ # meta banner: link # meta desc: desc # meta developer: @BruhHikkaModules # requires: genshin logger = logging.getLogger(__name__) @loader.tds class Genshin(loader.Module): """Module for Genshin""" strings = {"name": "Genshin"} strings_ru = { "_cls_doc": "Модуль для геншина", "wait_auth": " Идёт повторная авторизация...", "wait_promo": " Идёт получение промокода...", "game_accounts_template": "👀 Genshin:" "\nUID: {uid}" "\nРанг приключений: {level}" "\nНик: {nickname}", "authed": " Авторизован!", "promo_activated": " {promocode} Активирован!" } async def client_ready(self, db, client): self.hoyo_client = genshin.Client( { "cookie_token": self.config["cookie_token"], "ltuid_v2": int(self.config["ltuid"]), "ltoken_v2": self.config["ltoken"] } ) def __init__(self): self.config = loader.ModuleConfig( loader.ConfigValue( "ltoken", "v2_UGA879KPhsRM18g23GMCXV80913nbMXOALZGOurfv", "Set your ltoken in Hoyoverse to login", validator=loader.validators.Hidden(), ), loader.ConfigValue( "ltuid", "123456789", "Set your ltuid in Hoyoverse to login", validator=loader.validators.Hidden(loader.validators.Integer()), ), loader.ConfigValue( "cookie_token", "None", "Set your cookie token for promocodes", validator=loader.validators.Hidden() ) ) @loader.command( ru_doc=" - Поменяли данные для входа или хотите авторизироваться? Вам нужно перезагрузить модуль", ) async def greload(self, message: Message): """- You change credentials or want auth? You need to reload module""" await utils.answer(message, self.strings["wait_auth"]) self.hoyo_client = genshin.Client( { "cookie_token": self.config["cookie_token"], "ltuid_v2": int(self.config["ltuid"]), "ltoken_v2": self.config["ltoken"] } ) await utils.answer(message, self.strings["authed"]) @loader.command( ru_doc=" - Показывает все аккаунты в Genshin" ) async def hoyoaccounts(self, message: Message): ''' - Shows all accounts in Genshin''' accounts = await self.hoyo_client.get_game_accounts() genshin = [] for account in accounts: if isinstance(account, GenshinAccount): genshin.append(account.dict()) output = "" for account in genshin: output += self.strings["game_accounts_template"].format(**account) await utils.answer( message, output ) @loader.command( ru_doc=" [Промокод] - Активирует промокод" ) async def activatepromo(self, message: Message): args = utils.get_args_raw(message) await self.hoyo_client.redeem_code(args, game="genshin") await utils.answer( message, self.strings["promo_activated"].format( promocode=args ) )