async def on_new_message(event): # TODO: exempt admins from locks name = event.raw_text snips = sql.get_chat_blacklist(event.chat_id) for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): try: await event.delete() except Exception as e: await event.reply("I do not have DELETE permission in this chat") sql.rm_from_blacklist(event.chat_id, snip.lower()) break
async def on_new_message(event): if await is_admin(event.client, event.chat_id, event.from_id): return if borg.me.id == event.from_id: return name = event.raw_text snips = sql.get_chat_blacklist(event.chat_id) for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): try: await event.delete() except Exception: await event.reply("I do not have DELETE permission in this chat") sql.rm_from_blacklist(event.chat_id, snip.lower()) break
async def on_delete_blacklist(event): text = event.pattern_match.group(1) to_unblacklist = list(set(trigger.strip() for trigger in text.split("\n") if trigger.strip())) successful = 0 for trigger in to_unblacklist: if sql.rm_from_blacklist(event.chat_id, trigger.lower()): successful += 1 await event.edit(f"Removed {successful} / {len(to_unblacklist)} from the blacklist")
async def on_new_message(event): chat = await event.get_chat() if chat.admin_rights or chat.creator: # blacklist should not be affected for admins of the group return False name = event.raw_text snips = sql.get_chat_blacklist(event.chat_id) for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): try: await event.delete() except Exception as e: await event.reply( "I do not have DELETE permission in this chat") sql.rm_from_blacklist(event.chat_id, snip.lower()) break
async def on_new_message(event): # result = await borg(functions.channels.GetParticipantRequest( # channel=event.chat_id, # user_id=event.message.from_id # )) # if not event.is_private and isinstance(result.participant, (types.ChannelParticipantAdmin, types.ChannelParticipantCreator)): # # blacklist should not be affected for admins of the group # return False name = event.raw_text snips = sql.get_chat_blacklist(event.chat_id) for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): try: await event.delete() except Exception as e: await event.reply( "I do not have DELETE permission in this chat") sql.rm_from_blacklist(event.chat_id, snip.lower()) break