1.0.6: Add welcome message, triggered on userbot is installed

pull/1/head
hikari.ftg 2022-03-27 17:52:36 +00:00
parent ae2acaa9e2
commit 3fde53f5f4
5 changed files with 143 additions and 12 deletions

View File

@ -196,7 +196,9 @@ async def custom_back_handler(
self._galleries[gallery_uid]["current_index"] = 0
self._galleries[gallery_uid]["current_index"] -= 1
new_url = self._galleries[gallery_uid]["photos"][self._galleries[gallery_uid]["current_index"]]
new_url = self._galleries[gallery_uid]["photos"][
self._galleries[gallery_uid]["current_index"]
]
markup = InlineKeyboardMarkup()
markup.add(
@ -251,7 +253,9 @@ async def custom_next_handler(
) -> None:
if self._galleries[gallery_uid]["current_index"] < -1:
self._galleries[gallery_uid]["current_index"] += 1
new_url = self._galleries[gallery_uid]["photos"][self._galleries[gallery_uid]["current_index"]]
new_url = self._galleries[gallery_uid]["photos"][
self._galleries[gallery_uid]["current_index"]
]
else:
try:
new_url = await func()
@ -270,9 +274,9 @@ async def custom_next_handler(
self._galleries[gallery_uid]["photos"] += [new_url]
if len(self._galleries[gallery_uid]["photos"]) > 15:
self._galleries[gallery_uid]["photos"] = self._galleries[gallery_uid]["photos"][
-15:
]
self._galleries[gallery_uid]["photos"] = self._galleries[gallery_uid][
"photos"
][-15:]
markup = InlineKeyboardMarkup()
markup.add(
@ -1020,9 +1024,15 @@ class InlineManager:
):
markup = InlineKeyboardMarkup()
markup.add(
InlineKeyboardButton("⬅️", callback_data=gallery["btn_call_data"][0]),
InlineKeyboardButton("", callback_data=gallery["btn_call_data"][1]),
InlineKeyboardButton("➡️", callback_data=gallery["btn_call_data"][2]),
InlineKeyboardButton(
"⬅️", callback_data=gallery["btn_call_data"][0]
),
InlineKeyboardButton(
"", callback_data=gallery["btn_call_data"][1]
),
InlineKeyboardButton(
"➡️", callback_data=gallery["btn_call_data"][2]
),
)
caption = gallery["caption"]

View File

@ -226,7 +226,7 @@ class Modules:
self._initial_registration = True
self.added_modules = None
def register_all(self, mods=None):
def register_all(self, db, mods=None):
"""Load all modules in the module directory"""
if self._compat_layer is None:
from . import compat # noqa
@ -242,6 +242,7 @@ class Modules:
and x[-3:] == ".py"
and x[0] != "_"
and ("OKTETO" in os.environ or x != "okteto.py")
and (not db.get("hikka", "disable_quickstart", False) or x != "quickstart.py")
),
os.listdir(os.path.join(utils.get_base_dir(), MODULES_NAME)),
)

View File

@ -524,7 +524,7 @@ class Hikka:
babelfish = Translator([], [], self.arguments.data_root)
await babelfish.init(client)
modules.register_all()
modules.register_all(db)
modules.send_config(db, babelfish)
await modules.send_ready(client, db, self.clients)
@ -594,7 +594,7 @@ class Hikka:
if not web_only:
await self._add_dispatcher(client, modules, db)
modules.register_all(to_load)
modules.register_all(db, to_load)
modules.send_config(db, babelfish)
await modules.send_ready(client, db, self.clients)

View File

@ -0,0 +1,120 @@
# █ █ ▀ █▄▀ ▄▀█ █▀█ ▀ ▄▀█ ▀█▀ ▄▀█ █▀▄▀█ ▄▀█
# █▀█ █ █ █ █▀█ █▀▄ █ ▄ █▀█ █ █▀█ █ ▀ █ █▀█
#
# © Copyright 2022
#
# https://t.me/hikariatama
#
# 🔒 Licensed under the GNU GPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
from .. import loader
import logging
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery
from random import choice
logger = logging.getLogger(__name__)
imgs = [
"https://pa1.narvii.com/6644/16e88ec137d2ad2583937e7909b6a166c70f3f2a_hq.gif",
"https://c.tenor.com/O3qIam1dAQQAAAAC/hug-cuddle.gif",
"https://pa1.narvii.com/6853/8efac13a077dac28e6a500a5dd2a7f97dec668fd_hq.gif",
"https://static.tumblr.com/ef1af4bfc7f5a5be30a24539d536e1ce/cehtffd/k3Hpiifhs/tumblr_static_tumblr_static__focused_v3.gif",
"https://i.gifer.com/W9IO.gif",
"https://c.tenor.com/6w7XKLSqFEUAAAAC/anime-hug.gif",
"https://i2.wp.com/metanorn.net/wp-content/uploads/2011/08/NS3-04b.gif",
]
@loader.tds
class QuickstartMod(loader.Module):
"""Notifies user about userbot installation"""
strings = {
"name": "Quickstart",
"quickstart": "👩‍🎤🇬🇧 <b>Hello.</b> You've just installed <b>Hikka</b> userbot.\n\n❓ <b>Need help?</b> Feel free to join our support chat. We help <b>everyone</b>.\n\n📼 <b>Official modules sources: </b>\n▫️ @hikarimods\n▫️ @hikarimods_database\n▫️ <code>.dlmod</code>",
"quickstart_ru": "👩‍🎤🇷🇺 <b>Привет.</b> Твой юзербот <b>Hikka</b> установлен.\n\n❓ <b>Нужна помощь?</b> Вступай в наш чат поддержки. Мы помогаем <b>всем</b>\n\n📼 <b>Официальные источники модулей: </b>\n▫️ @hikarimods\n▫️ @hikarimods_database\n▫️ <code>.dlmod</code>",
}
def get(self, *args) -> dict:
return self._db.get(self.strings["name"], *args)
def set(self, *args) -> None:
return self._db.set(self.strings["name"], *args)
async def client_ready(self, client, db) -> None:
self._me = (await client.get_me()).id
mark = InlineKeyboardMarkup()
mark.add(
InlineKeyboardButton(
"🥷 Support chat",
url="https://t.me/hikka_talks",
),
)
mark.add(
InlineKeyboardButton(
"🇷🇺 Русский",
callback_data="hikka_qs_sw_lng_ru",
),
)
await self.inline.bot.send_animation(
self._me,
animation=choice(imgs),
caption=self.strings("quickstart"),
parse_mode="HTML",
reply_markup=mark,
)
db.set("hikka", "disable_quickstart", True)
async def quickstart_callback_handler(self, call: CallbackQuery) -> None:
if not call.data.startswith("hikka_qs_sw_lng_"):
return
lang = call.data.split("_")[-1]
if lang == "ru":
mark = InlineKeyboardMarkup()
mark.add(
InlineKeyboardButton(
"🥷 Чат помощи",
url="https://t.me/hikka_talks",
),
)
mark.add(
InlineKeyboardButton(
"🇬🇧 English",
callback_data="hikka_qs_sw_lng_en",
),
)
await self.inline.bot.edit_message_caption(
chat_id=call.message.chat.id,
message_id=call.message.message_id,
caption=self.strings("quickstart_ru"),
parse_mode="HTML",
reply_markup=mark,
)
elif lang == "en":
mark = InlineKeyboardMarkup()
mark.add(
InlineKeyboardButton(
"🥷 Support chat",
url="https://t.me/hikka_talks",
),
)
mark.add(
InlineKeyboardButton(
"🇷🇺 Русский",
callback_data="hikka_qs_sw_lng_ru",
),
)
await self.inline.bot.edit_message_caption(
chat_id=call.message.chat.id,
message_id=call.message.message_id,
caption=self.strings("quickstart"),
parse_mode="HTML",
reply_markup=mark,
)

View File

@ -1 +1 @@
__version__ = (1, 0, 5)
__version__ = (1, 0, 6)