From e24a3dc45e37aeda0b227f7284e3af0fc93ee30e Mon Sep 17 00:00:00 2001 From: t Date: Sat, 14 Oct 2023 18:44:15 +0300 Subject: [PATCH] Init. --- nolinks.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 nolinks.py diff --git a/nolinks.py b/nolinks.py new file mode 100644 index 0000000..381b79b --- /dev/null +++ b/nolinks.py @@ -0,0 +1,60 @@ +import telebot + +from telebot import types,util + +###### IMPORT TOKEN ###### + +import json + +with open('db.json', 'r') as openfile: + db = json.load(openfile) +bot = telebot.TeleBot(db['token']) + +############# FUNCTIONS ## + +def get_admins(message): + try: + if bot.get_chat(message.chat.id).type == "private": + return [] + else: + admins = bot.get_chat_administrators(chat_id=message.chat.id) + true_admins = [] + for i in admins: + if i.status == "creator" or i.can_restrict_members == True: + true_admins.append(i.user.id) + return true_admins + except: + catch_error(message) + return None + + +# Fix for anon admins, all anon (not premium) users == admins +def is_anon(message): + if message.from_user.username == "Channel_Bot" and message.from_user.is_premium == None: + return True + else: + return False + +########CATCH LINKS###### + +def catch(message): + try: + if message.from_user.id not in get_admins(message) and not is_anon(message): + if 'https://t.me/' in message.text or ( hasattr(message, 'entities') and hasattr(message.entities[0], 'url') and message.entities[0].url != None ): + bot.delete_message(message.chat.id, message.id) + bot.send_message(message.chat.id, f"Пользователь {telebot.util.user_link(message.from_user)} пытался отправить ссылку на группу/чат.", parse_mode='HTML') + except: + pass + + + +@bot.message_handler() +def catch_all_messages(message): + catch(message) + +@bot.edited_message_handler() +def catch_edited_messages(message): + catch(message) + + +bot.polling()