35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
|
#--require-config soundcloud-api-key
|
||
|
|
||
|
import json, time
|
||
|
import Utils
|
||
|
|
||
|
URL_SOUNDCLOUD = "http://api.soundcloud.com/tracks"
|
||
|
|
||
|
class Module(object):
|
||
|
_name = "SoundCloud"
|
||
|
def __init__(self, bot):
|
||
|
self.bot = bot
|
||
|
bot.events.on("received").on("command").on("soundcloud", "sc"
|
||
|
).hook(self.soundcloud, min_args=1, help="Search SoundCloud")
|
||
|
|
||
|
def soundcloud(self, event):
|
||
|
page = Utils.get_url(URL_SOUNDCLOUD, get_params={
|
||
|
"client_id": self.bot.config["soundcloud-api-key"],
|
||
|
"limit": 1, "q": event["args"]}, json=True)
|
||
|
if page:
|
||
|
if page:
|
||
|
page = page[0]
|
||
|
title = page["title"]
|
||
|
user = page["user"]["username"]
|
||
|
duration = time.strftime("%H:%M:%S", time.gmtime(page[
|
||
|
"duration"]/1000))
|
||
|
if duration.startswith("00:"):
|
||
|
duration = duration[3:]
|
||
|
link = page["permalink_url"]
|
||
|
event["stdout"].write("%s [%s] (posted by %s) %s" % (title,
|
||
|
duration, user, link))
|
||
|
else:
|
||
|
event["stderr"].write("No results found")
|
||
|
else:
|
||
|
event["stderr"].write("Failed to load results")
|