async def jiosaavn(_, message: Message): global blacks, is_playing, current_player, s, m, d if message.from_user.id in blacks: await message.reply_text("You're Blacklisted, So Stop Spamming.") return elif is_playing: list_of_admins = await getadmins(message.chat.id) if message.from_user.id in list_of_admins: pass else: d = await message.reply_text( text="stop interrupting while others playing!", disable_notification=True, ) await asyncio.sleep(2) # 2 sec delay before deletion await d.delete() await message.delete() return elif len(message.command) < 2: await message.reply_text("/jiosaavn requires an argument") return await prepare(s, m, message) query = kwairi(message) current_player = message.from_user.id is_playing = True m = await message.reply_text(f"Searching for `{query}`on JioSaavn") 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 = r[0]["duration"] sduration_converted = convert_seconds(int(sduration)) except Exception as e: await m.edit( "Found Literally Nothing!, You Should Work On Your English.") print(str(e)) is_playing = False return await m.edit("Processing Thumbnail.") await generate_cover_square(message, sname, ssingers, sduration_converted, sthumb) await m.delete() m = await message.reply_photo( caption= f"Playing `{sname}` Via Jiosaavn #music\nRequested by {message.from_user.first_name}", photo="final.png", reply_markup=InlineKeyboardMarkup( [[InlineKeyboardButton("STOP", callback_data="end")]]), parse_mode="markdown", ) s = await asyncio.create_subprocess_shell( f"mpv {slink} --no-video", stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, ) await s.wait() await m.delete() is_playing = False
async def ytplay(_, message: Message): global blacks, is_playing, current_player, s, m, d if message.from_user.id in blacks: await message.reply_text("You're Blacklisted, So Stop Spamming.") return elif is_playing: list_of_admins = await getadmins(message.chat.id) if message.from_user.id in list_of_admins: pass else: d = await message.reply_text( text="stop interrupting while others playing!", disable_notification=True, ) await asyncio.sleep(2) # 2 sec delay before deletion await d.delete() await message.delete() return elif len(message.command) < 2: await message.reply_text("/youtube requires one argument") return await prepare(s, m, message) ydl_opts = {"format": "bestaudio"} query = kwairi(message) current_player = message.from_user.id is_playing = True m = await message.reply_text(f"Searching for `{query}`on YouTube") try: results = YoutubeSearch(query, max_results=1).to_dict() link = f"https://youtube.com{results[0]['url_suffix']}" title = results[0]["title"] thumbnail = results[0]["thumbnails"][0] duration = results[0]["duration"] views = results[0]["views"] if time_to_seconds(duration) >= 1800: #duration limit await m.edit("Bruh! Only songs within 30 Mins") is_playing = False return except Exception as e: await m.edit( "Found Literally Nothing!, You Should Work On Your English.") is_playing = False print(str(e)) return await m.edit("Processing Thumbnail.") await generate_cover(message, title, views, duration, thumbnail) await m.edit("Downloading Music.") with youtube_dl.YoutubeDL(ydl_opts) as ydl: info_dict = ydl.extract_info(link, download=False) audio_file = ydl.prepare_filename(info_dict) ydl.process_info(info_dict) os.rename(audio_file, "audio.webm") await m.delete() m = await message.reply_photo( caption= f"Playing [{title}]({link}) Via YouTube #music\nRequested by {message.from_user.first_name}", photo="final.png", reply_markup=InlineKeyboardMarkup( [[InlineKeyboardButton("STOP", callback_data="end")]]), parse_mode="markdown", ) os.remove("final.png") s = await asyncio.create_subprocess_shell( "mpv audio.webm --no-video", stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, ) await s.wait() await m.delete() is_playing = False
async def deezer(_, message: Message): global blacks, is_playing, current_player, s, m, d if message.from_user.id in blacks: await message.reply_text("You're Blacklisted, So Stop Spamming.") return elif is_playing: list_of_admins = await getadmins(message.chat.id) if message.from_user.id in list_of_admins: pass else: d = await message.reply_text( text="stop interrupting while others playing!", disable_notification=True, ) await asyncio.sleep(2) # 2 sec delay before deletion await d.delete() await message.delete() return elif len(message.command) < 2: await message.reply_text("/deezer requires an argument") return await prepare(s, m, message) query = kwairi(message) current_player = message.from_user.id is_playing = True m = await message.reply_text(f"Searching for `{query}`on Deezer") try: async with aiohttp.ClientSession() as session: async with session.get( f"http://52.0.6.104:8000/deezer/{query}/1") as resp: r = json.loads(await resp.text()) title = r[0]["title"] duration = convert_seconds(int(r[0]["duration"])) thumbnail = r[0]["thumbnail"] artist = r[0]["artist"] url = r[0]["url"] except: await m.edit( "Found Literally Nothing, You Should Work On Your English!") is_playing = False return await m.edit("Generating Thumbnail") await generate_cover_square(message, title, artist, duration, thumbnail) await m.delete() m = await message.reply_photo( caption= f"Playing `{title}` Via Deezer #music\nRequested by {message.from_user.first_name}", photo="final.png", reply_markup=InlineKeyboardMarkup( [[InlineKeyboardButton("STOP", callback_data="end")]]), parse_mode="markdown", ) s = await asyncio.create_subprocess_shell( f"mpv {url} --no-video", stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, ) await s.wait() await m.delete() is_playing = False