quickstart.py 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. if "RAILWAY" in os.environ:
  64. TEXT += (
  65. "🚂 <b>Your userbot is installed on Railway</b>. This platform has only <b>500"
  66. " free hours per month</b>. Once this limit is reached, your <b>Hikka will be"
  67. " frozen</b>. Next month <b>you will need to go to https://railway.app and"
  68. " restart it</b>."
  69. )
  70. TEXT_RU += (
  71. "🚂 <b>Твой юзербот установлен на Railway</b>. На этой платформе ты получаешь"
  72. " только <b>500 бесплатных часов в месяц</b>. Когда лимит будет достигнет, твой"
  73. " <b>юзербот будет заморожен</b>. В следующем месяце <b>ты должен будешь"
  74. " перейти на https://railway.app и перезапустить его</b>."
  75. )
  76. @loader.tds
  77. class QuickstartMod(loader.Module):
  78. """Notifies user about userbot installation"""
  79. strings = {"name": "Quickstart"}
  80. async def client_ready(self):
  81. if self._db.get("hikka", "disable_quickstart", False):
  82. raise loader.SelfUnload
  83. self.mark = (
  84. lambda lang: [
  85. [{"text": "🥷 Support chat", "url": "https://t.me/hikka_talks"}],
  86. [
  87. {
  88. "text": "🇷🇺 Изменить язык",
  89. "callback": self._change_lang,
  90. "args": ("ru",),
  91. }
  92. ],
  93. ]
  94. if lang == "en"
  95. else [
  96. [{"text": "🥷 Чат помощи", "url": "https://t.me/hikka_talks"}],
  97. [
  98. {
  99. "text": "🇬🇧 Switch language",
  100. "callback": self._change_lang,
  101. "args": ("en",),
  102. }
  103. ],
  104. ]
  105. )
  106. await self.inline.bot.send_animation(self._client.tg_id, animation=choice(imgs))
  107. await self.inline.bot.send_message(
  108. self._client.tg_id,
  109. TEXT,
  110. reply_markup=self.inline.generate_markup(self.mark("en")),
  111. disable_web_page_preview=True,
  112. )
  113. self._db.set("hikka", "disable_quickstart", True)
  114. async def _change_lang(self, call: BotInlineCall, lang: str):
  115. if lang == "ru":
  116. self._db.set(translations.__name__, "lang", "ru")
  117. await self.translator.init()
  118. await call.answer("🇷🇺 Язык сохранен!")
  119. await call.edit(text=TEXT_RU, reply_markup=self.mark("ru"))
  120. elif lang == "en":
  121. self._db.set(translations.__name__, "lang", "en")
  122. await self.translator.init()
  123. await call.answer("🇬🇧 Language saved!")
  124. await call.edit(text=TEXT, reply_markup=self.mark("en"))