async def resume(_, message: Message): chat_id = get_chat_id(message.chat) if (chat_id not in callsmusic.active_chats) or ( callsmusic.active_chats[chat_id] == "playing"): await message.reply_text("❗ Nothing is paused!") else: callsmusic.resume(chat_id) await message.reply_text("⏸ Resumed!")
async def resume(_, message: Message): chat_id = get_chat_id(message.chat) if (chat_id not in callsmusic.active_chats) or ( callsmusic.active_chats[chat_id] == "ρℓαуιηg"): await message.reply_text("❗ ησтнιηg ιѕ ραυѕє∂!") else: callsmusic.resume(chat_id) await message.reply_text("⏸ яєѕυмє∂!")
async def pause(_, message: Message): chat_id = get_chat_id(message.chat) if (chat_id not in callsmusic.pytgcalls.active_calls) or ( callsmusic.pytgcalls.active_calls[chat_id] == "paused"): await message.reply_text("❗ Nothing is playing!") else: callsmusic.pytgcalls.pause_stream(chat_id) await message.reply_text("▶️ Paused!")
async def pause(_, message: Message): chat_id = get_chat_id(message.chat) if (chat_id not in callsmusic.active_chats) or ( callsmusic.active_chats[chat_id] == "ραυѕє∂"): await message.reply_text("❗ ησтнιηg ιѕ ρℓαуιηg!") else: callsmusic.pause(chat_id) await message.reply_text("▶️ ραυѕє∂!")
async def pause(_, message: Message): chat_id = get_chat_id(message.chat) if (chat_id not in callsmusic.pytgcalls.active_calls) or ( callsmusic.pytgcalls.active_calls[chat_id] == "paused" ): await message.reply_text("!چیزی درحال پخش نیست") else: callsmusic.pytgcalls.pause_stream(chat_id) await message.reply_text("پخش متوقف شد")
async def resume(_, message: Message): chat_id = get_chat_id(message.chat) if (chat_id not in callsmusic.pytgcalls.active_calls) or ( callsmusic.pytgcalls.active_calls[chat_id] == "playing" ): await message.reply_text("چیزی متوقف نشد") else: callsmusic.pytgcalls.resume_stream(chat_id) await message.reply_text("از سر گرفته شد")
async def resume(_, message: Message): chat_id = get_chat_id(message.chat) if (chat_id not in callsmusic.pytgcalls.active_calls) or ( callsmusic.pytgcalls.active_calls[chat_id] == "playing" ): await message.reply_text("❗ ησтнιηg ιѕ ραυѕє∂!") else: callsmusic.pytgcalls.resume_stream(chat_id) await message.reply_text("⏸ яєѕυмє∂!")
async def update_admin(client, message: Message): chat_id = get_chat_id(message.chat) set( chat_id, [ member.user for member in await message.chat.get_members( filter="administrators") ], ) await message.reply_text("❇️ Admin cache refreshed!")
async def update_admin(client, message: Message): chat_id = get_chat_id(message.chat) set( chat_id, [ member.user for member in await message.chat.get_members(filter="administrators") ], ) await message.reply_text("لیست ادمین به روز شد")
async def update_admin(client, message: Message): chat_id = get_chat_id(message.chat) set( chat_id, [ member.user for member in await message.chat.get_members(filter="administrators") ], ) await message.reply_text("一═デ︻ ❇️ α∂мιη ¢α¢нє яєƒяєѕнє∂! ︻デ═一")
async def stop(_, message: Message): chat_id = get_chat_id(message.chat) if chat_id not in callsmusic.active_chats: await message.reply_text("❗ Nothing is streaming!") else: try: queues.clear(chat_id) except QueueEmpty: pass await callsmusic.stop(chat_id) await message.reply_text("❌ Stopped streaming!")
async def stop(_, message: Message): chat_id = get_chat_id(message.chat) if chat_id not in callsmusic.pytgcalls.active_calls: await message.reply_text("!چیزی درحال پخش نیست") else: try: callsmusic.queues.clear(chat_id) except QueueEmpty: pass callsmusic.pytgcalls.leave_group_call(chat_id) await message.reply_text("استریم پایان یافت")
async def stop(_, message: Message): chat_id = get_chat_id(message.chat) if chat_id not in callsmusic.pytgcalls.active_calls: await message.reply_text("❗ ησтнιηg ιѕ ѕтяєαмιηg!") else: try: callsmusic.queues.clear(chat_id) except QueueEmpty: pass callsmusic.pytgcalls.leave_group_call(chat_id) await message.reply_text("❌ ѕтσρρє∂ ѕтяєαмιηg!")
async def settings(client, message): playing = None chat_id = get_chat_id(message.chat) if chat_id in callsmusic.pytgcalls.active_calls: playing = True queue = que.get(chat_id) stats = updated_stats(message.chat, queue) if stats: if playing: await message.reply(stats, reply_markup=r_ply("pause")) else: await message.reply(stats, reply_markup=r_ply("play")) else: await message.reply("No VC instances running in this chat")
async def settings(client, message): playing = None chat_id = get_chat_id(message.chat) if chat_id in callsmusic.pytgcalls.active_calls: playing = True queue = que.get(chat_id) stats = updated_stats(message.chat, queue) if stats: if playing: await message.reply(stats, reply_markup=r_ply("pause")) else: await message.reply(stats, reply_markup=r_ply("play")) else: await message.reply("ησ ν¢ ιηѕтαη¢єѕ яυηηιηg ιη тнιѕ ¢нαт")
async def settings(client, message): playing = None chat_id = get_chat_id(message.chat) if chat_id in callsmusic.pytgcalls.active_calls: playing = True queue = que.get(chat_id) stats = updated_stats(message.chat, queue) if stats: if playing: await message.reply(stats, reply_markup=r_ply("pause")) else: await message.reply(stats, reply_markup=r_ply("play")) else: await message.reply("Sesli sohbet asistanım yok")
async def settings(client, message): if message.chat.id in DISABLED_GROUPS: await message.reply("Music Player is Disabled") return playing = None chat_id = get_chat_id(message.chat) if chat_id in callsmusic.active_chats: playing = True queue = que.get(chat_id) stats = updated_stats(message.chat, queue) if stats: if playing: await message.reply(stats, reply_markup=r_ply("pause")) else: await message.reply(stats, reply_markup=r_ply("play")) else: await message.reply("No VC instances running in this chat")
async def skip(_, message: Message): global que chat_id = get_chat_id(message.chat) if chat_id not in callsmusic.active_chats: await message.reply_text("❗ Nothing is playing to skip!") else: queues.task_done(chat_id) if queues.is_empty(chat_id): await callsmusic.stop(chat_id) else: await callsmusic.set_stream(chat_id, queues.get(chat_id)["file"]) qeue = que.get(chat_id) if qeue: skip = qeue.pop(0) if not qeue: return await message.reply_text(f"- Skipped **{skip[0]}**\n- Now Playing **{qeue[0][0]}**")
async def skip(_, message: Message): global que chat_id = get_chat_id(message.chat) if chat_id not in callsmusic.pytgcalls.active_calls: await message.reply_text("!چیزی درحال پخش نیس که ردش کنم") else: callsmusic.queues.task_done(chat_id) if callsmusic.queues.is_empty(chat_id): callsmusic.pytgcalls.leave_group_call(chat_id) else: callsmusic.pytgcalls.change_stream( chat_id, callsmusic.queues.get(chat_id)["file"] ) qeue = que.get(chat_id) if qeue: skip = qeue.pop(0) if not qeue: return await message.reply_text(f"- رد شد **{skip[0]}**\n- در حال پخش **{qeue[0][0]}**")
async def skip(_, message: Message): global que chat_id = get_chat_id(message.chat) if chat_id not in callsmusic.pytgcalls.active_calls: await message.reply_text("❗ ησтнιηg ιѕ ρℓαуιηg тσ ѕкιρ!") else: callsmusic.queues.task_done(chat_id) if callsmusic.queues.is_empty(chat_id): callsmusic.pytgcalls.leave_group_call(chat_id) else: callsmusic.pytgcalls.change_stream( chat_id, callsmusic.queues.get(chat_id)["file"] ) qeue = que.get(chat_id) if qeue: skip = qeue.pop(0) if not qeue: return await message.reply_text(f"- ѕкιρρє∂ **{skip[0]}**\n- ησω ρℓαуιηg **{qeue[0][0]}**")
async def skip(_, message: Message): global que chat_id = get_chat_id(message.chat) if chat_id not in callsmusic.pytgcalls.active_calls: await message.reply_text("❗ Nothing is playing to skip!") else: callsmusic.queues.task_done(chat_id) if callsmusic.queues.is_empty(chat_id): callsmusic.pytgcalls.leave_group_call(chat_id) else: callsmusic.pytgcalls.change_stream( chat_id, callsmusic.queues.get(chat_id)["file"]) qeue = que.get(chat_id) if qeue: skip = qeue.pop(0) if not qeue: return await message.reply_text(f"- Skipped {skip[0]}\n- Now Playing {qeue[0][0]}" )
async def play(_, message: Message): global que global useer if message.chat.id in DISABLED_GROUPS: return lel = await message.reply("🔄 <b>Processing</b>") administrators = await get_administrators(message.chat) chid = message.chat.id try: user = await USER.get_me() except: user.first_name = "helper" usar = user wew = usar.id try: # chatdetails = await USER.get_chat(chid) await _.get_chat_member(chid, wew) except: for administrator in administrators: if administrator == message.from_user.id: if message.chat.title.startswith("Channel Music: "): await lel.edit( "<b>Remember to add helper to your channel</b>", ) pass try: invitelink = await _.export_chat_invite_link(chid) except: await lel.edit( "<b>Add me as admin of yor group first</b>", ) return try: await USER.join_chat(invitelink) await USER.send_message( message.chat.id, "I joined this group for playing music in VC" ) await lel.edit( "<b>helper userbot joined your chat</b>", ) except UserAlreadyParticipant: pass except Exception: # print(e) await lel.edit( f"<b>🔴 Flood Wait Error 🔴 \nUser {user.first_name} couldn't join your group due to heavy requests for userbot! Make sure user is not banned in group." "\n\nOr manually add assistant to your Group and try again</b>", ) try: await USER.get_chat(chid) # lmoa = await client.get_chat_member(chid,wew) except: await lel.edit( f"<i> {user.first_name} Userbot not in this chat, Ask admin to send /play command for first time or add {user.first_name} manually</i>" ) return text_links=None await lel.edit("🔎 <b>Finding</b>") if message.reply_to_message: if message.reply_to_message.audio: pass entities = [] toxt = message.reply_to_message.text \ or message.reply_to_message.caption if message.reply_to_message.entities: entities = message.reply_to_message.entities + entities elif message.reply_to_message.caption_entities: entities = message.reply_to_message.entities + entities urls = [entity for entity in entities if entity.type == 'url'] text_links = [ entity for entity in entities if entity.type == 'text_link' ] else: urls=None if text_links: urls = True user_id = message.from_user.id user_name = message.from_user.first_name rpk = "[" + user_name + "](tg://user?id=" + str(user_id) + ")" audio = ( (message.reply_to_message.audio or message.reply_to_message.voice) if message.reply_to_message else None ) if audio: if round(audio.duration / 60) > DURATION_LIMIT: await lel.edit( f"❌ Videos longer than {DURATION_LIMIT} minute(s) aren't allowed to play!" ) return keyboard = InlineKeyboardMarkup( [ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ] ) file_name = get_file_name(audio) title = file_name thumb_name = "https://telegra.ph/file/f6086f8909fbfeb0844f2.png" thumbnail = thumb_name duration = round(audio.duration / 60) views = "Locally added" requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await convert( (await message.reply_to_message.download(file_name)) if not path.isfile(path.join("downloads", file_name)) else file_name ) elif urls: query = toxt await lel.edit("🎵 <b>Processing</b>") ydl_opts = {"format": "bestaudio/best"} try: results = YoutubeSearch(query, max_results=1).to_dict() url = f"https://youtube.com{results[0]['url_suffix']}" # print(results) title = results[0]["title"][:40] thumbnail = results[0]["thumbnails"][0] thumb_name = f"thumb{title}.jpg" thumb = requests.get(thumbnail, allow_redirects=True) open(thumb_name, "wb").write(thumb.content) duration = results[0]["duration"] results[0]["url_suffix"] views = results[0]["views"] except Exception as e: await lel.edit( "Song not found.Try another song or maybe spell it properly." ) print(str(e)) return try: secmul, dur, dur_arr = 1, 0, duration.split(':') for i in range(len(dur_arr)-1, -1, -1): dur += (int(dur_arr[i]) * secmul) secmul *= 60 if (dur / 60) > DURATION_LIMIT: await lel.edit(f"❌ Videos longer than {DURATION_LIMIT} minutes aren't allowed to play!") return except: pass dlurl=url dlurl=dlurl.replace("youtube","youtubepp") keyboard = InlineKeyboardMarkup( [ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [ InlineKeyboardButton(text="🎬 YouTube", url=f"{url}"), InlineKeyboardButton(text="Download 📥", url=f"{dlurl}"), ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ] ) requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await convert(youtube.download(url)) else: query = "" for i in message.command[1:]: query += " " + str(i) print(query) await lel.edit("🎵 **Processing**") ydl_opts = {"format": "bestaudio/best"} try: results = YoutubeSearch(query, max_results=5).to_dict() except: await lel.edit("Give me something to play") # Looks like hell. Aren't it?? F**K OFF try: toxxt = "**Select the song you want to play**\n\n" j = 0 useer=user_name emojilist = ["1️⃣","2️⃣","3️⃣","4️⃣","5️⃣",] while j < 5: toxxt += f"{emojilist[j]} <b>Title - [{results[j]['title']}](https://youtube.com{results[j]['url_suffix']})</b>\n" toxxt += f" ╚ <b>Duration</b> - {results[j]['duration']}\n" toxxt += f" ╚ <b>Views</b> - {results[j]['views']}\n" toxxt += f" ╚ <b>Channel</b> - {results[j]['channel']}\n\n" j += 1 koyboard = InlineKeyboardMarkup( [ [ InlineKeyboardButton("1️⃣", callback_data=f'plll 0|{query}|{user_id}'), InlineKeyboardButton("2️⃣", callback_data=f'plll 1|{query}|{user_id}'), InlineKeyboardButton("3️⃣", callback_data=f'plll 2|{query}|{user_id}'), ], [ InlineKeyboardButton("4️⃣", callback_data=f'plll 3|{query}|{user_id}'), InlineKeyboardButton("5️⃣", callback_data=f'plll 4|{query}|{user_id}'), ], [InlineKeyboardButton(text="❌", callback_data="cls")], ] ) await lel.edit(toxxt,reply_markup=koyboard,disable_web_page_preview=True) # WHY PEOPLE ALWAYS LOVE P**N ?? (A point to think) return # Returning to pornhub except: await lel.edit("No Enough results to choose.. Starting direct play..") # print(results) try: url = f"https://youtube.com{results[0]['url_suffix']}" title = results[0]["title"][:40] thumbnail = results[0]["thumbnails"][0] thumb_name = f"thumb{title}.jpg" thumb = requests.get(thumbnail, allow_redirects=True) open(thumb_name, "wb").write(thumb.content) duration = results[0]["duration"] results[0]["url_suffix"] views = results[0]["views"] except Exception as e: await lel.edit( "Song not found.Try another song or maybe spell it properly." ) print(str(e)) return try: secmul, dur, dur_arr = 1, 0, duration.split(':') for i in range(len(dur_arr)-1, -1, -1): dur += (int(dur_arr[i]) * secmul) secmul *= 60 if (dur / 60) > DURATION_LIMIT: await lel.edit(f"❌ Videos longer than {DURATION_LIMIT} minutes aren't allowed to play!") return except: pass dlurl=url dlurl=dlurl.replace("youtube","youtubepp") keyboard = InlineKeyboardMarkup( [ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [ InlineKeyboardButton(text="🎬 YouTube", url=f"{url}"), InlineKeyboardButton(text="Download 📥", url=f"{dlurl}"), ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ] ) requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await convert(youtube.download(url)) chat_id = get_chat_id(message.chat) if chat_id in callsmusic.active_chats: position = await queues.put(chat_id, file=file_path) qeue = que.get(chat_id) s_name = title r_by = message.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) await message.reply_photo( photo="final.png", caption=f"#⃣ Your requested song <b>queued</b> at position {position}!", reply_markup=keyboard, ) os.remove("final.png") return await lel.delete() else: chat_id = get_chat_id(message.chat) que[chat_id] = [] qeue = que.get(chat_id) s_name = title r_by = message.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) try: await callsmusic.set_stream(chat_id, file_path) except: message.reply("Group Call is not connected or I can't join it") return await message.reply_photo( photo="final.png", reply_markup=keyboard, caption="▶️ <b>Playing</b> here the song requested by {} via Youtube Music 😎".format( message.from_user.mention() ), ) os.remove("final.png") return await lel.delete()
async def play(_, message: Message): global que lel = await message.reply("🔄 **Processing**") administrators = await get_administrators(message.chat) chid = message.chat.id try: user = await USER.get_me() except: user.first_name = "helper" usar = user wew = usar.id try: # chatdetails = await USER.get_chat(chid) await _.get_chat_member(chid, wew) except: for administrator in administrators: if administrator == message.from_user.id: if message.chat.title.startswith("Channel Music: "): await lel.edit( "<b>Remember to add helper to your channel</b>", ) pass try: invitelink = await _.export_chat_invite_link(chid) except: await lel.edit( "<b>Add me as admin of yor group first</b>", ) return try: await USER.join_chat(invitelink) await USER.send_message( message.chat.id, "I joined this group for playing music in VC") await lel.edit("<b>helper userbot joined your chat</b>", ) except UserAlreadyParticipant: pass except Exception: # print(e) await lel.edit( f"<b>🔴 Flood Wait Error 🔴 \nUser {user.first_name} couldn't join your group due to heavy requests for userbot! Make sure user is not banned in group." "\n\nOr manually add assistant to your Group and try again</b>", ) try: await USER.get_chat(chid) # lmoa = await client.get_chat_member(chid,wew) except: await lel.edit( f"<i> {user.first_name} Userbot not in this chat, Ask admin to send /play command for first time or add {user.first_name} manually</i>" ) return message.from_user.id message.from_user.first_name text_links = None await lel.edit("🔎 **Finding**") message.from_user.id if message.reply_to_message: entities = [] toxt = message.reply_to_message.text or message.reply_to_message.caption if message.reply_to_message.entities: entities = message.reply_to_message.entities + entities elif message.reply_to_message.caption_entities: entities = message.reply_to_message.entities + entities urls = [entity for entity in entities if entity.type == 'url'] text_links = [ entity for entity in entities if entity.type == 'text_link' ] else: urls = None if text_links: urls = True user_id = message.from_user.id message.from_user.first_name user_name = message.from_user.first_name rpk = "[" + user_name + "](tg://user?id=" + str(user_id) + ")" audio = ((message.reply_to_message.audio or message.reply_to_message.voice) if message.reply_to_message else None) if audio: if round(audio.duration / 60) > DURATION_LIMIT: raise DurationLimitError( f"❌ Videos longer than {DURATION_LIMIT} minute(s) aren't allowed to play!" ) keyboard = InlineKeyboardMarkup([ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ]) file_name = get_file_name(audio) title = file_name thumb_name = "https://telegra.ph/file/f6086f8909fbfeb0844f2.png" thumbnail = thumb_name duration = round(audio.duration / 60) views = "Locally added" requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await convert(( await message.reply_to_message.download(file_name) ) if not path.isfile(path.join("downloads", file_name)) else file_name) elif urls: query = toxt await lel.edit("🎵 **Processing**") ydl_opts = {"format": "bestaudio[ext=m4a]"} try: results = YoutubeSearch(query, max_results=1).to_dict() url = f"https://youtube.com{results[0]['url_suffix']}" # print(results) title = results[0]["title"][:40] thumbnail = results[0]["thumbnails"][0] thumb_name = f"thumb{title}.jpg" thumb = requests.get(thumbnail, allow_redirects=True) open(thumb_name, "wb").write(thumb.content) duration = results[0]["duration"] results[0]["url_suffix"] views = results[0]["views"] except Exception as e: await lel.edit( "Song not found.Try another song or maybe spell it properly.") print(str(e)) return dlurl = url dlurl = dlurl.replace("youtube", "youtubepp") keyboard = InlineKeyboardMarkup([ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [ InlineKeyboardButton(text="🎬 YouTube", url=f"{url}"), InlineKeyboardButton(text="Download 📥", url=f"{dlurl}"), ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ]) requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await convert(youtube.download(url)) else: query = "" for i in message.command[1:]: query += " " + str(i) print(query) await lel.edit("🎵 **Processing**") ydl_opts = {"format": "bestaudio[ext=m4a]"} try: results = YoutubeSearch(query, max_results=1).to_dict() url = f"https://youtube.com{results[0]['url_suffix']}" # print(results) title = results[0]["title"][:40] thumbnail = results[0]["thumbnails"][0] thumb_name = f"thumb{title}.jpg" thumb = requests.get(thumbnail, allow_redirects=True) open(thumb_name, "wb").write(thumb.content) duration = results[0]["duration"] results[0]["url_suffix"] views = results[0]["views"] except Exception as e: await lel.edit( "Song not found.Try another song or maybe spell it properly.") print(str(e)) return dlurl = url dlurl = dlurl.replace("youtube", "youtubepp") keyboard = InlineKeyboardMarkup([ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [ InlineKeyboardButton(text="🎬 YouTube", url=f"{url}"), InlineKeyboardButton(text="Download 📥", url=f"{dlurl}"), ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ]) requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await convert(youtube.download(url)) chat_id = get_chat_id(message.chat) if chat_id in callsmusic.pytgcalls.active_calls: position = await queues.put(chat_id, file=file_path) qeue = que.get(chat_id) s_name = title r_by = message.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) await message.reply_photo( photo="final.png", caption= f"#⃣ Your requested song **queued** at position {position}!", reply_markup=keyboard, ) os.remove("final.png") return await lel.delete() else: chat_id = get_chat_id(message.chat) que[chat_id] = [] qeue = que.get(chat_id) s_name = title r_by = message.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) try: callsmusic.pytgcalls.join_group_call(chat_id, file_path) except: message.reply("Group Call is not connected or I can't join it") return await message.reply_photo( photo="final.png", reply_markup=keyboard, caption= "▶️ **Playing** here the song requested by {} via Youtube Music 😜". format(message.from_user.mention()), ) os.remove("final.png") return await lel.delete()
async def deezer(client: Client, message_: Message): global que lel = await message_.reply("🔄 **Processing**") administrators = await get_administrators(message_.chat) chid = message_.chat.id try: user = await USER.get_me() except: user.first_name = "DaisyMusic" usar = user wew = usar.id try: # chatdetails = await USER.get_chat(chid) await client.get_chat_member(chid, wew) except: for administrator in administrators: if administrator == message_.from_user.id: if message_.chat.title.startswith("Channel Music: "): await lel.edit( "<b>Remember to add helper to your channel</b>", ) pass try: invitelink = await client.export_chat_invite_link(chid) except: await lel.edit( "<b>Add me as admin of yor group first</b>", ) return try: await USER.join_chat(invitelink) await USER.send_message( message_.chat.id, "I joined this group for playing music in VC") await lel.edit("<b>helper userbot joined your chat</b>", ) except UserAlreadyParticipant: pass except Exception: # print(e) await lel.edit( f"<b>🔴 Flood Wait Error 🔴 \nUser {user.first_name} couldn't join your group due to heavy requests for userbot! Make sure user is not banned in group." "\n\nOr manually add assistant to your Group and try again</b>", ) try: await USER.get_chat(chid) # lmoa = await client.get_chat_member(chid,wew) except: await lel.edit( f"<i> {user.first_name} Userbot not in this chat, Ask admin to send /play command for first time or add {user.first_name} manually</i>" ) return requested_by = message_.from_user.first_name text = message_.text.split(" ", 1) queryy = text[1] query = queryy res = lel await res.edit(f"Searching 👀👀👀 for `{queryy}` on deezer") try: songs = await arq.deezer(query, 1) if not songs.ok: await message_.reply_text(songs.result) return title = songs.result[0].title url = songs.result[0].url artist = songs.result[0].artist duration = songs.result[0].duration thumbnail = "https://telegra.ph/file/f6086f8909fbfeb0844f2.png" except: await res.edit( "Found Literally Nothing, You Should Work On Your English!") return keyboard = InlineKeyboardMarkup([ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [InlineKeyboardButton(text="Listen On Deezer 🎬", url=f"{url}")], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ]) file_path = await convert(wget.download(url)) await res.edit("Generating Thumbnail") await generate_cover(requested_by, title, artist, duration, thumbnail) chat_id = get_chat_id(message_.chat) if chat_id in callsmusic.pytgcalls.active_calls: await res.edit("adding in queue") position = await queues.put(chat_id, file=file_path) qeue = que.get(chat_id) s_name = title r_by = message_.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) await res.edit_text(f"✯{bn}✯= #️⃣ Queued at position {position}") else: await res.edit_text(f"✯{bn}✯=▶️ Playing.....") que[chat_id] = [] qeue = que.get(chat_id) s_name = title r_by = message_.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) try: callsmusic.pytgcalls.join_group_call(chat_id, file_path) except: res.edit("Group call is not connected of I can't join it") return await res.delete() m = await client.send_photo( chat_id=message_.chat.id, reply_markup=keyboard, photo="final.png", caption=f"Playing [{title}]({url}) Via Deezer", ) os.remove("final.png")
async def voice_chat_ended(_, message: Message): try: remove(get_chat_id(message.chat)) except Exception: pass
async def ytplay(_, message: Message): global que if message.chat.id in DISABLED_GROUPS: return lel = await message.reply("🔄 <b>Processing</b>") administrators = await get_administrators(message.chat) chid = message.chat.id try: user = await USER.get_me() except: user.first_name = "helper" usar = user wew = usar.id try: # chatdetails = await USER.get_chat(chid) await _.get_chat_member(chid, wew) except: for administrator in administrators: if administrator == message.from_user.id: if message.chat.title.startswith("Channel Music: "): await lel.edit( "<b>Remember to add helper to your channel</b>", ) pass try: invitelink = await _.export_chat_invite_link(chid) except: await lel.edit( "<b>Add me as admin of yor group first</b>", ) return try: await USER.join_chat(invitelink) await USER.send_message( message.chat.id, "I joined this group for playing music in VC" ) await lel.edit( "<b>helper userbot joined your chat</b>", ) except UserAlreadyParticipant: pass except Exception: # print(e) await lel.edit( f"<b>🔴 Flood Wait Error 🔴 \nUser {user.first_name} couldn't join your group due to heavy requests for userbot! Make sure user is not banned in group." "\n\nOr manually add assistant to your Group and try again</b>", ) try: await USER.get_chat(chid) # lmoa = await client.get_chat_member(chid,wew) except: await lel.edit( f"<i> {user.first_name} Userbot not in this chat, Ask admin to send /play command for first time or add {user.first_name} manually</i>" ) return await lel.edit("🔎 <b>Finding</b>") user_id = message.from_user.id user_name = message.from_user.first_name query = "" for i in message.command[1:]: query += " " + str(i) print(query) await lel.edit("🎵 <b>Processing</b>") ydl_opts = {"format": "bestaudio/best"} try: results = YoutubeSearch(query, max_results=1).to_dict() url = f"https://youtube.com{results[0]['url_suffix']}" # print(results) title = results[0]["title"][:40] thumbnail = results[0]["thumbnails"][0] thumb_name = f"thumb{title}.jpg" thumb = requests.get(thumbnail, allow_redirects=True) open(thumb_name, "wb").write(thumb.content) duration = results[0]["duration"] results[0]["url_suffix"] views = results[0]["views"] except Exception as e: await lel.edit( "Song not found.Try another song or maybe spell it properly." ) print(str(e)) return try: secmul, dur, dur_arr = 1, 0, duration.split(':') for i in range(len(dur_arr)-1, -1, -1): dur += (int(dur_arr[i]) * secmul) secmul *= 60 if (dur / 60) > DURATION_LIMIT: await lel.edit(f"❌ Videos longer than {DURATION_LIMIT} minutes aren't allowed to play!") return except: pass dlurl=url dlurl=dlurl.replace("youtube","youtubepp") keyboard = InlineKeyboardMarkup( [ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [ InlineKeyboardButton(text="🎬 YouTube", url=f"{url}"), InlineKeyboardButton(text="Download 📥", url=f"{dlurl}"), ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ] ) requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await convert(youtube.download(url)) chat_id = get_chat_id(message.chat) if chat_id in callsmusic.active_chats: position = await queues.put(chat_id, file=file_path) qeue = que.get(chat_id) s_name = title r_by = message.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) await message.reply_photo( photo="final.png", caption=f"#⃣ Your requested song <b>queued</b> at position {position}!", reply_markup=keyboard, ) os.remove("final.png") return await lel.delete() else: chat_id = get_chat_id(message.chat) que[chat_id] = [] qeue = que.get(chat_id) s_name = title r_by = message.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) try: await callsmusic.set_stream(chat_id, file_path) except: message.reply("Group Call is not connected or I can't join it") return await message.reply_photo( photo="final.png", reply_markup=keyboard, caption="▶️ <b>Playing</b> here the song requested by {} via Youtube Music 😎".format( message.from_user.mention() ), ) os.remove("final.png") return await lel.delete()
async def jiosaavn(client: Client, message_: Message): global que lel = await message_.reply("🔄 **İşlemde**") administrators = await get_administrators(message_.chat) chid = message_.chat.id try: user = await USER.get_me() except: user.first_name = "Zevzek Çalar" usar = user wew = usar.id try: # chatdetails = await USER.get_chat(chid) await client.get_chat_member(chid, wew) except: for administrator in administrators: if administrator == message_.from_user.id: if message_.chat.title.startswith("Channel Music: "): await lel.edit( "<b>Kanala ses asistanını eklemeyi unutma</b>", ) pass try: invitelink = await client.export_chat_invite_link(chid) except: await lel.edit( "<b>Beni grubun ses ve bağlantı davet yetkisi verir misin?</b>", ) return try: await USER.join_chat(invitelink) await USER.send_message( message_.chat.id, "Dooossssssttttllaaaaarrrrr müzik çalmak için geldim eh heee" ) await lel.edit("<b>Asistan gruba geldi</b>", ) except UserAlreadyParticipant: pass except Exception: # print(e) await lel.edit( f"<b>🔴 Sel bekleme hatası 🔴 \Sayın {user.first_name} userbot için yoğun isteklerden dolayı grubunuza katılamadı! Kullanıcının grupta yasaklanmadığından emin olun." "\n\nYa da @zevzekcalarasistan manuel olarak ekleyin</b>", ) try: await USER.get_chat(chid) # lmoa = await client.get_chat_member(chid,wew) except: await lel.edit( "<i> yardımcı Kullanıcı bu sohbette değil, Yöneticiden ilk kez komut göndermesini /play veya asistanı manuel olarak eklemesini isteyin</i>" ) return requested_by = message_.from_user.first_name chat_id = message_.chat.id text = message_.text.split(" ", 1) query = text[1] res = lel await res.edit(f"Jio saavn'da `{query} 'aranıyor") try: async with aiohttp.ClientSession() as session: async with session.get( f"https://jiosaavnapi.bhadoo.uk/result/?query={query}" ) as resp: r = json.loads(await resp.text()) sname = r[0]["song"] slink = r[0]["media_url"] ssingers = r[0]["singers"] sthumb = r[0]["image"] sduration = int(r[0]["duration"]) except Exception as e: await res.edit("Bir şey bulamadım düzgün yaz..") print(str(e)) return keyboard = InlineKeyboardMarkup([ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [ InlineKeyboardButton(text="Güncelleme kanalına katılın", url=f"{updateschannel}") ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ]) file_path = await convert(wget.download(slink)) chat_id = get_chat_id(message_.chat) if chat_id in callsmusic.pytgcalls.active_calls: position = await queues.put(chat_id, file=file_path) qeue = que.get(chat_id) s_name = sname r_by = message_.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) await res.delete() m = await client.send_photo( chat_id=message_.chat.id, reply_markup=keyboard, photo="final.png", caption=f"✯{bn}✯=#️⃣ sıralamaya aldım {position}", ) else: await res.edit_text(f"{bn}=▶️ Oyantıyorum.....") que[chat_id] = [] qeue = que.get(chat_id) s_name = sname r_by = message_.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) try: callsmusic.pytgcalls.join_group_call(chat_id, file_path) except: res.edit("Sesli sohbet açık değil...") return await res.edit("Küçük Resim Oluşturuluyor.") await generate_cover(requested_by, sname, ssingers, sduration, sthumb) await res.delete() m = await client.send_photo( chat_id=message_.chat.id, reply_markup=keyboard, photo="final.png", caption=f"Jiosaavn Üzerinden {sname} çalınıyor", ) os.remove("final.png")
async def deezer(client: Client, message_: Message): global que lel = await message_.reply("🔄 **işlemde**") administrators = await get_administrators(message_.chat) chid = message_.chat.id try: user = await USER.get_me() except: user.first_name = "Zevzek Çalar" usar = user wew = usar.id try: # chatdetails = await USER.get_chat(chid) await client.get_chat_member(chid, wew) except: for administrator in administrators: if administrator == message_.from_user.id: if message_.chat.title.startswith("Channel Music: "): await lel.edit( "<b>Kanala ses asistanını almayı unutmayınız.</b>", ) pass try: invitelink = await client.export_chat_invite_link(chid) except: await lel.edit( "<b>Beni sesli sohbet ve bağlantı ile davet etme yöneticisi yaparmısın?</b>", ) return try: await USER.join_chat(invitelink) await USER.send_message( message_.chat.id, "Müzik açmak için geldim açılın ayol") await lel.edit("<b>Ben geldim eh heee</b>", ) except UserAlreadyParticipant: pass except Exception: # print(e) await lel.edit( f"<b>🔴 Sel bekleme hatası 🔴 \Sayın {user.first_name} userbot için yoğun isteklerden dolayı grubunuza katılamadı! Kullanıcının grupta yasaklanmadığından emin olun." "\n\nYa da @zevzekcalarasistan manuel olarak ekleyin</b>", ) try: await USER.get_chat(chid) # lmoa = await client.get_chat_member(chid,wew) except: await lel.edit( f"<i> {user.first_name} Userbot bu sohbette değil, Yöneticiden ilk kez komut göndermesini /play isteyin veya ekleyin {user.first_name} kendiniz ekleyin</i>" ) return requested_by = message_.from_user.first_name text = message_.text.split(" ", 1) queryy = text[1] res = lel await res.edit(f"Deezer'da `{queryy} 'için aranıyor") try: r = await arq.deezer(query=queryy, limit=1) title = r[0]["title"] duration = int(r[0]["duration"]) thumbnail = r[0]["thumbnail"] artist = r[0]["artist"] url = r[0]["url"] except: await res.edit("Düzgün yazar mısın bulamadım...") return keyboard = InlineKeyboardMarkup([ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [InlineKeyboardButton(text="Deezer'da Dinle 🎬", url=f"{url}")], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ]) file_path = await convert(wget.download(url)) await res.edit("Generating Thumbnail") await generate_cover(requested_by, title, artist, duration, thumbnail) chat_id = get_chat_id(message_.chat) if chat_id in callsmusic.pytgcalls.active_calls: await res.edit("adding in queue") position = await queues.put(chat_id, file=file_path) qeue = que.get(chat_id) s_name = title r_by = message_.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) await res.edit_text(f"✯{bn}✯= #️⃣Sıralamaya aldım {position}") else: await res.edit_text(f"✯{bn}✯=▶️ Oynatıyorum.....") que[chat_id] = [] qeue = que.get(chat_id) s_name = title r_by = message_.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) try: callsmusic.pytgcalls.join_group_call(chat_id, file_path) except: res.edit("Sesli sohbeti açar mısın yoksa dinleyemezsin.") return await res.delete() m = await client.send_photo( chat_id=message_.chat.id, reply_markup=keyboard, photo="final.png", caption=f"Deezer ile [{title}] ({url}) çalınıyor", ) os.remove("final.png")
async def jiosaavn(client: Client, message_: Message): global que if message_.chat.id in DISABLED_GROUPS: return lel = await message_.reply("🔄 <b>Processing</b>") administrators = await get_administrators(message_.chat) chid = message_.chat.id try: user = await USER.get_me() except: user.first_name = "DaisyMusic" usar = user wew = usar.id try: # chatdetails = await USER.get_chat(chid) await client.get_chat_member(chid, wew) except: for administrator in administrators: if administrator == message_.from_user.id: if message_.chat.title.startswith("Channel Music: "): await lel.edit( "<b>Remember to add helper to your channel</b>", ) pass try: invitelink = await client.export_chat_invite_link(chid) except: await lel.edit( "<b>Add me as admin of yor group first</b>", ) return try: await USER.join_chat(invitelink) await USER.send_message( message_.chat.id, "I joined this group for playing music in VC" ) await lel.edit( "<b>helper userbot joined your chat</b>", ) except UserAlreadyParticipant: pass except Exception: # print(e) await lel.edit( f"<b>🔴 Flood Wait Error 🔴 \nUser {user.first_name} couldn't join your group due to heavy requests for userbot! Make sure user is not banned in group." "\n\nOr manually add @DaisyXmusic to your Group and try again</b>", ) try: await USER.get_chat(chid) # lmoa = await client.get_chat_member(chid,wew) except: await lel.edit( "<i> helper Userbot not in this chat, Ask admin to send /play command for first time or add assistant manually</i>" ) return requested_by = message_.from_user.first_name chat_id = message_.chat.id text = message_.text.split(" ", 1) query = text[1] res = lel await res.edit(f"Searching 🔍 for `{query}` on jio saavn") try: songs = await arq.saavn(query) if not songs.ok: await message_.reply_text(songs.result) return sname = songs.result[0].song slink = songs.result[0].media_url ssingers = songs.result[0].singers sthumb = songs.result[0].image sduration = int(songs.result[0].duration) except Exception as e: await res.edit("Found Literally Nothing!, You Should Work On Your English.") print(str(e)) return try: duuration= round(sduration / 60) if duuration > DURATION_LIMIT: await cb.message.edit(f"Music longer than {DURATION_LIMIT}min are not allowed to play") return except: pass keyboard = InlineKeyboardMarkup( [ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [ InlineKeyboardButton( text="Join Updates Channel", url=f"https://t.me/{updateschannel}" ) ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ] ) file_path = await convert(wget.download(slink)) chat_id = get_chat_id(message_.chat) if chat_id in callsmusic.active_chats: position = await queues.put(chat_id, file=file_path) qeue = que.get(chat_id) s_name = sname r_by = message_.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) await res.delete() m = await client.send_photo( chat_id=message_.chat.id, reply_markup=keyboard, photo="final.png", caption=f"✯{bn}✯=#️⃣ Queued at position {position}", ) else: await res.edit_text(f"{bn}=▶️ Playing.....") que[chat_id] = [] qeue = que.get(chat_id) s_name = sname r_by = message_.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) try: await callsmusic.set_stream(chat_id, file_path) except: res.edit("Group call is not connected of I can't join it") return await res.edit("Generating Thumbnail.") await generate_cover(requested_by, sname, ssingers, sduration, sthumb) await res.delete() m = await client.send_photo( chat_id=message_.chat.id, reply_markup=keyboard, photo="final.png", caption=f"Playing {sname} Via Jiosaavn", ) os.remove("final.png")
async def play(_, message: Message): global que lel = await message.reply("🔄 **işlemde**") administrators = await get_administrators(message.chat) chid = message.chat.id try: user = await USER.get_me() except: user.first_name = "helper" usar = user wew = usar.id try: # chatdetails = await USER.get_chat(chid) await _.get_chat_member(chid, wew) except: for administrator in administrators: if administrator == message.from_user.id: if message.chat.title.startswith("Channel Music: "): await lel.edit( "<b>Kanalda sesli açma yetkisi vermeyi unutma babuş</b>", ) pass try: invitelink = await _.export_chat_invite_link(chid) except: await lel.edit( "<b>Beni grubunuzda sesli sohbet ve davetle bağlantı yetkisi verin yoksa çalışamam...</b>", ) return try: await USER.join_chat(invitelink) await USER.send_message(message.chat.id, "Helloğ ben geldimke") await lel.edit("<b>Tamam artık burda ses botuğ</b>", ) except UserAlreadyParticipant: pass except Exception: # print(e) await lel.edit( f"<b>🔴 Sel bekleme hatası 🔴 \Sayın {user.first_name} userbot için yoğun isteklerden dolayı grubunuza katılamadı! Kullanıcının grupta yasaklanmadığından emin olun." "\n\nYa da @zevzekcalarasistan manuel olarak ekleyin</b>", ) try: await USER.get_chat(chid) # lmoa = await client.get_chat_member(chid,wew) except: await lel.edit( f"<i> {user.first_name} Userbot bu sohbette değil, Yöneticiden ilk kez komut göndermesini /play isteyin veya ekleyin {user.first_name} kendiniz ekleyin</i>" ) return message.from_user.id message.from_user.first_name await lel.edit("🔎 **Finding**") message.from_user.id user_id = message.from_user.id message.from_user.first_name user_name = message.from_user.first_name rpk = "[" + user_name + "](tg://user?id=" + str(user_id) + ")" audio = ((message.reply_to_message.audio or message.reply_to_message.voice) if message.reply_to_message else None) if audio: if round(audio.duration / 60) > DURATION_LIMIT: raise DurationLimitError( f"❌ {DURATION_LIMIT} dakikadan uzun videoların oynatılmasına izin verilmez!" ) keyboard = InlineKeyboardMarkup([ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ]) file_name = get_file_name(audio) title = file_name thumb_name = "https://telegra.ph/file/f6086f8909fbfeb0844f2.png" thumbnail = thumb_name duration = round(audio.duration / 60) views = "Locally added" requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await converter.convert(( await message.reply_to_message.download(file_name) ) if not path.isfile(path.join("downloads", file_name)) else file_name) else: query = "" for i in message.command[1:]: query += " " + str(i) print(query) await lel.edit("🎵 **İşlemde**") ydl_opts = {"format": "bestaudio[ext=m4a]"} try: results = YoutubeSearch(query, max_results=1).to_dict() url = f"https://youtube.com{results[0]['url_suffix']}" # print(results) title = results[0]["title"][:40] thumbnail = results[0]["thumbnails"][0] thumb_name = f"thumb{title}.jpg" thumb = requests.get(thumbnail, allow_redirects=True) open(thumb_name, "wb").write(thumb.content) duration = results[0]["duration"] results[0]["url_suffix"] views = results[0]["views"] except Exception as e: await lel.edit( "Şarkı bulunamadı Başka bir şarkı deneyin veya belki doğru şekilde yazın." ) print(str(e)) return keyboard = InlineKeyboardMarkup([ [ InlineKeyboardButton("📖 Playlist", callback_data="playlist"), InlineKeyboardButton("Menu ⏯ ", callback_data="menu"), ], [InlineKeyboardButton(text="YouTube'da İzle 🎬", url=f"{url}")], [InlineKeyboardButton(text="❌ Close", callback_data="cls")], ]) requested_by = message.from_user.first_name await generate_cover(requested_by, title, views, duration, thumbnail) file_path = await convert(youtube.download(url)) chat_id = get_chat_id(message.chat) if chat_id in callsmusic.pytgcalls.active_calls: position = await queues.put(chat_id, file=file_path) qeue = que.get(chat_id) s_name = title r_by = message.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) await message.reply_photo( photo="final.png", caption= f"#⃣ İstediğiniz şarkı pozisyonda ** sıraya girdi ** {position}!", reply_markup=keyboard, ) os.remove("final.png") return await lel.delete() else: chat_id = get_chat_id(message.chat) que[chat_id] = [] qeue = que.get(chat_id) s_name = title r_by = message.from_user loc = file_path appendable = [s_name, r_by, loc] qeue.append(appendable) try: callsmusic.pytgcalls.join_group_call(chat_id, file_path) except: message.reply( "Dostum sesli sohbet açık değil nasıl müzik çalmamı bekliyorsun..." ) return await message.reply_photo( photo="final.png", reply_markup=keyboard, caption= "Youtube Music aracılığıyla {} tarafından istenen şarkı ▶ ️ ** burada çalınıyor **" .format(message.from_user.mention()), ) os.remove("final.png") return await lel.delete()