upd logging, refactor manual del, ban, unban

This commit is contained in:
Rykov7
2022-11-28 12:20:02 +03:00
parent 79777a452b
commit 3e85722ccd
+17 -17
View File
@@ -17,7 +17,7 @@ from .me import get_me
logging.basicConfig(level=logging.INFO, format='%(message)s') logging.basicConfig(level=logging.INFO, format='%(message)s')
app = Flask(__name__) app = Flask(__name__)
print(">>> LutzBot is running! <<<") print(">>> PYBOT IS RUNNING!")
zen_rows = ['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', zen_rows = ['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.',
'Complex is better than complicated.', 'Flat is better than nested.', 'Sparse is better than dense.', 'Complex is better than complicated.', 'Flat is better than nested.', 'Sparse is better than dense.',
@@ -32,7 +32,7 @@ zen_rows = ['Beautiful is better than ugly.', 'Explicit is better than implicit.
"Namespaces are one honking great idea — let's do more of those!"] "Namespaces are one honking great idea — let's do more of those!"]
if trolling: if trolling:
print('trolling loaded') pass
def check_spam_list(type_message: types.Message) -> bool: def check_spam_list(type_message: types.Message) -> bool:
@@ -48,7 +48,7 @@ def check_spam_list(type_message: types.Message) -> bool:
@bot.message_handler(func=check_spam_list) @bot.message_handler(func=check_spam_list)
def moderate_messages(message: types.Message): def moderate_messages(message: types.Message):
""" Ban user and delete their message. """ """ Ban user and delete their message. """
logging.warning(f'Banned: {message.from_user.first_name} - {message.text}') logging.warning(f'[BAN] {message.from_user.first_name} - {message.text}')
bot.delete_message(message.chat.id, message.id) bot.delete_message(message.chat.id, message.id)
bot.ban_chat_member(message.chat.id, message.from_user.id) bot.ban_chat_member(message.chat.id, message.from_user.id)
if message.chat.id == PYTHONCHATRU: if message.chat.id == PYTHONCHATRU:
@@ -67,7 +67,7 @@ def check_caption_spam_list(type_message: types.Message) -> bool:
@bot.message_handler(func=check_caption_spam_list, content_types=['video']) @bot.message_handler(func=check_caption_spam_list, content_types=['video'])
def catch_videos(message: types.Message): def catch_videos(message: types.Message):
"""Catch offensive videos""" """Catch offensive videos"""
logging.warning(f'Banned: {message.from_user.first_name} - {message.video.file_name}') logging.warning(f'[BAN] {message.from_user.first_name} - {message.video.file_name}')
bot.delete_message(message.chat.id, message.id) bot.delete_message(message.chat.id, message.id)
bot.ban_chat_member(message.chat.id, message.from_user.id) bot.ban_chat_member(message.chat.id, message.from_user.id)
with shelve.open('chat_stats') as chat_stats: with shelve.open('chat_stats') as chat_stats:
@@ -84,12 +84,12 @@ def check_no_allowed(word_list, msg):
def check_delete_list(type_message: types.Message) -> bool: def check_delete_list(type_message: types.Message) -> bool:
""" Check for URLs in message and delete. """ """ Check for URLs in message and delete. """
if URL_RX.search(type_message.text) and check_no_allowed(ALLOWED_WORDS, type_message.text): if URL_RX.search(type_message.text) and check_no_allowed(ALLOWED_WORDS, type_message.text):
logging.info(f'Deleted: {type_message.from_user.first_name} - {type_message.text}') logging.info(f'[DEL] {type_message.from_user.first_name} - {type_message.text}')
return True return True
if type_message.entities: if type_message.entities:
for entity in type_message.entities: for entity in type_message.entities:
if entity.url and check_no_allowed(ALLOWED_WORDS, entity.url): if entity.url and check_no_allowed(ALLOWED_WORDS, entity.url):
logging.info(f'Deleted: {type_message.from_user.first_name} - {entity.url}') logging.info(f'[DEL] {type_message.from_user.first_name} - {entity.url}')
return True return True
@@ -215,23 +215,23 @@ def check_chat(message: types.Message):
return True return True
@bot.message_handler(func=lambda a: a.from_user.id == ADMIN_ID and a.text.split()[0] in ('!del', '!ban', '!unban')) @bot.message_handler(func=lambda a: a.from_user.id == ADMIN_ID, commands=['pydel', 'pyban', 'unban_id'])
def admin_panel(message: types.Message): def admin_panel(message: types.Message):
""" Admin panel. """ """ Admin panel. """
if message.text == '!del': if message.text == '/pydel' and message.reply_to_message:
bot.delete_message(message.chat.id, message.reply_to_message.id)
bot.delete_message(message.chat.id, message.id) bot.delete_message(message.chat.id, message.id)
elif message.text == '!ban':
bot.delete_message(message.chat.id, message.reply_to_message.id) bot.delete_message(message.chat.id, message.reply_to_message.id)
logging.warning(
f'[DEL (M)] {message.reply_to_message.from_user.first_name} - {message.reply_to_message.text}')
elif message.text == '/pyban' and message.reply_to_message:
bot.delete_message(message.chat.id, message.id) bot.delete_message(message.chat.id, message.id)
bot.delete_message(message.chat.id, message.reply_to_message.id)
bot.ban_chat_member(message.chat.id, message.reply_to_message.from_user.id) bot.ban_chat_member(message.chat.id, message.reply_to_message.from_user.id)
elif message.text.split()[0] == '!unban': logging.warning(f'[BAN (M)] {message.from_user.first_name} - {message.text}')
try: elif message.text.split()[0] == '/unban_id' and message.text.split()[-1].isdigit():
user_id = int(message.text.split()[1]) unban_id = int(message.text.split()[-1])
except ValueError: bot.unban_chat_member(PYTHONCHATRU, unban_id)
print(f'User ID must be integer. Got: {message.text.split()[1]}') logging.warning(f'[UNBAN (M)] {unban_id}')
else:
bot.unban_chat_member(PYTHONCHATRU, user_id)
@bot.message_handler(func=check_chat, content_types=['text', 'sticker', 'photo', 'animation', 'video', @bot.message_handler(func=check_chat, content_types=['text', 'sticker', 'photo', 'animation', 'video',