forked from KeyZenD/modules
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMegaMozg.py
More file actions
64 lines (54 loc) · 2.58 KB
/
MegaMozg.py
File metadata and controls
64 lines (54 loc) · 2.58 KB
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
import random
from telethon import types
from .. import loader, utils
@loader.tds
class MegaMozgMod(loader.Module):
strings = {
'name': 'MegaMozg',
'pref': '<b>[MegaMozg]</b> ',
'on': '{}Включён',
'off': '{}Выключен',
'need_arg': '{}Нужен аргумент',
'status': '{}{}',
}
_db_name = 'MegaMozg'
async def client_ready(self, _, db):
self.db = db
@staticmethod
def str2bool(v):
return v.lower() in ("yes", "y", "ye", "yea", "true", "t", "1", "on", "enable", "start", "run", "go", "да")
async def mozgcmd(self, m: types.Message):
'.mozg - Включить режим дурачка'
if not m.chat:
return
chat = m.chat.id
chats: list = self.db.get(self._db_name, 'chats', [])
if chat not in chats:
chats.append(chat)
self.db.set(self._db_name, 'chats', chats)
return await utils.answer(m, self.strings('on').format(self.strings('pref')))
async def mozgchancecmd(self, m: types.Message):
'.mozgchance <int> - Установить шанс 1 к N. 0 - всегда отвечать'
args: str = utils.get_args_raw(m)
if args.isdigit():
self.db.set(self._db_name, 'chance', int(args))
return await utils.answer(m, self.strings('status').format(self.strings('pref'), args))
return await utils.answer(m, self.strings('need_arg').format(self.strings('pref')))
async def watcher(self, m: types.Message):
if not isinstance(m, types.Message):
return
if m.sender_id == (await m.client.get_me()).id or not m.chat:
return
if m.chat.id not in self.db.get(self._db_name, 'chats', []):
return
# Получаем старые сообщения чата (можно изменить лимит, если нужно больше сообщений)
msgs = []
async for message in m.client.iter_messages(m.chat.id, limit=50): # Получаем последние 50 сообщений
if message.text:
msgs.append(message.text)
if not msgs:
return # Если сообщений нет, ничего не отправляем
# Выбираем случайное сообщение из истории чата
random_message = random.choice(msgs)
# Отправляем выбранное сообщение в ответ
await m.reply(random_message)