diff options
Diffstat (limited to 'module/plugins/hoster/VimeoCom.py')
-rw-r--r-- | module/plugins/hoster/VimeoCom.py | 56 |
1 files changed, 24 insertions, 32 deletions
diff --git a/module/plugins/hoster/VimeoCom.py b/module/plugins/hoster/VimeoCom.py index 2c7f4b9c3..f7485f025 100644 --- a/module/plugins/hoster/VimeoCom.py +++ b/module/plugins/hoster/VimeoCom.py @@ -1,18 +1,4 @@ # -*- coding: utf-8 -*- -############################################################################ -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -############################################################################ import re @@ -20,36 +6,42 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo class VimeoCom(SimpleHoster): - __name__ = "VimeoCom" - __type__ = "hoster" + __name__ = "VimeoCom" + __type__ = "hoster" + __version__ = "0.04" + __pattern__ = r'https?://(?:www\.)?(player\.)?vimeo\.com/(video/)?(?P<ID>\d+)' - __version__ = "0.01" __config__ = [("quality", "Lowest;Mobile;SD;HD;Highest", "Quality", "Highest"), ("original", "bool", "Try to download the original file first", True)] + __description__ = """Vimeo.com hoster plugin""" - __author_name__ = "Walter Purcaro" - __author_mail__ = "vuolter@gmail.com" + __license__ = "GPLv3" + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] + - FILE_NAME_PATTERN = r'<title>(?P<N>.+) on Vimeo<' - OFFLINE_PATTERN = r'class="exception_header"' + NAME_PATTERN = r'<title>(?P<N>.+) on Vimeo<' + OFFLINE_PATTERN = r'class="exception_header"' TEMP_OFFLINE_PATTERN = r'Please try again in a few minutes.<' - FILE_URL_REPLACEMENTS = [(__pattern__, r'https://www.vimeo.com/\g<ID>')] + URL_REPLACEMENTS = [(__pattern__ + ".*", r'https://www.vimeo.com/\g<ID>')] - SH_COOKIES = [(".vimeo.com", "language", "en")] + COOKIES = [("vimeo.com", "language", "en")] def setup(self): - self.resumeDownload = self.multiDL = True - self.chunkLimit = -1 + self.resumeDownload = True + self.multiDL = True + self.chunkLimit = -1 + + + def handleFree(self, pyfile): + password = self.getPassword() - def handleFree(self): if self.js and 'class="btn iconify_down_b"' in self.html: - html = self.js.eval(self.load(self.pyfile.url, get={'action': "download"}, decode=True)) + html = self.js.eval(self.load(pyfile.url, get={'action': "download", 'password': password}, decode=True)) pattern = r'href="(?P<URL>http://vimeo\.com.+?)".*?\>(?P<QL>.+?) ' else: - id = re.match(self.__pattern__, self.pyfile.url).group("ID") - html = self.load("https://player.vimeo.com/video/" + id) + html = self.load("https://player.vimeo.com/video/" + self.info['pattern']['ID'], get={'password': password}) pattern = r'"(?P<QL>\w+)":{"profile".*?"(?P<URL>http://pdl\.vimeocdn\.com.+?)"' link = dict([(l.group('QL').lower(), l.group('URL')) for l in re.finditer(pattern, html)]) @@ -59,7 +51,7 @@ class VimeoCom(SimpleHoster): self.download(link[q]) return else: - self.logInfo("Original file not downloadable") + self.logInfo(_("Original file not downloadable")) quality = self.getConfig("quality") if quality == "Highest": @@ -74,9 +66,9 @@ class VimeoCom(SimpleHoster): self.download(link[q]) return else: - self.logInfo("No %s quality video found" % q.upper()) + self.logInfo(_("No %s quality video found") % q.upper()) else: - self.fail("No video found!") + self.fail(_("No video found!")) getInfo = create_getInfo(VimeoCom) |