async def set_welcome_func(_, message): usage = "You need to reply to a text, check the Greetings module in /help" if not message.reply_to_message: await message.reply_text(usage) return if not message.reply_to_message.text: await message.reply_text(usage) return chat_id = message.chat.id raw_text = message.reply_to_message.text.markdown if not (extract_text_and_keyb(ikb, raw_text)): return await message.reply_text("Wrong formating, check help section.") await set_welcome(chat_id, raw_text) await message.reply_text("Welcome message has been successfully set.")
async def send_welcome_message(chat: Chat, user_id: int): raw_text = await get_welcome(chat.id) if not raw_text: return text, keyb = extract_text_and_keyb(ikb, raw_text) if "{chat}" in text: text = text.replace("{chat}", chat.title) if "{name}" in text: text = text.replace("{name}", (await app.get_users(user_id)).mention) await app.send_message( chat.id, text=text, reply_markup=keyb, disable_web_page_preview=True, )
async def filters_re(_, message): text = message.text.lower().strip() if not text: return chat_id = message.chat.id list_of_filters = await get_filters_names(chat_id) for word in list_of_filters: pattern = r"( |^|[^\w])" + re.escape(word) + r"( |$|[^\w])" if re.search(pattern, text, flags=re.IGNORECASE): _filter = await get_filter(chat_id, word) data_type = _filter["type"] data = _filter["data"] if data_type == "text": keyb = None if re.findall(r"\[.+\,.+\]", data): keyboard = extract_text_and_keyb(ikb, data) if keyboard: data, keyb = keyboard if message.reply_to_message: await message.reply_to_message.reply_text( data, reply_markup=keyb, disable_web_page_preview=True, ) if text.startswith("~"): await message.delete() return return await message.reply_text( data, reply_markup=keyb, disable_web_page_preview=True, ) if message.reply_to_message: await message.reply_to_message.reply_sticker(data) if text.startswith("~"): await message.delete() return return await message.reply_sticker(data)
async def get_one_note(_, message): name = message.text.replace("#", "", 1) if not name: return _note = await get_note(message.chat.id, name) if not _note: return if _note["type"] == "text": data = _note["data"] keyb = None if findall(r"\[.+\,.+\]", data): keyboard = extract_text_and_keyb(ikb, data) if keyboard: data, keyb = keyboard await message.reply_text( data, reply_markup=keyb, disable_web_page_preview=True, ) else: await message.reply_sticker(_note["data"])
async def send_welcome_message(chat: Chat, user_id: int, delete: bool = False): raw_text = await get_welcome(chat.id) if not raw_text: return text, keyb = extract_text_and_keyb(ikb, raw_text) if "{chat}" in text: text = text.replace("{chat}", chat.title) if "{name}" in text: text = text.replace("{name}", (await app.get_users(user_id)).mention) async def _send_wait_delete(): m = await app.send_message( chat.id, text=text, reply_markup=keyb, disable_web_page_preview=True, ) await asyncio.sleep(300) await m.delete() asyncio.create_task(_send_wait_delete())