async def music_inline_func(answers, query): chat_id = -1001445180719 group_invite = "https://t.me/joinchat/vSDE2DuGK4Y4Nzll" try: messages = [ m async for m in app2.search_messages( chat_id, query, filter="audio", limit=199 ) ] except Exception as e: print(e) msg = f"You Need To Join Here With Your Bot And Userbot To Get Cached Music.\n{group_invite}" answers.append( InlineQueryResultArticle( title="ERROR", description="Click Here To Know More.", input_message_content=InputTextMessageContent( msg, disable_web_page_preview=True ), ) ) return answers messages_ids_and_duration = [] for f_ in messages: messages_ids_and_duration.append( { "message_id": f_.message_id, "duration": f_.audio.duration if f_.audio.duration else 0, } ) messages = list( {v["duration"]: v for v in messages_ids_and_duration}.values() ) messages_ids = [] for ff_ in messages: messages_ids.append(ff_["message_id"]) messages = await app.get_messages(chat_id, messages_ids[0:48]) for message_ in messages: answers.append( InlineQueryResultCachedDocument( file_id=message_.audio.file_id, title=message_.audio.title ) ) return answers
async def purge_me_func(_, message: Message): if len(message.command) != 2: return await message.delete() n = message.text.split(None, 1)[1].strip() if not n.isnumeric(): return await eor(message, text="Invalid Args") n = int(n) if n < 1: return await eor(message, text="Need a number >=1") chat_id = message.chat.id message_ids = [ m.message_id async for m in app2.search_messages( chat_id, from_user=int(USERBOT_ID), limit=n, ) ] if not message_ids: return await eor(message, text="No messages found.") # A list containing lists of 100 message chunks # because we can't delete more than 100 messages at once, # we have to do it in chunks of 100, i'll choose 99 just # to be safe. to_delete = [message_ids[i:i + 99] for i in range(0, len(message_ids), 99)] for hundred_messages_or_less in to_delete: await app2.delete_messages( chat_id=chat_id, message_ids=hundred_messages_or_less, revoke=True, )
async def purge_me_func(_, message: Message): await message.delete() if len(message.command) != 2: return n = message.text.split(None, 1)[1].strip() if not n.isnumeric(): return n = int(n) if n < 1: return chat_id = message.chat.id message_ids = [ m.message_id async for m in app2.search_messages(chat_id, from_user=USERBOT_ID) ][:n] # NOTE Don't use limit param here if len(message_ids) == 0: return # A list containing lists of 100 message chunks # because we can't delete more than 100 messages at once, # we have to do it in chunks of 100, i'll choose 99 just # to be safe. to_delete = list( (message_ids[i:i + 99] for i in range(0, len(message_ids), 99))) for hundred_messages_or_less in to_delete: await app2.delete_messages( chat_id=chat_id, message_ids=hundred_messages_or_less, revoke=True, )