diff options
| author | 2013-10-16 11:32:25 +0200 | |
|---|---|---|
| committer | 2013-10-16 11:32:25 +0200 | |
| commit | 9012e589ad0b46b6eee24fa59bd34cd8b19bdb46 (patch) | |
| tree | 8f1cb5ff393bd37cab604d4a54e3d86314f76218 /module/plugins/hoster | |
| parent | Merge pull request #321 from vuolter/s/dead_crypters (diff) | |
| download | pyload-9012e589ad0b46b6eee24fa59bd34cd8b19bdb46.tar.xz | |
Putlocker: merged #322
+ cleanup
Diffstat (limited to 'module/plugins/hoster')
| -rw-r--r-- | module/plugins/hoster/PutlockerCom.py | 46 | 
1 files changed, 31 insertions, 15 deletions
| diff --git a/module/plugins/hoster/PutlockerCom.py b/module/plugins/hoster/PutlockerCom.py index 8d1305820..0b049b28d 100644 --- a/module/plugins/hoster/PutlockerCom.py +++ b/module/plugins/hoster/PutlockerCom.py @@ -18,6 +18,7 @@  """  import re +from os import rename  from module.plugins.internal.SimpleHoster import SimpleHoster @@ -26,25 +27,26 @@ class PutlockerCom(SimpleHoster):      __name__ = "PutlockerCom"      __type__ = "hoster"      __pattern__ = r'http://(www\.)?putlocker\.com/(file|embed)/[A-Z0-9]+' -    __version__ = "0.28" +    __version__ = "0.29"      __description__ = """Putlocker.Com""" -    __author_name__ = ("jeix", "stickell") -    __author_mail__ = ("l.stickell@yahoo.it") +    __author_name__ = ("jeix", "stickell", "Walter Purcaro") +    __author_mail__ = ("", "l.stickell@yahoo.it", "vuolter@gmail.com")      FILE_OFFLINE_PATTERN = r"This file doesn't exist, or has been removed."      FILE_INFO_PATTERN = r'site-content">\s*<h1>(?P<N>.+)<strong>\( (?P<S>[^)]+) \)</strong></h1>' -    def handleFree(self): +    FILE_URL_REPLACEMENTS = [(r'http://putlocker\.com', r'http://www.putlocker.com')] + +    def setup(self):          self.multiDL = self.resumeDownload = True          self.chunkLimit = -1 -        self.pyfile.url = re.sub(r'http://putlocker\.com', r'http://www.putlocker.com', self.pyfile.url) - -        self.html = self.load(self.pyfile.url, decode=True) +    def handleFree(self): +        name = self.pyfile.name          link = self._getLink() -        if not link.startswith('http://'): -            link = "http://www.putlocker.com" + link -        self.download(link) +        self.logDebug("Direct link: " + link) +        self.download(link, disposition=True) +        self.processName(name)      def _getLink(self):          hash_data = re.search(r'<input type="hidden" value="([a-z0-9]+)" name="hash">', self.html) @@ -54,12 +56,12 @@ class PutlockerCom(SimpleHoster):          post_data = {"hash": hash_data.group(1), "confirm": "Continue+as+Free+User"}          self.html = self.load(self.pyfile.url, post=post_data)          if ">You have exceeded the daily stream limit for your country\\. You can wait until tomorrow" in self.html or \ -                        "(>This content server has been temporarily disabled for upgrades|Try again soon\\. You can still download it below\\.<)" in self.html: -            self.retry(wait_time=2 * 60 * 60, reason="Download limit exceeded or server disabled") +           "(>This content server has been temporarily disabled for upgrades|Try again soon\\. You can still download it below\\.<)" in self.html: +            self.retry(wait_time=7200, reason="Download limit exceeded or server disabled")  # 2 hours wait          patterns = (r'(/get_file\.php\?id=[A-Z0-9]+&key=[A-Za-z0-9=]+&original=1)', -                    r"(/get_file\.php\?download=[A-Z0-9]+&key=[a-z0-9]+)", -                    r"(/get_file\.php\?download=[A-Z0-9]+&key=[a-z0-9]+&original=1)", +                    r'(/get_file\.php\?download=[A-Z0-9]+&key=[a-z0-9]+)', +                    r'(/get_file\.php\?download=[A-Z0-9]+&key=[a-z0-9]+&original=1)',                      r'<a href="/gopro\.php">Tired of ads and waiting\? Go Pro!</a>[\t\n\rn ]+</div>[\t\n\rn ]+<a href="(/.*?)"')          for pattern in patterns:              link = re.search(pattern, self.html) @@ -75,4 +77,18 @@ class PutlockerCom(SimpleHoster):              else:                  self.parseError('Unable to detect a download link') -        return link.group(1).replace("&", "&") +        link = link.group(1).replace("&", "&") +        if link.startswith("http://"): +            return link +        else: +            return "http://www.putlocker.com" + link + +    def processName(self, name_old): +        name = self.pyfile.name +        if name <= name_old: +            return +        name_new = re.sub(r'\.[^.]+$', "", name_old) + name[len(name_old):] +        file = self.lastDownload +        self.pyfile.name = name_new +        rename(file, file.rsplit(name)[0] + name_new) +        self.logInfo("%(name)s renamed to %(newname)s" % {"name": name, "newname": name_new}) | 
