summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/SoundcloudCom.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/SoundcloudCom.py')
-rw-r--r--module/plugins/hoster/SoundcloudCom.py24
1 files changed, 12 insertions, 12 deletions
diff --git a/module/plugins/hoster/SoundcloudCom.py b/module/plugins/hoster/SoundcloudCom.py
index cfb07b35d..fd5d1ea6c 100644
--- a/module/plugins/hoster/SoundcloudCom.py
+++ b/module/plugins/hoster/SoundcloudCom.py
@@ -11,7 +11,7 @@ class SoundcloudCom(Hoster):
__type__ = "hoster"
__version__ = "0.10"
- __pattern__ = r'https?://(?:www\.)?soundcloud\.com/(?P<UID>.*?)/(?P<SID>.*)'
+ __pattern__ = r'https?://(?:www\.)?soundcloud\.com/(?P<UID>.+?)/(?P<SID>.+)'
__description__ = """SoundCloud.com hoster plugin"""
__license__ = "GPLv3"
@@ -21,36 +21,36 @@ class SoundcloudCom(Hoster):
def process(self, pyfile):
# default UserAgent of HTTPRequest fails for this hoster so we use this one
self.req.http.c.setopt(pycurl.USERAGENT, 'Mozilla/5.0')
- page = self.load(pyfile.url)
- m = re.search(r'<div class="haudio.*?large.*?" data-sc-track="(?P<ID>\d*)"', page)
+ self.html = self.load(pyfile.url)
+ m = re.search(r'<div class="haudio.*?large.*?" data-sc-track="(?P<ID>\d*)"', self.html)
songId = clientId = ""
if m:
- songId = m.group("ID")
+ songId = m.group('ID')
if len(songId) <= 0:
self.logError(_("Could not find song id"))
self.offline()
else:
- m = re.search(r'"clientID":"(?P<CID>.*?)"', page)
+ m = re.search(r'"clientID":"(?P<CID>.*?)"', self.html)
if m:
- clientId = m.group("CID")
+ clientId = m.group('CID')
if len(clientId) <= 0:
clientId = "b45b1aa10f1ac2941910a7f0d10f8e28"
- m = re.search(r'<em itemprop="name">\s(?P<TITLE>.*?)\s</em>', page)
+ m = re.search(r'<em itemprop="name">\s(?P<TITLE>.*?)\s</em>', self.html)
if m:
- pyfile.name = m.group("TITLE") + ".mp3"
+ pyfile.name = m.group('TITLE') + ".mp3"
else:
- pyfile.name = re.match(self.__pattern__, pyfile.url).group("SID") + ".mp3"
+ pyfile.name = re.match(self.__pattern__, pyfile.url).group('SID') + ".mp3"
# url to retrieve the actual song url
- page = self.load("https://api.sndcdn.com/i1/tracks/%s/streams" % songId, get={"client_id": clientId})
+ self.html = self.load("https://api.sndcdn.com/i1/tracks/%s/streams" % songId, get={"client_id": clientId})
# getting streams
# for now we choose the first stream found in all cases
# it could be improved if relevant for this hoster
streams = [
- (result.group("QUALITY"), result.group("URL"))
- for result in re.finditer(r'"(?P<QUALITY>.*?)":"(?P<URL>.*?)"', page)
+ (result.group('QUALITY'), result.group('URL'))
+ for result in re.finditer(r'"(?P<QUALITY>.*?)":"(?P<URL>.*?)"', self.html)
]
self.logDebug("Found Streams", streams)
self.logDebug("Downloading", streams[0][0], streams[0][1])