forked from TeamUltroid/Ultroid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsaavn.py
69 lines (63 loc) · 1.84 KB
/
saavn.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Ultroid - UserBot
# Copyright (C) 2021 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
"""
✘ Commands Available -
• `{i}saavn <search query>`
Download songs from Saavn
"""
import os
import time
from urllib.request import urlretrieve
import requests as r
from telethon.tl.types import DocumentAttributeAudio
from . import *
@ultroid_cmd(
pattern="saavn ?(.*)",
)
async def siesace(e):
song = e.pattern_match.group(1)
if not song:
return await eod(e, "`Give me Something to Search")
hmm = time.time()
lol = await eor(e, "`Searching on Saavn...`")
sung = song.replace(" ", "%20")
url = f"https://jostapi.herokuapp.com/saavn?query={sung}"
try:
k = (r.get(url)).json()[0]
except IndexError:
return await eod(lol, "`Song Not Found.. `")
except Exception as ex:
return await eod(lol, f"`{str(ex)}`")
try:
title = k["song"]
urrl = k["media_url"]
img = k["image"]
duration = k["duration"]
singers = k["primary_artists"]
except Exception as ex:
return await eod(lol, f"`{str(ex)}`")
urlretrieve(urrl, title + ".mp3")
urlretrieve(img, title + ".jpg")
okk = await uploader(
title + ".mp3", title + ".mp3", hmm, lol, "Uploading " + title + "..."
)
await e.reply(
file=okk,
message="`" + title + "`" + "\n`From Saavn`",
attributes=[
DocumentAttributeAudio(
duration=int(duration),
title=title,
performer=singers,
)
],
supports_streaming=True,
thumb=title + ".jpg",
)
await lol.delete()
os.remove(title + ".mp3")
os.remove(title + ".jpg")