-
Notifications
You must be signed in to change notification settings - Fork 0
/
welcome.py
73 lines (63 loc) · 3.96 KB
/
welcome.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from .. import loader, utils
@loader.tds
class WelcomeMod(loader.Module):
"""Приветствие новых пользователей в чате."""
strings = {'name': 'Welcome'}
async def client_ready(self, client, db):
self.db = db
self.client = client
async def welcomecmd(self, message):
"""Включить/выключить приветствие новых пользователей в чате. Используй: .welcome <clearall (по желанию)>."""
welcome = self.db.get("Welcome", "welcome", {})
chatid = str(message.chat_id)
args = utils.get_args_raw(message)
if args == "clearall":
self.db.set("Welcome", "welcome", {})
return await message.edit("<b>[Welcome Mode]</b> Все настройки модуля сброшены.")
if chatid in welcome:
welcome.pop(chatid)
self.db.set("Welcome", "welcome", welcome)
return await message.edit("<b>[Welcome Mode]</b> Деактивирован!")
welcome.setdefault(chatid, {})
welcome[chatid].setdefault("message", "Добро пожаловать в чат!")
welcome[chatid].setdefault("is_reply", False)
self.db.set("Welcome", "welcome", welcome)
await message.edit("<b>[Welcome Mode]</b> Активирован!")
async def setwelcomecmd(self, message):
"""Установить новое приветствие новых пользователей в чате.\nИспользуй: .setwelcome <текст (можно использовать {name}; {chat})>; ничего."""
welcome = self.db.get("Welcome", "welcome", {})
args = utils.get_args_raw(message)
reply = await message.get_reply_message()
chatid = str(message.chat_id)
chat = await message.client.get_entity(int(chatid))
try:
if not args and not reply:
return await message.edit(f'<b>Приветствие новых пользователей в "{chat.title}":</b>\n\n'
f'<b>Статус:</b> Включено.\n'
f'<b>Приветствие:</b> {welcome[chatid]["message"]}\n\n'
f'<b>~ Установить новое приветствие можно с помощью команды:</b> .setwelcome <текст>.')
else:
if reply:
welcome[chatid]["message"] = reply.id
welcome[chatid]["is_reply"] = True
else:
welcome[chatid]["message"] = args
welcome[chatid]["is_reply"] = False
self.db.set("Welcome", "welcome", welcome)
return await message.edit("<b>Новое приветствие установлено успешно!</b>")
except KeyError: return await message.edit(f'<b>Приветствие новых пользователей в "{chat.title}":</b>\n\n'
f'<b>Статус:</b> Отключено')
async def watcher(self, message):
"""Интересно, почему он именно watcher называется... 🤔"""
try:
welcome = self.db.get("Welcome", "welcome", {})
chatid = str(message.chat_id)
if chatid not in welcome: return
if message.user_joined or message.user_added:
user = await message.get_user()
chat = await message.get_chat()
if welcome[chatid]["is_reply"] == False:
return await message.reply((welcome[chatid]["message"]).format(name=user.first_name, chat=chat.title))
msg = await self.client.get_messages(int(chatid), ids=welcome[chatid]["message"])
await message.reply(msg)
except: pass