async def on_snip_list(event): if event.is_group: pass else: return 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 /savefilter" if len(OUT_STR) > 4096: with io.BytesIO(str.encode(OUT_STR)) as out_file: out_file.name = "filters.text" await tbot.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 event.reply(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]: 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 filter = "" options = "" butto = None if "|" in snip.reply: filter, options = snip.reply.split("|") else: filter = str(snip.reply) try: filter = filter.strip() button = options.strip() params = re.findall(r'\'(.*?)\'', button) butto = [Button.url(*params)] except BaseException: filter = filter.strip() button = None await event.reply(filter, buttons=butto, 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)