-
Notifications
You must be signed in to change notification settings - Fork 0
/
AutoLoad.py
127 lines (102 loc) · 5.02 KB
/
AutoLoad.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
from .. import loader, utils
from telethon import TelegramClient
from telethon.tl.patched import Message
from telethon.tl.types import ChatBannedRights
from telethon.tl.functions.channels import EditBannedRequest
import os
@loader.tds
class AutoLoadMod(loader.Module):
"""Автозагрузка"""
strings = {'name': 'AutoLoad'}
async def client_ready(self, client: TelegramClient, db):
self.client = client
self.db = db
async def addusercmd(self, message: Message):
"""Добавить/исключить юзера из автозагрузки.\nИспользуй: .adduser <@ или реплай> или <list>."""
users = self.db.get("AutoLoad", "users", [])
args = utils.get_args_raw(message)
reply = await message.get_reply_message()
if not (args or reply):
return await message.edit("Нет аргументов или реплая")
if args == "list":
if not users:
return await message.edit("Список пуст")
msg = ""
for _ in users:
try:
user = await self.client.get_entity(_)
msg += f"• <a href=\"tg://user?id={user.id}\">{user.first_name}</a>\n"
except:
users.remove(_)
self.db.set("AutoLoad", "users", users)
return await message.edit("Произошла ошибка. Повтори команду")
return await message.edit(f"Список пользователей в автозагрузке:\n\n{msg}")
try:
user = await self.client.get_entity(reply.sender_id if reply else args if not args.isnumeric() else int(args))
except ValueError:
return await message.edit("Не удалось найти пользователя")
if user.id not in users:
users.append(user.id)
text = "добавлен"
else:
users.remove(user.id)
text = "удален"
self.db.set("AutoLoad", "users", users)
await message.edit(f"{user.first_name} был {text} в список автозагрузки")
async def addchatcmd(self, message: Message):
"""Добавить чат в список для автозагрузки.\nИспользуй: .addchat."""
chats = self.db.get("AutoLoad", "chats", [])
args = utils.get_args_raw(message)
chat_id = message.chat_id
if args == "list":
if not chats:
return await message.edit("Список пуст")
msg = ""
for _ in chats:
try:
chat = await self.client.get_entity(_)
msg += f"• {chat.title} | {chat.id}\n"
except:
chats.remove(_)
self.db.set("AutoLoad", "users", chats)
return await message.edit("Произошла ошибка. Повтори команду")
return await message.edit(f"Список чатов для автозагрузка:\n\n{msg}")
if message.is_private:
return await message.edit("Это не чат!")
if chat_id not in chats:
chats.append(chat_id)
text = "добавлен в"
else:
chats.remove(chat_id)
text = "удален из"
self.db.set("AutoLoad", "chats", chats)
return await message.edit(f"Этот чат был {text} списка чатов для автозагрузки")
async def addsaveChatcmd(self, message: Message):
"""NOT WORKED Добавить чат сохранение.\nИспользуй: .addsaveChat."""
chat = int(self.db.get("AutoLoad", "save", 0))
args = utils.get_args_raw(message)
chat_id = message.chat_id
print(message.chat_id)
if not chat_id == chat:
chat = chat_id
text = "добавлен в"
else:
chat = 0
text = "удален из"
self.db.set("AutoLoad", "chats", chat)
return await message.edit(f"Этот чат был {text} для сохранения")
async def watcher(self, message: Message):
users = self.db.get("AutoLoad", "users", [])
chats = self.db.get("AutoLoad", "chats", [])
user = message.sender if message.sender else None
chat_id = message.chat_id
if chat_id not in chats and chat_id not in users:
return
if message.media:
try:
save = await self.client.get_entity(-4222209239)
path = await self.client.download_media(message)
send = await self.client.send_file(save, path, caption=f"Self-destructing photo from {user.first_name if not user == None else 'None???'}")
os.remove(path)
except Exception as er:
await self.client.send_message('me', 'Error: '+str(er))