from hikkatl.types import Message from .. import loader, utils import requests # meta developer: @sqlmerr_m # meta icon: https://github.com/sqlmerr/hikka_mods/blob/main/assets/icons/numberfacts.png?raw=true # meta banner: https://github.com/sqlmerr/sqlmerr/blob/main/assets/hikka_mods/sqlmerrmodules_numberfacts.png?raw=true @loader.tds class NumbersFacts(loader.Module): """Interesting facts about numbers | Check the config""" strings = { "name": "NumbersFacts", "noargs": "🚫 You didn't enter any arguments", "indexerror": "🚫 You have not entered enough arguments", "type": "Type of facts about numbers. Trivia is a fact from life, math is a mathematical fact, date and year is a question about a date", } string_ru = { "noargs": "🚫 Вы не ввели аргументы", "indexerror": "🚫 Вы ввели недостаточно аргументов", "type": "Тип фактов о числах. Trivia — факт из жизни, math — математический факт, date и year — вопрос про дату", } def __init__(self): self.config = loader.ModuleConfig( loader.ConfigValue( "type", "math", lambda: self.strings("type"), validator=loader.validators.Choice(["date", "math", "year", "trivia"]), ), ) @loader.command(ru_doc="[число] - получить факт об этом числе") async def numberfact(self, message: Message): """[number] - get fact about number""" if not (args := utils.get_args_raw(message).split()): return await utils.answer(message, self.strings("no_args")) number = args[0] _type = self.config["type"] url = f"http://numbersapi.com/{number}/{_type}" response = await utils.run_sync(requests.get, url) data = response.text await utils.answer( message, await self._client.translate( message.peer_id, message, to_lang=self._db.get("hikka.translations", "lang")[0:2], raw_text=data, entities=message.entities, ), )