Как добавить исключения для бота ,чтобы он не удалял сообщения с ссылками от администратора
Добавил код для бота ,чтобы он удалял все сообщения с ссылками, как можно добавить исключение, чтобы он не удалял сообщения с ссылками от администратора группы?
@bot.message_handler(func=lambda message: message.entities is not None and message.chat.id == GROUP_ID)
def delete_links(message):
for entity in message.entities:
if entity.type in ["url", "text_link"]:
bot.delete_message(message.chat.id, message.message_id)
else:
return
Ответы (2 шт):
Теоретически вы можете просто добавить вот такую проверку в функцию:
if message.author != 'your username':
А также разрешения, отправленные автором сообщения, могут быть повторно получены методом message.author.permissions_in . Он принимает объект канала в качестве параметра и возвращает список объектов разрешений, поэтому вам нужно только проверить, есть ли в нем разрешение администратора. Кроме того, роли, которые автор отправил сообщение, хранятся в message.author.roles . Это просто список с объектами ролей, чтобы вы могли проверить, есть ли в нем роль администратора.
Учитывая ваш код, то должно быть примерно так:
@bot.message_handler(func=lambda message: message.entities is not None and message.chat.id == GROUP_ID)
def delete_links(message):
for entity in message.entities:
if entity.type in ["url", "text_link"]:
if message.author != 'your username':
bot.delete_message(message.chat.id, message.message_id)
else:
return