quickstart.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. # █ █ ▀ █▄▀ ▄▀█ █▀█ ▀
  2. # █▀█ █ █ █ █▀█ █▀▄ █
  3. # © Copyright 2022
  4. # https://t.me/hikariatama
  5. #
  6. # 🔒 Licensed under the GNU AGPLv3
  7. # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
  8. import logging
  9. import os
  10. from random import choice
  11. from .. import loader, translations
  12. from ..inline.types import BotInlineCall
  13. logger = logging.getLogger(__name__)
  14. imgs = [
  15. "https://i.gifer.com/GmUB.gif",
  16. "https://i.gifer.com/Afdn.gif",
  17. "https://i.gifer.com/3uvT.gif",
  18. "https://i.gifer.com/2qQQ.gif",
  19. "https://i.gifer.com/Lym6.gif",
  20. "https://i.gifer.com/IjT4.gif",
  21. "https://i.gifer.com/A9H.gif",
  22. ]
  23. TEXT = """🌘🇬🇧 <b>Hello.</b> You've just installed <b>Hikka</b> userbot.
  24. ❓ <b>Need help?</b> Feel free to join our support chat. We help <b>everyone</b>.
  25. 📼 <b>You can find and install modules using @hikkamods_bot. Simply enter your search query and click ⛩ Install on needed module</b>
  26. 📣 <b>Check out community made channels with modules: <a href="https://t.me/hikka_ub/126">show</a></b>
  27. 💁‍♀️ <b>Quickstart:</b>
  28. 1️⃣ <b>Type </b><code>.help</code> <b>to see modules list</b>
  29. 2️⃣ <b>Type </b><code>.help &lt;ModuleName/command&gt;</code> <b>to see help of module ModuleName</b>
  30. 3️⃣ <b>Type </b><code>.dlmod &lt;link&gt;</code> <b>to load module from link</b>
  31. 4️⃣ <b>Type </b><code>.loadmod</code> <b>with reply to file to install module from it</b>
  32. 5️⃣ <b>Type </b><code>.unloadmod &lt;ModuleName&gt;</code> <b>to unload module ModuleName</b>
  33. """
  34. TEXT_RU = """🌘🇷🇺 <b>Привет.</b> Твой юзербот <b>Hikka</b> установлен.
  35. ❓ <b>Нужна помощь?</b> Вступай в наш чат поддержки. Мы помогаем <b>всем</b>.
  36. 📼 <b>Ты можешь искать и устанавливать модули через @hikkamods_bot. Просто введи поисковый запрос и нажми ⛩ Install на нужном модуле</b>
  37. 📣 <b>Загляни в каналы с модулями, созданными комьюнити: <a href="https://t.me/hikka_ub/126">показать</a></b>
  38. 💁‍♀️ <b>Быстрый гайд:</b>
  39. 1️⃣ <b>Напиши </b><code>.help</code> <b>чтобы увидеть список модулей</b>
  40. 2️⃣ <b>Напиши </b><code>.help &lt;Название модуля/команда&gt;</code> <b>чтобы увидеть описание модуля</b>
  41. 3️⃣ <b>Напиши </b><code>.dlmod &lt;ссылка&gt;</code> <b>чтобы загрузить модуль из ссылка</b>
  42. 4️⃣ <b>Напиши </b><code>.loadmod</code> <b>ответом на файл, чтобы загрузить модуль из него</b>
  43. 5️⃣ <b>Напиши </b><code>.unloadmod &lt;Название модуля&gt;</code> <b>чтобы выгрузить модуль</b>
  44. """
  45. if "OKTETO" in os.environ:
  46. TEXT += (
  47. "☁️ <b>Your userbot is installed on Okteto</b>. You will get notifications from"
  48. " @WebpageBot. Do not block him."
  49. )
  50. TEXT_RU += (
  51. "☁️ <b>Твой юзербот установлен на Okteto</b>. Ты будешь получать уведомления от"
  52. " @WebpageBot. Не блокируй его."
  53. )
  54. if "DYNO" in os.environ:
  55. TEXT += (
  56. "♓️ <b>Your userbot is installed on Heroku</b>. You will get notifications from"
  57. " @WebpageBot. Do not block him."
  58. )
  59. TEXT_RU += (
  60. "♓️ <b>Твой юзербот установлен на Heroku</b>. Ты будешь получать уведомления от"
  61. " @WebpageBot. Не блокируй его."
  62. )
  63. @loader.tds
  64. class QuickstartMod(loader.Module):
  65. """Notifies user about userbot installation"""
  66. strings = {"name": "Quickstart"}
  67. async def client_ready(self, client, db):
  68. if db.get("hikka", "disable_quickstart", False):
  69. raise loader.SelfUnload
  70. self.mark = (
  71. lambda lang: [
  72. [{"text": "🥷 Support chat", "url": "https://t.me/hikka_talks"}],
  73. [
  74. {
  75. "text": "🇷🇺 Изменить язык",
  76. "callback": self._change_lang,
  77. "args": ("ru",),
  78. }
  79. ],
  80. ]
  81. if lang == "en"
  82. else [
  83. [{"text": "🥷 Чат помощи", "url": "https://t.me/hikka_talks"}],
  84. [
  85. {
  86. "text": "🇬🇧 Switch language",
  87. "callback": self._change_lang,
  88. "args": ("en",),
  89. }
  90. ],
  91. ]
  92. )
  93. await self.inline.bot.send_animation(client.tg_id, animation=choice(imgs))
  94. await self.inline.bot.send_message(
  95. client.tg_id,
  96. TEXT,
  97. reply_markup=self.inline.generate_markup(self.mark("en")),
  98. disable_web_page_preview=True,
  99. )
  100. db.set("hikka", "disable_quickstart", True)
  101. async def _change_lang(self, call: BotInlineCall, lang: str):
  102. if lang == "ru":
  103. self._db.set(translations.__name__, "lang", "ru")
  104. await self.translator.init()
  105. await call.answer("🇷🇺 Язык сохранен!")
  106. await call.edit(text=TEXT_RU, reply_markup=self.mark("ru"))
  107. elif lang == "en":
  108. self._db.set(translations.__name__, "lang", "en")
  109. await self.translator.init()
  110. await call.answer("🇬🇧 Language saved!")
  111. await call.edit(text=TEXT, reply_markup=self.mark("en"))