# █ █ ▀ █▄▀ ▄▀█ █▀█ ▀
# █▀█ █ █ █ █▀█ █▀▄ █
# © Copyright 2022
# https://t.me/hikariatama
#
# 🔒 Licensed under the GNU AGPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
import os
from random import choice
import logging
from .. import loader, translations, utils
from ..inline.types import BotInlineCall
logger = logging.getLogger(__name__)
imgs = [
"https://i.gifer.com/GmUB.gif",
"https://i.gifer.com/Afdn.gif",
"https://i.gifer.com/3uvT.gif",
"https://i.gifer.com/2qQQ.gif",
"https://i.gifer.com/Lym6.gif",
"https://i.gifer.com/IjT4.gif",
"https://i.gifer.com/A9H.gif",
]
@loader.tds
class QuickstartMod(loader.Module):
"""Notifies user about userbot installation"""
strings = {
"name": "Quickstart",
"base": """🌘🇬🇧 Hello. You've just installed Hikka userbot.
❓ Need help? Feel free to join our support chat. We help everyone.
📼 You can find and install modules using @hikkamods_bot. Simply enter your search query and click ⛩ Install on needed module
📣 Check out community made channels with modules: show
💁♀️ Quickstart:
1️⃣ Type .help
to see modules list
2️⃣ Type .help <ModuleName/command>
to see help of module ModuleName
3️⃣ Type .dlmod <link>
to load module from link
4️⃣ Type .loadmod
with reply to file to install module from it
5️⃣ Type .unloadmod <ModuleName>
to unload module ModuleName
💡 Hikka supports modules from Friendly-Telegram and GeekTG, as well as its own ones.""",
"okteto": (
"☁️ Your userbot is installed on Okteto. You will get notifications"
" from @WebpageBot. Do not block him."
),
"railway": (
"🚂 Your userbot is installed on Railway. This platform has only"
" 500 free hours per month. Once this limit is reached, your"
" Hikka will be frozen. Next month you will need to go to"
" https://railway.app and restart it."
),
"language_saved": "🇬🇧 Language saved!",
"language": "🇬🇧 English",
}
strings_ru = {
"base": """🌘🇷🇺 Привет. Твой юзербот Hikka установлен.
❓ Нужна помощь? Вступай в наш чат поддержки. Мы помогаем всем.
📼 Ты можешь искать и устанавливать модули через @hikkamods_bot. Просто введи поисковый запрос и нажми ⛩ Install на нужном модуле
📣 Загляни в каналы с модулями, созданными комьюнити: показать
💁♀️ Быстрый гайд:
1️⃣ Напиши .help
чтобы увидеть список модулей
2️⃣ Напиши .help <Название модуля/команда>
чтобы увидеть описание модуля
3️⃣ Напиши .dlmod <ссылка>
чтобы загрузить модуль из ссылка
4️⃣ Напиши .loadmod
ответом на файл, чтобы загрузить модуль из него
5️⃣ Напиши .unloadmod <Название модуля>
чтобы выгрузить модуль
💡 Hikka поддерживает модули из Friendly-Telegram и GeekTG, а также свои собственные.
""",
"okteto": (
"☁️ Твой юзербот установлен на Okteto. Ты будешь получать"
" уведомления от @WebpageBot. Не блокируй его."
),
"railway": (
"🚂 Твой юзербот установлен на Railway. На этой платформе ты"
" получаешь только 500 бесплатных часов в месяц. Когда лимит будет"
" достигнет, твой юзербот будет заморожен. В следующем месяце ты"
" должен будешь перейти на https://railway.app и перезапустить его."
),
"language_saved": "🇷🇺 Язык сохранен!",
"language": "🇷🇺 Русский",
}
strings_de = {
"base": """🌘🇩🇪 Hallo. Dein Userbot Hikka ist installiert.
❓ Brauchst du Hilfe? Trete unserem Support-Chat bei. Wir helfen allen.
📼 Du kannst Module über @hikkamods_bot suchen und installieren. Gib einfach einen Suchbegriff ein und drücke auf ⛩ Install auf dem gewünschten Modul
📣 Schaue dir die Module-Kanäle an, die von der Community erstellt wurden: anzeigen
💁♀️ Schnellstart:
1️⃣ Schreibe .help
um eine Liste der Module zu sehen
2️⃣ Schreibe .help <Modulname/Befehl>
um die Beschreibung des Moduls zu sehen
3️⃣ Schreibe .dlmod <Link>
um ein Modul aus dem Link zu laden
4️⃣ Schreibe .loadmod
als Antwort auf eine Datei, um ein Modul aus der Datei zu laden
5️⃣ Schreibe .unloadmod <Modulname>
um ein Modul zu entladen
💡 Hikka unterstützt Module von Friendly-Telegram und GeekTG sowie eigene Module.
""",
"okteto": (
"☁️ Dein Userbot ist auf Okteto installiert. Du wirst"
" Benachrichtigungen von @WebpageBot erhalten. Blockiere ihn nicht."
),
"railway": (
"🚂 Dein Userbot ist auf Railway installiert. Du erhältst nur 500"
" kostenlose Stunden pro Monat auf dieser Plattform. Wenn das Limit"
" erreicht ist, wird dein Userbot eingefroren. Im nächsten Monat"
" musst du zu https://railway.app gehen und ihn neu starten."
),
"language_saved": "🇩🇪 Sprache gespeichert!",
"language": "🇩🇪 Deutsch",
}
strings_uz = {
"base": """🌘🇺🇿 Salom. Sizning Hikka userbotingiz o'rnatildi.
❓ Yordam kerakmi? Bizning qo'llab-quvvatlash chatingizga qo'shiling. Bizga hamma yordam bering.
📼 Siz @hikkamods_bot orqali modullarni qidirib va o'rnatishingiz mumkin. Faqat qidiruv so'zini kiriting va kerakli modulni ⛩ Install tugmasini bosing
📣 Bizning modullar kanallari bilan tanishing. Bizning jamoa tomonidan yaratilgan kanallarni ko'rish uchun bosing
💁♀️ Tezkor boshlash:
1️⃣ Modullar ro'yxatini ko'rish uchun .help
yozing
2️⃣ Modul haqida ma'lumot olish uchun .help <Modul nomi/Buyruq>
yozing
3️⃣ Modulni yuklash uchun .dlmod <Link>
modulni linkidan yuklash uchun yozing
4️⃣ Modulni yuklash uchun .loadmod
modulni fayldan yuklash uchun faylni javob qilib yozing
5️⃣ Modulni o'chirish uchun .unloadmod <Modul nomi>
yozing
💡 Hikka Friendly-Telegram va GeekTG modullarini hamda o'z modullarini qo'llab-quvvatlaydi.
""",
"okteto": (
"☁️ Sizning userbotingiz Okteto platformasida o'rnatilgan."
" Sizdan @WebpageBotga xabarlar keladi. Uni bloklashmaslik."
),
"railway": (
"🚂 Sizning userbotingiz Railway platformasida o'rnatilgan."
" Sizga bu platformada 500 ta bepul soat beriladi. Agar limit o'tgan"
" bo'lsa, userbotingiz bloklanadi. Keyingi oyda"
" https://railway.app ga o'tib, uni qayta ishga tushiring."
),
"language_saved": "🇺🇿 Til saqlandi!",
"language": "🇺🇿 O'zbekcha",
}
strings_tr = {
"base": """🌘🇹🇷 Merhaba. Hikka kullanıcı botunuz kuruldu.
❓ Yardıma mı ihtiyacınız var? Yardım grubumuza katılın. Bizimle her şeyi paylaşın.
📼 Modülleri @hikkamods_bot ile arayabilir ve kurabilirsiniz. Sadece bir arama kelimesi girin ve istediğiniz modüle ⛩ Install tuşuna basın
📣 Topluluk tarafından oluşturulan kanalları görün: göster
💁♀️ Hızlı başlangıç:
1️⃣ Modüller listesini görmek için .help
yazın
2️⃣ Modül hakkında bilgi almak için .help <Modul adı/Komut>
yazın
3️⃣ Bir bağlantıdan modül yüklemek için .dlmod <Link>
yazın
4️⃣ Bir modülü bir dosyadan yüklemek için .loadmod
bir dosyanın yanıtını yazın
5️⃣ Bir modülü kaldırmak için .unloadmod <Modul adı>
yazın
💡 Hikka Friendly-Telegram ve GeekTG modüllerini de dahil olmak üzere kendi modüllerini destekler.
""",
"okteto": (
"☁️ Kullanıcı botunuz Okteto'da kuruldu. @WebpageBot'dan mesajlar"
" alırsınız. Onları engellemeyin."
),
"railway": (
"🚂 Kullanıcı botunuz Railway'de kuruldu. Sizden 500 saat ücretsiz"
" saat alırsınız. Sınır aşıldığında, kullanıcı botunuz"
" engellenir. Gelecek ay, https://railway.app'a gidin ve onu yeniden"
" başlatın."
),
"language_saved": "🇹🇷 Dil kaydedildi!",
"language": "🇹🇷 Türkçe",
}
strings_hi = {
"base": """🌘🇮🇳 नमस्ते. आपका Hikka उपयोगकर्ता बॉट स्थापित किया गया है.
❓ क्या आपको मदद की आवश्यकता है? हमारे साथ मदद ग्रुप में शामिल हों. हम सब कुछ साझा करेंगे.
📼 मॉड्यूल्स को @hikkamods_bot से खोजें और इंस्टॉल करें. केवल एक खोज शब्द दर्ज करें और आपके लिए उपलब्ध मॉड्यूल पर ⛩ इंस्टॉल बटन पर क्लिक करें
📣 समुदाय द्वारा बनाए गए चैनल देखें: दिखाएं
💁♀️ त्वरित शुरुआत:
1️⃣ मॉड्यूलों की सूची देखने के लिए .help
टाइप करें
2️⃣ मॉड्यूल के बारे में जानकारी प्राप्त करने के लिए .help <मॉड्यूल नाम/कमांड>
टाइप करें
3️⃣ लिंक से मॉड्यूल इंस्टॉल करने के लिए .dlmod <लिंक>
टाइप करें
4️⃣ एक मॉड्यूल को फाइल से लोड करने के लिए .loadmod
एक फ़ाइल का उत्तर दर्ज करें
5️⃣ एक मॉड्यूल को हटाने के लिए .unloadmod <मॉड्यूल नाम>
टाइप करें
💡 अपने मॉड्यूल को समर्थित करने के लिए, Hikka Friendly-Telegram और GeekTG मॉड्यूल भी शामिल हैं.
""",
"okteto": (
"☁️ आपका उपयोगकर्ता बॉट Okteto पर स्थापित किया गया है. आपको"
" @WebpageBot से संदेश प्राप्त होते ही आपका उपयोगकर्ता बॉट अवरोधित कर"
" दिया जाएगा. अगले महीने, https://railway.app पर जाएं और इसे फिर से"
" शुरू करें."
),
"language_saved": "🇮🇳 भाषा सहेजा गया!",
"language": "🇮🇳 हिंदी",
}
async def client_ready(self):
if self.get("disable_quickstart"):
raise loader.SelfUnload
self.mark = lambda: [
[{"text": "🥷 Support chat", "url": "https://t.me/hikka_talks"}],
] + utils.chunks(
[
{
"text": (
getattr(self, f"strings_{lang}")
if lang != "en"
else self.strings._base_strings
)["language"],
"callback": self._change_lang,
"args": (lang,),
}
for lang in ["ru", "en", "uz", "tr", "hi", "de"]
],
2,
)
self.text = (
lambda: self.strings("base")
+ (self.strings("okteto") if "OKTETO" in os.environ else "")
+ (self.strings("railway") if "RAILWAY" in os.environ else "")
)
await self.inline.bot.send_animation(self._client.tg_id, animation=choice(imgs))
await self.inline.bot.send_message(
self._client.tg_id,
self.text(),
reply_markup=self.inline.generate_markup(self.mark()),
disable_web_page_preview=True,
)
self.set("disable_quickstart", True)
async def _change_lang(self, call: BotInlineCall, lang: str):
self._db.set(translations.__name__, "lang", lang)
await self.translator.init()
for module in self.allmodules.modules:
try:
module.config_complete(reload_dynamic_translate=True)
except Exception as e:
logger.debug("Can't complete dynamic translations reload of %s due to %s", module, e)
await call.answer(self.strings("language_saved"))
await call.edit(text=self.text(), reply_markup=self.mark())