-
Notifications
You must be signed in to change notification settings - Fork 4
/
AntiMat.py
132 lines (112 loc) · 5.75 KB
/
AntiMat.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
128
129
130
131
132
__version__ = (1, 3, 0)
#
# @@@@@@ @@@@@@ @@@@@@@ @@@@@@@ @@@@@@ @@@@@@@@@@ @@@@@@ @@@@@@@ @@@ @@@ @@@ @@@@@@@@ @@@@@@
# @@@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@@@@ @@@@@@@@ @@@@@@@@ @@@ @@@ @@@ @@@@@@@@ @@@@@@@
# @@! @@@ !@@ @@! @@! @@@ @@! @@@ @@! @@! @@! @@! @@@ @@! @@@ @@! @@@ @@! @@! !@@
# !@! @!@ !@! !@! !@! @!@ !@! @!@ !@! !@! !@! !@! @!@ !@! @!@ !@! @!@ !@! !@! !@!
# @!@!@!@! !!@@!! @!! @!@!!@! @!@ !@! @!! !!@ @!@ @!@ !@! @!@ !@! @!@ !@! @!! @!!!:! !!@@!!
# !!!@!!!! !!@!!! !!! !!@!@! !@! !!! !@! ! !@! !@! !!! !@! !!! !@! !!! !!! !!!!!: !!@!!!
# !!: !!! !:! !!: !!: :!! !!: !!! !!: !!: !!: !!! !!: !!! !!: !!! !!: !!: !:!
# :!: !:! !:! :!: :!: !:! :!: !:! :!: :!: :!: !:! :!: !:! :!: !:! :!: :!: !:!
# :: ::: :::: :: :: :: ::: ::::: :: ::: :: ::::: :: :::: :: ::::: :: :: :::: :: :::: :::: ::
# : : : :: : : : : : : : : : : : : : : :: : : : : : : :: : : : :: :: :: : :
#
# © Copyright 2024
#
# https://t.me/Den4ikSuperOstryyPer4ik
# and
# https://t.me/ToXicUse
#
# 🔒 Licensed under the GNU AGPLv3
# https://www.gnu.org/licenses/agpl-3.0.html
#
# meta banner: https://raw.githubusercontent.com/Den4ikSuperOstryyPer4ik/Astro-modules/main/Banners/AntiMat.jpg
# meta developer: @AstroModules
from telethon.tl.types import Message
from .. import loader, utils
class AntiMatMod(loader.Module):
'''Будьте культурным человеком, не материтесь'''
strings = {
"name": "Анти-Мат",
"am_on": "🤬 <b>Антимат включен.</b>",
"am_off": "🤬 <b>Антимат отключен.</b>",
"action_text": "Какое действие выполнять при обнаружении мата в сообщении?",
"list_txt": "Здесь вы можете добавить свои маты.\np.s.: добавляйте по одному мату",
"added": "<b><emoji document_id=5030749344752468962>➕</emoji> Чат успешно добавлен в антимат систему</b>",
"uadded": "<b><emoji document_id=5033287275287413303>🗑</emoji> Чат успешно удален из системы антимат</b>",
}
async def client_ready(self):
self.chats = self.get("active", [])
def __init__(self):
self.config = loader.ModuleConfig(
loader.ConfigValue(
"list",
"хер, хрен, хуй, пизда, бля, пох, еблан, еба, шлюха, сука, уебан, пздц, пиздец, пиздос, хую, долбоеб, пидор, гандон, хуя",
doc=lambda: self.strings("list_txt"),
validator=loader.validators.Series()
),
)
@loader.command()
async def antimat(self, message: Message):
'''- активировать или диактивировать АнтиМат'''
antimat = self.db.get(
"am_status",
"antimat",
)
if antimat == "":
self.db.set("am_status", "antimat", False)
if antimat == False:
self.db.set("am_status", "antimat", True)
await utils.answer(message, self.strings("am_on"))
else:
self.db.set("am_status", "antimat", False)
await utils.answer(message, self.strings("am_off"))
@loader.command()
async def matlist(self, message: Message):
"""- открыть список матов"""
await self.allmodules.commands["config"](
await utils.answer(message, f"{self.get_prefix()}config Анти-Мат")
)
@loader.command()
async def amchatcmd(self, message: Message):
"""- запретить/разрешить чату выражаться нецензурой"""
amc = str(utils.get_chat_id(message))
if amc in self.chats:
self.chats.remove(amc)
await utils.answer(message, self.strings("uadded"))
else:
self.chats += [amc]
await utils.answer(message, self.strings("added"))
self.set("active", self.chats)
@loader.watcher()
async def watcher_out(self, message: Message):
if getattr(message, "out", True):
return
cid = str(utils.get_chat_id(message))
txt = message.text
antimat = self.db.get(
"am_status",
"antimat",
)
mats = self.config['list']
if antimat:
if cid in self.chats:
for mat in mats:
m = txt.lower().find(mat)
if m != -1:
await utils.answer(message, "<emoji document_id=5213285132709929474>🤬</emoji> <b>Не матерись!</b>")
@loader.watcher()
async def watcher_in(self, message: Message):
if not getattr(message, "out", True):
return
txt: str = message.text
antimat = self.db.get(
"am_status",
"antimat",
)
mats = self.config['list']
if antimat:
for mat in mats:
m = txt.lower().find(mat)
if m != -1:
await message.edit("<emoji document_id=5213285132709929474>🤬</emoji> <b>Не матерись!</b>")