async def on_snip_list(event): if event.fwd_from: return indiaislove = await edit_or_reply(event, "Processing....") all_snips = get_all_filters(event.chat_id) OUT_STR = "Available Filters in the Current Chat:\n" if len(all_snips) > 0: for a_snip in all_snips: OUT_STR += f"👉 {a_snip.keyword} \n" else: OUT_STR = "No Filters. Start Saving using `.filter`" if len(OUT_STR) > 4096: with io.BytesIO(str.encode(OUT_STR)) as out_file: out_file.name = "filters.text" await bot.send_file( event.chat_id, out_file, force_document=True, allow_cache=False, caption="Available Filters in the Current Chat", reply_to=event, ) await event.delete() else: await indiaislove.edit(OUT_STR)
async def on_snip(event): global last_triggered_filters name = event.raw_text if event.chat_id in last_triggered_filters: if name in last_triggered_filters[event.chat_id]: # avoid fridaybot spam # "I demand rights for us bots, we are equal to you humans." -Henri Koivuneva (t.me/UserbotTesting/2698) return False snips = get_all_filters(event.chat_id) if snips: for snip in snips: pattern = r"( |^|[^\w])" + re.escape(snip.keyword) + r"( |$|[^\w])" if re.search(pattern, name, flags=re.IGNORECASE): if snip.snip_type == TYPE_PHOTO: media = types.InputPhoto( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference, ) elif snip.snip_type == TYPE_DOCUMENT: media = types.InputDocument( int(snip.media_id), int(snip.media_access_hash), snip.media_file_reference, ) else: media = None event.message.id if event.reply_to_msg_id: event.reply_to_msg_id await event.reply(snip.reply, file=media) if event.chat_id not in last_triggered_filters: last_triggered_filters[event.chat_id] = [] last_triggered_filters[event.chat_id].append(name) await asyncio.sleep(DELETE_TIMEOUT) last_triggered_filters[event.chat_id].remove(name)