# █ █ ▀ █▄▀ ▄▀█ █▀█ ▀ ▄▀█ ▀█▀ ▄▀█ █▀▄▀█ ▄▀█ # █▀█ █ █ █ █▀█ █▀▄ █ ▄ █▀█ █ █▀█ █ ▀ █ █▀█ # # © Copyright 2022 # # https://t.me/hikariatama # # 🔒 Licensed under the GNU GPLv3 # 🌐 https://www.gnu.org/licenses/agpl-3.0.html # scope: inline from .. import loader, main, utils import logging import git from telethon.utils import get_display_name from ..inline.types import InlineQuery from telethon.tl.types import Message logger = logging.getLogger(__name__) @loader.tds class HikkaInfoMod(loader.Module): """Show userbot info""" strings = { "name": "HikkaInfo", "owner": "Owner", "version": "Version", "build": "Build", "prefix": "Command prefix", "send_info": "Send userbot info", "description": "ℹ This will not compromise any sensitive info", "up-to-date": "✅ Up-to-date", "update_required": "⚠️ Update required .update", } async def client_ready(self, client, db): self._db = db self._client = client self._me = await client.get_me() self.markup = {"text": "🌘 Support chat", "url": "https://t.me/hikka_talks"} def _render_info(self) -> str: ver = utils.get_git_hash() or "Unknown" try: repo = git.Repo() diff = repo.git.log(["HEAD..origin/master", "--oneline"]) upd = ( self.strings("update_required") if diff else self.strings("up-to-date") ) except Exception: upd = "" return ( "🌘 Hikka Userbot\n" f'🤴 {self.strings("owner")}: {utils.escape_html(get_display_name(self._me))}\n\n' f"🔮 {self.strings('version')}: {'.'.join(list(map(str, list(main.__version__))))}\n" f"🧱 {self.strings('build')}: {ver[:8]}\n\n" f"📼 {self.strings('prefix')}: «{utils.escape_html(self.get_prefix())}»\n" f"{upd}\n" f"{utils.get_named_platform()}\n" ) @loader.inline_everyone async def info_inline_handler(self, query: InlineQuery) -> dict: """Send userbot info""" return { "title": self.strings("send_info"), "description": self.strings("description"), "message": self._render_info(), "thumb": "https://github.com/hikariatama/Hikka/raw/master/assets/hikka_pfp.png", "reply_markup": self.markup, } @loader.unrestricted async def infocmd(self, message: Message): """Send userbot info""" await self.inline.form( message=message, text=self._render_info(), reply_markup=self.markup, ) @loader.unrestricted async def hikkainfocmd(self, message: Message): """[en/ru - default en] - Send info aka 'What is Hikka?'""" args = utils.get_args_raw(message) args = args if args in {"en", "ru"} else "en" await utils.answer( message, """🌘 Hikka Brand new userbot for Telegram with a lot of features, aka InlineGalleries, Forms and others. Userbot - software, running on your Telegram account. If you write a command to any chat, it will get executed right there. Check out live examples at GitHub """ if args == "en" else """🌘 Hikka Новый юзербот для Telegram с огромным количеством функций, из которых: Инлайн Галереи, формы и другое. Юзербот - программа, которая запускается на твоем Telegram-аккаунте. Когда ты пишешь команду в любом чате, она сразу же выполняется. Обрати внимание на живые примеры на GitHub """, )