From fe3ccc4bfbe0f799957b66152b00c547419860fa Mon Sep 17 00:00:00 2001 From: peekayy Date: Tue, 26 Feb 2013 00:23:53 +0100 Subject: Added DailymotionCom plugin --- module/plugins/hoster/DailymotionCom.py | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 module/plugins/hoster/DailymotionCom.py (limited to 'module/plugins/hoster/DailymotionCom.py') diff --git a/module/plugins/hoster/DailymotionCom.py b/module/plugins/hoster/DailymotionCom.py new file mode 100644 index 000000000..0385125a4 --- /dev/null +++ b/module/plugins/hoster/DailymotionCom.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import re +from urllib import unquote +from module.plugins.Hoster import Hoster + +class DailymotionCom(Hoster): + __name__ = 'DailymotionCom' + __type__ = 'hoster' + __pattern__ = r'http://www.dailymotion.com/.*' + __version__ = '0.1' + __description__ = """Dailymotion Video Download Hoster""" + __author_name__ = ("Peekayy") + __author_mail__ = ("peekayy.dev@gmail.com") + + def process(self, pyfile): + html = self.load(pyfile.url, decode=True) + + filename = re.search(r'name="title" content="Dailymotion \\-(.*?)\\- ein Film', html) + if filename is None: + filename = re.search(r'', html) + if filename is None: + filename = re.search(r'class="title" title="(.*?)"', html) + if filename is None: + filename = re.search(r'"(?:vs_videotitle|videoTitle|dm_title|ss_mediaTitle)": "(.*?)"', html) + if filename is None: + self.fail("Unable to find file name") + pyfile.name = filename.group(1)+'.mp4' + self.logDebug('Filename='+pyfile.name) + allLinksInfo = re.search(r'"sequence":"(.*?)"', html) + self.logDebug(allLinksInfo.groups()) + allLinksInfo = unquote(allLinksInfo.group(1)) + + dlLink = self.getQuality('hd720URL', allLinksInfo) + if dlLink is None: + dlLink = self.getQuality('hqURL', allLinksInfo) + if dlLink is None: + dlLink = self.getQuality('sdURL', allLinksInfo) + if dlLink is None: + dlLink = self.getQuality('ldURL', allLinksInfo) + if dlLink is None: + self.fail(r'Unable to find video URL') + else: + self.logDebug(dlLink) + self.download(dlLink) + + def getQuality(self, quality, data): + link = re.search('"' + quality + '":"(http:[^<>"\']+)"', data) + if link is None: + return link + else: + return link.group(1).replace('\\','') -- cgit v1.2.3 From 3e60fa039c78d7986707e4dc40f11fe9f6ca89af Mon Sep 17 00:00:00 2001 From: RaNaN Date: Tue, 26 Feb 2013 16:32:38 +0100 Subject: cleaned Dailymotion plugin --- module/plugins/hoster/DailymotionCom.py | 44 ++++++++++++++------------------- 1 file changed, 19 insertions(+), 25 deletions(-) (limited to 'module/plugins/hoster/DailymotionCom.py') diff --git a/module/plugins/hoster/DailymotionCom.py b/module/plugins/hoster/DailymotionCom.py index 0385125a4..1b411393d 100644 --- a/module/plugins/hoster/DailymotionCom.py +++ b/module/plugins/hoster/DailymotionCom.py @@ -17,37 +17,31 @@ class DailymotionCom(Hoster): def process(self, pyfile): html = self.load(pyfile.url, decode=True) - filename = re.search(r'name="title" content="Dailymotion \\-(.*?)\\- ein Film', html) - if filename is None: - filename = re.search(r'', html) - if filename is None: - filename = re.search(r'class="title" title="(.*?)"', html) - if filename is None: - filename = re.search(r'"(?:vs_videotitle|videoTitle|dm_title|ss_mediaTitle)": "(.*?)"', html) - if filename is None: - self.fail("Unable to find file name") + for pattern in (r'name="title" content="Dailymotion \\-(.*?)\\- ein Film', + r'class="title" title="(.*?)"', + r'', + r'"(?:vs_videotitle|videoTitle|dm_title|ss_mediaTitle)": "(.*?)"'): + filename = re.search(pattern, html) + if filename is not None: break + else: + self.fail("Unable to find file name") + pyfile.name = filename.group(1)+'.mp4' self.logDebug('Filename='+pyfile.name) allLinksInfo = re.search(r'"sequence":"(.*?)"', html) self.logDebug(allLinksInfo.groups()) allLinksInfo = unquote(allLinksInfo.group(1)) - - dlLink = self.getQuality('hd720URL', allLinksInfo) - if dlLink is None: - dlLink = self.getQuality('hqURL', allLinksInfo) - if dlLink is None: - dlLink = self.getQuality('sdURL', allLinksInfo) - if dlLink is None: - dlLink = self.getQuality('ldURL', allLinksInfo) - if dlLink is None: - self.fail(r'Unable to find video URL') + + for quality in ('hd720URL', 'hqURL', 'sdURL', 'ldURL', ''): + dlLink = self.getQuality(quality, allLinksInfo) + if dlLink is not None: break else: - self.logDebug(dlLink) - self.download(dlLink) + self.fail(r'Unable to find video URL') + + self.logDebug(dlLink) + self.download(dlLink) def getQuality(self, quality, data): link = re.search('"' + quality + '":"(http:[^<>"\']+)"', data) - if link is None: - return link - else: - return link.group(1).replace('\\','') + if link is not None: + return link.group(1).replace('\\','') \ No newline at end of file -- cgit v1.2.3