# ©️ Dan Gazizullin, 2021-2023
# This file is a part of Hikka Userbot
# 🌐 https://github.com/hikariatama/Hikka
# You can redistribute it and/or modify it under the terms of the GNU AGPLv3
# 🔑 https://www.gnu.org/licenses/agpl-3.0.html
import git
from hikkatl.tl.types import Message
from hikkatl.utils import get_display_name
from .. import loader, utils, version
from ..inline.types import InlineQuery
@loader.tds
class HikkaInfoMod(loader.Module):
"""Show userbot info"""
strings = {
"name": "HikkaInfo",
"owner": "Owner",
"version": "Version",
"build": "Build",
"prefix": "Prefix",
"uptime": "Uptime",
"branch": "Branch",
"cpu_usage": "CPU usage",
"ram_usage": "RAM usage",
"send_info": "Send userbot info",
"description": "ℹ This will not compromise any sensitive info",
"up-to-date": (
"😌 Up-to-date"
),
"update_required": (
"😕 Update required"
" .update
"
),
"setinfo_no_args": (
"😢 You need to specify"
" text to change info to"
),
"setinfo_success": (
"🎉 Info changed"
" successfully"
),
"_cfg_cst_msg": (
"Custom message for info. May contain {me}, {version}, {build}, {prefix},"
" {platform}, {upd}, {uptime}, {cpu_usage}, {ram_usage}, {branch} keywords"
),
"_cfg_cst_btn": "Custom button for info. Leave empty to remove button",
"_cfg_banner": "URL to image banner",
"desc": (
"🌘 Userbot — what is"
" it?\n\n😎 A userbot"
" refers to a third-party program that interacts with the Telegram"
" API to perform automated tasks on behalf of a user. These userbots"
" can be used to automate various tasks such as sending messages,"
" joining channels, downloading media, and much more.\n\n😎 Userbots are different from"
" regular Telegram bots as they run on the user's account rather"
" than a bot account. This means that userbots can access more features and"
" have greater flexibility in terms of the actions they can"
" perform.\n\n🚫 However, it"
" is important to note that userbots are not officially supported by"
" Telegram and their use may violate the platform's terms of service."
" As such, users should exercise caution when using userbots and"
" ensure that they are not being used for malicious purposes.\n\n"
),
}
strings_ru = {
"owner": "Владелец",
"version": "Версия",
"build": "Сборка",
"prefix": "Префикс",
"uptime": "Аптайм",
"branch": "Ветка",
"cpu_usage": "Использование CPU",
"ram_usage": "Использование RAM",
"send_info": "Отправить информацию о юзерботе",
"description": "ℹ Это не раскроет никакой личной информации",
"_ihandle_doc_info": "Отправить информацию о юзерботе",
"up-to-date": (
"😌 Актуальная версия"
),
"update_required": (
"😕 Требуется обновление"
" .update
"
),
"_cfg_cst_msg": (
"Кастомный текст сообщения в info. Может содержать ключевые слова {me},"
" {version}, {build}, {prefix}, {platform}, {upd}, {uptime}, {cpu_usage},"
" {ram_usage}, {branch}"
),
"_cfg_cst_btn": (
"Кастомная кнопка в сообщении в info. Оставь пустым, чтобы убрать кнопку"
),
"_cfg_banner": "Ссылка на баннер-картинку",
"setinfo_no_args": (
"😢 Тебе нужно указать"
" текст для кастомного инфо"
),
"setinfo_success": (
"🎉 Текст инфо успешно"
" изменен"
),
"desc": (
"🌘 Что такое"
" Userbot?\n\n😎 Userbot"
" - это сторонняя программа, которая взаимодействует с Telegram API"
" для выполнения автоматизированных задач от имени пользователя."
" Юзерботы могут использоваться для автоматизации различных задач, таких"
" как отправка сообщений, присоединение к каналам, загрузка медиафайлов"
" и многое другое.\n\n😎"
" Юзерботы отличаются от обычных ботов в Telegram тем, что они работают"
" на аккаунте пользователя, а не на бот-аккаунте. Это означает, что они"
" могут иметь доступ к большему количеству функций и обладают большей"
" гибкостью в плане выполнения действий.\n\n🚫 Однако важно отметить, что"
" юзерботы официально не поддерживаются Telegram и их использование"
" может нарушать условия использования платформы. Поэтому пользователи"
" должны быть осторожны при их использовании и убедиться, что на их"
" аккаунте не выполняется вредоносный код.\n\n"
),
}
strings_fr = {
"owner": "Propriétaire",
"version": "Version",
"build": "Construire",
"prefix": "Préfixe",
"uptime": "Uptime",
"branch": "Branche",
"cpu_usage": "Utilisation du CPU",
"ram_usage": "Utilisation de la RAM",
"send_info": "Envoyer des informations sur l'utilisateurbot",
"description": "ℹ Cela ne révélera aucune information personnelle",
"_ihandle_doc_info": "Envoyer des informations sur l'utilisateurbot",
"up-to-date": (
"😌 Version à jour"
),
"update_required": (
"😕 Mise à jour"
" requise .update
"
),
"_cfg_cst_msg": (
"Texte de message personnalisé dans info. Peut contenir les mots clés"
" {me}, {version}, {build}, {prefix}, {platform}, {upd}, {uptime},"
" {cpu_usage}, {ram_usage}, {branch}"
),
"_cfg_cst_btn": (
"Bouton personnalisé dans le message dans info. Laissez vide pour supprimer"
" le bouton"
),
"_cfg_banner": "Lien vers la bannière de l'image",
"setinfo_no_args": (
"😢 Vous devez spécifier"
" le texte pour l'info personnalisée"
),
"setinfo_success": (
"🎉 L'info personnalisée"
" a bien été modifiée"
),
"desc": (
"🌘 Qu'est-ce qu'un"
" Userbot?\n\n😎 Userbot"
" est un programme tiers qui interagit avec l'API Telegram pour"
" exécuter des tâches automatisées au nom de l'utilisateur. Les"
" userbots peuvent être utilisés pour automatiser diverses tâches, telles"
" que l'envoi de messages, l'adhésion aux canaux, le téléchargement de"
" fichiers multimédias et bien plus encore.\n\n😎 Les userbots diffèrent des bots"
" Telegram classiques dans le sens où ils fonctionnent sur le compte de"
" l'utilisateur et non sur un compte de bot. Cela signifie qu'ils"
" peuvent avoir accès à plus de fonctions et être plus flexibles dans"
" l'exécution de leurs actions.\n\n🚫 Cependant, il est important de"
" noter que les userbots ne sont pas officiellement pris en charge par"
" Telegram et leur utilisation peut enfreindre les conditions"
" d'utilisation de la plateforme. Par conséquent, les utilisateurs"
" doivent faire preuve de prudence lors de leur utilisation et"
" s'assurer que le code malveillant n'est pas exécuté sur leur compte.\n\n"
),
}
strings_it = {
"owner": "Proprietario",
"version": "Versione",
"build": "Build",
"prefix": "Prefisso",
"uptime": "Uptime",
"branch": "Branch",
"cpu_usage": "Uso CPU",
"ram_usage": "Uso RAM",
"send_info": "Invia info del bot",
"description": "ℹ Questo non rivelera' alcuna informazione personale",
"_ihandle_doc_info": "Invia info del bot",
"up-to-date": (
"😌 Versione"
" aggiornata"
),
"update_required": (
"😕 Aggiornamento"
" richiesto .update
"
),
"_cfg_cst_msg": (
"Messaggio personalizzato per info. Puo' contenere {me}, {version},"
" {build}, {prefix}, {platform}, {upd}, {uptime}, {cpu_usage}, {ram_usage},"
" {branch} keywords"
),
"_cfg_cst_btn": "Bottone personalizzato per info. Lascia vuoto per rimuovere",
"_cfg_banner": "URL dell'immagine banner",
"desc": (
"🌘 Che cos'è un"
" Userbot?\n\n😎 Il"
" Userbot è un programma esterno che interagisce con l'API di"
" Telegram per eseguire compiti automatizzati a nome dell'utente. I"
" userbot possono essere utilizzati per automatizzare diversi compiti, come"
" invio di messaggi, iscrizione a canali, caricamento di file"
" multimediali e molto altro ancora.\n\n😎 I userbot differiscono dai bot"
" di Telegram nel fatto che funzionano con gli account utente e non"
" con quelli di bot. Ciò significa che possono avere accesso a più"
" funzionalità e una maggiore flessibilità nella loro esecuzione.\n\n🚫 Tuttavia, è importante notare"
" che i userbot non sono supportati ufficialmente da Telegram e"
" l'utilizzo di quest'ultimi può violare i termini di utilizzo della"
" piattaforma. Pertanto, gli utenti devono essere cautelosi quando li"
" utilizzano e assicurarsi che sul loro account non venga eseguito codice"
" malevolo.\n\n"
),
}
strings_de = {
"owner": "Besitzer",
"version": "Version",
"build": "Build",
"prefix": "Prefix",
"uptime": "Uptime",
"branch": "Branch",
"cpu_usage": "CPU Nutzung",
"ram_usage": "RAM Nutzung",
"send_info": "Botinfo senden",
"description": "ℹ Dies enthüllt keine persönlichen Informationen",
"_ihandle_doc_info": "Sende Botinfo",
"up-to-date": "😌 Aktuell",
"update_required": (
"😕 Update benötigt"
" .update
"
),
"_cfg_cst_msg": (
"Custom message for info. May contain {me}, {version}, {build}, {prefix},"
" {platform}, {upd}, {uptime}, {cpu_usage}, {ram_usage}, {branch} keywords"
),
"_cfg_cst_btn": "Custom button for info. Leave empty to remove button",
"_cfg_banner": "URL to image banner",
"setinfo_no_args": (
"😢 Bitte gib einen"
" Text an, um die Info zu ändern"
),
"setinfo_success": (
"🎉 Info geändert"
),
"desc": (
"🌘 Was ist ein"
" Userbot?\n\n😎 Userbot"
" ist ein externe Programm, welches mit der Telegram API"
" kommuniziert, um automatisierte Aufgaben für den Benutzer"
" auszuführen. Userbots können benutzt werden, um verschiedene Aufgaben zu"
" automatisieren, wie zum Beispiel Nachrichten senden, Kanäle beitreten,"
" Medien hochladen und vieles mehr.\n\n😎 Userbots unterscheiden sich von"
" normalen Telegram Bots darin, dass sie auf einem Benutzerkonto"
" laufen und nicht auf einem Botkonto. Das bedeutet, dass sie mehr"
" Funktionen haben und mehr Flexibilität bei der Ausführung von Aktionen"
" haben.\n\n🚫 Es ist jedoch"
" wichtig zu beachten, dass Userbots nicht offiziell von Telegram"
" unterstützt werden und ihre Verwendung gegen die Nutzungsbedingungen"
" von Telegram verstoßen kann. Deshalb müssen Benutzer vorsichtig sein,"
" wenn sie Userbots benutzen und sicherstellen, dass auf ihrem Konto"
" kein schädlicher Code ausgeführt wird.\n\n"
),
}
strings_uz = {
"owner": "Egasi",
"version": "Versiya",
"build": "Build",
"prefix": "Prefix",
"uptime": "Ishlash vaqti",
"branch": "Vetkasi",
"cpu_usage": "CPU foydalanish",
"ram_usage": "RAM foydalanish",
"send_info": "Bot haqida ma'lumot",
"description": "ℹ Bu shaxsiy ma'lumot emas",
"_ihandle_doc_info": "Bot haqida ma'lumot",
"up-to-date": (
"😌 So'ngi versia"
),
"update_required": (
"😕 Yangilash"
" kerak .update
"
),
"_cfg_cst_msg": (
"Xabar uchun shaxsiy xabar. {me}, {version}, {build}, {prefix}, {platform},"
" {upd}, {uptime}, {cpu_usage}, {ram_usage}, {branch} kalit so'zlarni"
" ishlatishingiz mumkin"
),
"_cfg_cst_btn": (
"Xabar uchun shaxsiy tugma. Tugmani o'chirish uchun bo'sh qoldiring"
),
"_cfg_banner": "URL uchun rasmi",
"setinfo_no_args": (
"😢 Ma'lumotni"
" o'zgartirish uchun matn kiriting"
),
"setinfo_success": (
"🎉 Ma'lumotlar"
" o'zgartirildi"
),
"desc": (
"🌘 Userbot"
" nima?\n\n😎 Userbot -"
" bu tashqi dastur, foydalanuvchi tomonidan ishlaydigan"
" Telegram API bilan aloqa qilish uchun ishlatiladi. Userbotlarni"
" avtomatlashtirilgan vazifalarni bajarish uchun ishlatish mumkin."
" Userbotlar habarlarni yuborish, kanallarga ulanish, media fayllarni"
" yuklash va boshqa biror vazifa bajarish uchun ishlatilishi"
" mumkin.\n\n😎 Userbotlar"
" Telegramda obyektiv bo'lgan botlardan farqli. Userbotlar"
" bot-hisobotlaridan ishlaydi, foydalanuvchi hisobotidan"
" ishlaydi. Bu shuni anglatadiki, userbotlar Telegram platformasida"
" ishlash uchun kerakli funksiyalarga ega va ular qanday vazifalarni"
" bajarishni xohlayotgan bo'lishi mumkin.\n\n🚫 Lekin shuni unutmangki,"
" userbotlar Telegram tomonidan rasmiylashtirilmagan va ularni"
" ishlatish Telegram shartlari bilan bir-biriga mos kelmaydi."
" Shuning uchun foydalanuvchilar userbotlarni ishlatishda qattiq"
" bo'lishi lozim va ularning hisobotlari bo'lmaguncha biror zararli"
" kod yuklamasini tekshirish kerak.\n\n"
),
}
strings_tr = {
"owner": "Sahip",
"version": "Sürüm",
"build": "Derleme",
"prefix": "Önek",
"uptime": "Aktif Süre",
"branch": "Dal",
"cpu_usage": "CPU Kullanımı",
"ram_usage": "RAM Kullanımı",
"send_info": "Bot hakkında bilgi",
"description": "ℹ️ Kişisel bilgileri tehlikeye atmaz",
"_ihandle_doc_info": "Bot hakkında bilgi",
"up-to-date": "😌 Güncel",
"update_required": (
"😕 Güncelleme"
" gerekli .update
"
),
"_cfg_cst_msg": (
"Kişisel mesaj için bilgi. {me}, {version}, {build}, {prefix}, {platform},"
" {upd}, {uptime}, {cpu_usage}, {ram_usage}, {branch} anahtar kelimeleri"
" kullanılabilir"
),
"_cfg_cst_btn": "Kişisel tuş için bilgi. Tuşu kaldırmak için boş bırakın",
"_cfg_banner": "Resim için URL",
"setinfo_no_args": (
"😢 Bilgiyi değiştirmek"
" için herhangi bir metin girin"
),
"setinfo_success": (
"🎉 Bilgiler"
" değiştirildi"
),
"desc": (
"🌘 Neden"
" Userbot?\n\n😎 Userbot"
" - Telegram API ile Kullanıcı adına otomatikleştirilmiş"
" işlemleri yürüten bir üçüncü taraf programıdır. Userbotlar,"
" mesaj gönderme, kanallara katılma, medya yükleme ve diğer işlemleri"
" otomatize etmek için kullanılabilecek birçok işi otomatize etmenizi"
" sağlar.\n\n😎 Userbotlar,"
" normal Telegram botlarından farklı olarak, Kullanıcı hesabında"
" çalışırlar. Bu, daha fazla iş yapmalarına ve daha esnek"
" olmalarına olanak verir.\n\n🚫 Bununla birlikte, Userbotlar"
" Telegram tarafından resmi olarak desteklenmez ve bunların kullanımı"
" platformun kullanım koşullarını ihlal edebilir. Kullanıcılar bu"
" nedenle Userbotların kullanımını dikkatli bir şekilde yapmalıdır ve"
" kullanıcı hesaplarında kötü niyetli kodun çalıştırılmadığından emin"
" olmalıdırlar.\n\n"
),
}
strings_es = {
"owner": "Propietario",
"version": "Versión",
"build": "Construir",
"prefix": "Prefijo",
"uptime": "Tiempo de actividad",
"branch": "Rama",
"cpu_usage": "Uso de CPU",
"ram_usage": "Uso de RAM",
"send_info": "Enviar información del bot",
"description": "ℹ️ No exponga su información personal",
"_ihandle_doc_info": "Información del bot",
"up-to-date": (
"😌 Actualizado"
),
"update_required": (
"😕 Actualización"
" necesaria .update
"
),
"_cfg_cst_msg": (
"Información del mensaje personalizado. Puede usar las palabras clave {me},"
" {version}, {build}, {prefix}, {platform}, {upd}, {uptime}, {cpu_usage},"
" {ram_usage}, {branch}"
),
"_cfg_cst_btn": (
"Información del botón personalizado. Eliminar el botón deje en blanco"
),
"_cfg_banner": "URL de la imagen",
"setinfo_no_args": (
"😢 Para cambiar la"
" información, ingrese algún texto"
),
"setinfo_success": (
"🎉 Información cambiada"
" con éxito"
),
"desc": (
"🌘 ¿Qué es un"
" Userbot?\n\n😎 Un"
" Userbot es un programa externo que interactúa con la API de"
" Telegram para realizar tareas automatizadas en nombre del usuario."
" Los userbots pueden utilizarse para automatizar diversas tareas, como"
" envío de mensajes, unirse a canales, subir archivos multimedia y mucho"
" más.\n\n😎 Los userbots"
" se diferencian de los bots normales de Telegram en que trabajan en la"
" cuenta del usuario en lugar de en una cuenta de bot. Esto significa"
" que tienen acceso a más funciones y son más flexibles a la hora de"
" realizar acciones.\n\n🚫"
" Sin embargo, es importante señalar que los userbots no son oficiales y"
" no son compatibles con Telegram y su uso puede violar los términos de"
" servicio de la plataforma. Por lo tanto, los usuarios deben tener"
" cuidado al usarlos y asegurarse de que en su cuenta no se ejecute"
" código malicioso.\n\n"
),
}
strings_kk = {
"owner": "Әкімші",
"version": "Нұсқасы",
"build": "Құрылған",
"prefix": "Бастауыш",
"uptime": "Қосылған кезең",
"branch": "Бөлімі",
"cpu_usage": "CPU қолданымы",
"ram_usage": "RAM қолданымы",
"send_info": "Бот туралы ақпарат",
"description": "ℹ️ Жеке мәліметтеріңізді қорғау",
"_ihandle_doc_info": "Бот туралы ақпарат",
"up-to-date": (
"😌 Жаңартылған"
),
"update_required": (
"😕 Жаңарту"
" талап етіледі .update
"
),
"_cfg_cst_msg": (
"Жеке хабарлама үшін ақпарат. {me}, {version}, {build}, {prefix},"
" {platform}, {upd}, {uptime}, {cpu_usage}, {ram_usage}, {branch} кілт"
" сөздерді қолдана аласыз"
),
"_cfg_cst_btn": "Жеке түйме үшін ақпарат. Түймесін жою үшін бос қалдырыңыз",
"_cfg_banner": "Сурет үшін URL",
"setinfo_no_args": (
"😢 Ақпаратты өзгерту үшін"
" ештеңе енгізбеңіз"
),
"setinfo_success": (
"🎉 Ақпарат сәтті"
" өзгертілді"
),
"desc": (
"🌘 Пайдаланушы боттарды"
" қандай болады?\n\n😎"
" Пайдаланушы боттар - шетел программа, ол Telegram API мен"
" қолданушының атымен байланысады және автоматтандырылған жұмыстарды"
" өткізеді. Пайдаланушы боттар хабарламаларды жіберу, каналға"
" қосылу, медиа файлдарды жүктеу және басқа қарастырылмаған жұмыстарды"
" жасау үшін пайдаланылады.\n\n😎 Пайдаланушы боттар Telegram"
" боттарынан айырмалы, себебі олар пайдаланушының аккаунтымен жұмыс"
" істейді, бот-аккаунтпен жұмыс істеуге берілмейді. Бұл оларға"
" қатысуға болатын көп көрсеткіштерге және жұмыс істеуге көп"
" құралдарға болатын жақсы құралдарды береді.\n\n🚫 Одан қосымша, пайдаланушы"
" боттардың Telegram үшін официалды қолдау көрсетуі жоқ және оларды"
" пайдалану орталығының қолдану шарттарын бүгінге дейін бұзуы мүмкін."
" Оларды пайдалану қолданушыларға қатысатын нәтижелердің барлығын"
" қарауға мүмкіндік береді.\n\n"
),
}
strings_tt = {
"owner": "Идарәче",
"version": "Версия",
"build": "Билд",
"prefix": "Префикс",
"uptime": "Тәртиби вакыты",
"branch": "Кишелек",
"cpu_usage": "CPU җыелмасы",
"ram_usage": "RAM җыелмасы",
"send_info": "Бот турында мәгълүматны җибәрү",
"description": "ℹ️ Шәхси мәгълүматыңызны тыяу",
"_ihandle_doc_info": "Бот турында мәгълүмат",
"up-to-date": (
"😌 Яңартылган"
),
"update_required": (
"😕 Яңартылу"
" таләп ителә.update
"
),
"_cfg_cst_msg": (
"Шәхси хәбәр мәгълүматы. {me}, {version}, {build}, {prefix}, {platform},"
" {upd}, {uptime}, {cpu_usage}, {ram_usage}, {branch} күчермәләрен җибәрү"
" мөмкин"
),
"_cfg_cst_btn": "Шәхси төймә мәгълүматы. Төймәне юймагыч, буш җибәрү",
"_cfg_banner": "Сүрәт URL-ы",
"setinfo_no_args": (
"😢 Мәгълүматны"
" үзгәртү өчен, мәгълүматны кертегез"
),
"setinfo_success": (
"🎉 Мәгълүмат"
" мөмкин булды"
),
"desc": (
"🌘 Катта"
" Userbot?\n\n😎 Userbot"
" - бу сайлама программа, калан Telegram API ишләп хисап"
" язмасы исеме белән автоматик өтәргә мөмкин. Юзерботлар хат"
" җибәрү, каналга җибәрү, медиа файлларны юкләү вә күбрәк башка"
" мәгълүматлар ны автоматик өтәргә мөмкин.\n\n😎 Юзерботлар хисап язмасы"
" исеме белән бергәндә, бот исеме белән бермәгәндән яңа"
" исемлектә булыр.\n\n🚫"
" Юзерботлар Telegram тарафыннан дөрес ярдәмендәр булганында"
" ясалган. Юзерботлар хисап язмасы исеме белән бергәндә,"
" бот исеме белән бермәгәндән яңа исемлектә булыр. Юзерботлар"
" хисап язмасы исеме белән бергәндә, бот исеме белән"
" бермәгәндән яңа исемлектә булыр.\n\n"
),
}
def __init__(self):
self.config = loader.ModuleConfig(
loader.ConfigValue(
"custom_message",
doc=lambda: self.strings("_cfg_cst_msg"),
),
loader.ConfigValue(
"custom_button",
["🌘 Support chat", "https://t.me/hikka_talks"],
lambda: self.strings("_cfg_cst_btn"),
validator=loader.validators.Union(
loader.validators.Series(fixed_len=2),
loader.validators.NoneType(),
),
),
loader.ConfigValue(
"banner_url",
"https://github.com/hikariatama/assets/raw/master/hikka_banner.mp4",
lambda: self.strings("_cfg_banner"),
validator=loader.validators.Link(),
),
)
def _render_info(self, inline: bool) -> str:
try:
repo = git.Repo(search_parent_directories=True)
diff = repo.git.log([f"HEAD..origin/{version.branch}", "--oneline"])
upd = (
self.strings("update_required") if diff else self.strings("up-to-date")
)
except Exception:
upd = ""
me = '{}'.format(
self._client.hikka_me.id,
utils.escape_html(get_display_name(self._client.hikka_me)),
)
build = utils.get_commit_url()
_version = f'{".".join(list(map(str, list(version.__version__))))}'
prefix = f"«{utils.escape_html(self.get_prefix())}
»"
platform = utils.get_named_platform()
for emoji, icon in {
"🍊": "🧡",
"🍇": "💜",
"❓": "📱",
"🍁": "🍁",
"🦾": "🦾",
"🚂": "🚂",
"🐳": "🐳",
"🕶": "📱",
"🐈⬛": "🐈⬛",
"✌️": "✌️",
"📻": "💎",
"🎃": "🎃",
}.items():
platform = platform.replace(emoji, icon)
return (
(
"🌘 Hikka\n"
if "hikka" not in self.config["custom_message"].lower()
else ""
)
+ self.config["custom_message"].format(
me=me,
version=_version,
build=build,
prefix=prefix,
platform=platform,
upd=upd,
uptime=utils.formatted_uptime(),
cpu_usage=utils.get_cpu_usage(),
ram_usage=f"{utils.get_ram_usage()} MB",
branch=version.branch,
)
if self.config["custom_message"]
else (
f'{{}}\n\n{{}} {self.strings("owner")}: {me}\n\n{{}}'
f' {self.strings("version")}: {_version} {build}\n{{}}'
f' {self.strings("branch")}:'
f" {version.branch}
\n{upd}\n\n{{}}"
f' {self.strings("prefix")}: {prefix}\n{{}}'
f' {self.strings("uptime")}:'
f" {utils.formatted_uptime()}\n\n{{}}"
f' {self.strings("cpu_usage")}:'
f" ~{utils.get_cpu_usage()} %\n{{}}"
f' {self.strings("ram_usage")}:'
f" ~{utils.get_ram_usage()} MB\n{{}}"
).format(
*map(
lambda x: utils.remove_html(x) if inline else x,
(
(
utils.get_platform_emoji()
if self._client.hikka_me.premium and not inline
else "🌘 Hikka"
),
"😎",
"💫",
"🌳",
"⌨️",
"⌛️",
"⚡️",
"💼",
platform,
),
)
)
)
def _get_mark(self):
return (
{
"text": self.config["custom_button"][0],
"url": self.config["custom_button"][1],
}
if self.config["custom_button"]
else None
)
@loader.inline_handler(
thumb_url="https://img.icons8.com/external-others-inmotus-design/344/external-Moon-round-icons-others-inmotus-design-2.png"
)
@loader.inline_everyone
async def info(self, _: InlineQuery) -> dict:
"""Send userbot info"""
return {
"title": self.strings("send_info"),
"description": self.strings("description"),
**(
{"photo": self.config["banner_url"], "caption": self._render_info(True)}
if self.config["banner_url"]
else {"message": self._render_info(True)}
),
"thumb": (
"https://github.com/hikariatama/Hikka/raw/master/assets/hikka_pfp.png"
),
"reply_markup": self._get_mark(),
}
@loader.command(
ru_doc="Отправляет информацию о боте",
fr_doc="Envoie des informations sur le bot",
it_doc="Invia informazioni sul bot",
de_doc="Sendet Informationen über den Bot",
tr_doc="Bot hakkında bilgi gönderir",
uz_doc="Bot haqida ma'lumot yuboradi",
es_doc="Envía información sobre el bot",
kk_doc="Бот туралы ақпарат жібереді",
)
async def infocmd(self, message: Message):
"""Send userbot info"""
if self.config["custom_button"]:
await self.inline.form(
message=message,
text=self._render_info(True),
reply_markup=self._get_mark(),
**(
{"photo": self.config["banner_url"]}
if self.config["banner_url"]
else {}
),
)
else:
await utils.answer_file(
message,
self.config["banner_url"],
self._render_info(False),
)
@loader.command(
ru_doc="Отправить информацию по типу 'Что такое Хикка?'",
fr_doc="Envoyer des informations du type 'Qu'est-ce que Hikka?'",
it_doc="Invia informazioni del tipo 'Cosa è Hikka?'",
de_doc="Sende Informationen über den Bot",
tr_doc="Bot hakkında bilgi gönderir",
uz_doc="Bot haqida ma'lumot yuborish",
es_doc="Enviar información sobre el bot",
kk_doc="Бот туралы ақпарат жіберу",
)
async def hikkainfo(self, message: Message):
"""Send info aka 'What is Hikka?'"""
await utils.answer(message, self.strings("desc"))
@loader.command(
ru_doc="<текст> - Изменить текст в .info",
fr_doc=" - Changer le texte dans .info",
it_doc=" - Cambia il testo in .info",
de_doc=" - Ändere den Text in .info",
tr_doc=" - .info'da metni değiştir",
uz_doc=" - .info'dagi matnni o'zgartirish",
es_doc=" - Cambiar el texto en .info",
kk_doc="<мәтін> - .info мәтінін өзгерту",
)
async def setinfo(self, message: Message):
""" - Change text in .info"""
args = utils.get_args_html(message)
if not args:
return await utils.answer(message, self.strings("setinfo_no_args"))
self.config["custom_message"] = args
await utils.answer(message, self.strings("setinfo_success"))