remove redundant content_types, add /tsya command, upd report
This commit is contained in:
+14
-8
@@ -48,11 +48,11 @@ def check_spam_list(type_message: types.Message) -> bool:
|
||||
return True
|
||||
|
||||
|
||||
@bot.message_handler(func=check_spam_list, content_types=['text'])
|
||||
@bot.message_handler(func=check_spam_list)
|
||||
def moderate_messages(message: types.Message):
|
||||
""" Ban user and delete their message. """
|
||||
warn = bot.send_message(message.chat.id,
|
||||
f'♻ <a href="tg://user?id={message.from_user.id}">{message.from_user.first_name}</a>'
|
||||
f'👮🏼 <a href="tg://user?id={message.from_user.id}">{message.from_user.first_name}</a>'
|
||||
f' заблокирован (запрещённые ссылки).', parse_mode='HTML')
|
||||
Thread(target=wait_for_readers, args=(bot.delete_message, message.chat.id, warn.id)).start()
|
||||
bot.ban_chat_member(message.chat.id, message.from_user.id)
|
||||
@@ -74,7 +74,8 @@ def check_caption_spam_list(type_message: types.Message) -> bool:
|
||||
@bot.message_handler(func=check_caption_spam_list, content_types=['video'])
|
||||
def catch_videos(message: types.Message):
|
||||
"""Catch offensive videos"""
|
||||
warn = bot.send_message(message.chat.id, f'♻ <a href="tg://user?id={message.from_user.id}">{message.from_user.first_name}</a> заблокирован (наркотики).')
|
||||
warn = bot.send_message(message.chat.id,
|
||||
f'👮🏼 <a href="tg://user?id={message.from_user.id}">{message.from_user.first_name}</a> заблокирован (наркотики).')
|
||||
bot.delete_message(message.chat.id, message.id)
|
||||
bot.ban_chat_member(message.chat.id, message.from_user.id)
|
||||
Thread(target=wait_for_readers, args=(bot.delete_message, message.chat.id, warn.id)).start()
|
||||
@@ -94,7 +95,7 @@ def check_delete_list(type_message: types.Message) -> bool:
|
||||
return True
|
||||
|
||||
|
||||
@bot.message_handler(func=check_delete_list, content_types=['text'])
|
||||
@bot.message_handler(func=check_delete_list)
|
||||
def delete_message(message: types.Message):
|
||||
""" Delete unwanted message. """
|
||||
bot.delete_message(message.chat.id, message.id)
|
||||
@@ -231,7 +232,7 @@ def check_unwanted_list(type_message: types.Message) -> bool:
|
||||
return True
|
||||
|
||||
|
||||
@bot.message_handler(func=check_unwanted_list, content_types=['text'])
|
||||
@bot.message_handler(func=check_unwanted_list)
|
||||
def unwanted_mentions(message: types.Message):
|
||||
""" Reply to unwanted mentions. """
|
||||
bot.reply_to(message, f'У нас таких не любят! 🥴', parse_mode='HTML')
|
||||
@@ -242,9 +243,7 @@ def check_chat(message: types.Message):
|
||||
return True
|
||||
|
||||
|
||||
@bot.message_handler(
|
||||
func=lambda a: a.from_user.id == ADMIN_ID and a.text.split()[0] in ('!del', '!ban', '!unban'),
|
||||
content_types=['text'])
|
||||
@bot.message_handler(func=lambda a: a.from_user.id == ADMIN_ID and a.text.split()[0] in ('!del', '!ban', '!unban'))
|
||||
def admin_panel(message: types.Message):
|
||||
""" Admin panel. """
|
||||
if message.text == '!del':
|
||||
@@ -263,6 +262,13 @@ def admin_panel(message: types.Message):
|
||||
bot.unban_chat_member(message.chat.id, user_id)
|
||||
|
||||
|
||||
@bot.message_handler(commands=['tsya'])
|
||||
def send_tsya_link(message: types.Message):
|
||||
if message.reply_to_message:
|
||||
bot.reply_to(message.reply_to_message, '<a href="https://tsya.ru/">-ТСЯ/-ТЬСЯ</a>', parse_mode='HTML',
|
||||
disable_web_page_preview=True)
|
||||
|
||||
|
||||
@bot.message_handler(func=check_chat, content_types=['text', 'sticker', 'photo', 'animation', 'video',
|
||||
'audio', 'document'])
|
||||
def unwanted_mentions(message: types.Message):
|
||||
|
||||
+5
-6
@@ -5,19 +5,18 @@ def create_report_text():
|
||||
with shelve.open('chat_stats') as s:
|
||||
text = ''
|
||||
flooders = []
|
||||
for n in range(min(5, len(s['Messages']))):
|
||||
for n in range(min(3, len(s['Messages']))):
|
||||
flooders.append(
|
||||
s['Messages'][sorted(s['Messages'], key=lambda a: s['Messages'][a]['Count'], reverse=True)[n]])
|
||||
|
||||
for i, flooder in enumerate(flooders):
|
||||
user = flooder['User']
|
||||
count = flooder['Count']
|
||||
user = flooder["User"]
|
||||
name = f"{user.first_name} {user.last_name}" if user.last_name else user.first_name
|
||||
text += f'\n {i + 1}. <a href="tg://user?id={user.id}">{name}</a> ({count})'
|
||||
text += f'\n {i + 1}. <a href="tg://user?id={user.id}">{name}</a> ({flooder["Count"]})'
|
||||
report = f"""<code>Доброе утро, Мир!</code>
|
||||
<b>За прошедшие сутки</b>
|
||||
<b>За прошлые сутки</b>
|
||||
|
||||
<b>Заблокировано</b> 👮🏼
|
||||
<b>Заблокировано</b>
|
||||
├ <b>Пользователей: </b>{s['Banned']}
|
||||
└ <b>Сообщений: </b>{s['Deleted']}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user