diff options
Diffstat (limited to 'module/plugins/crypter')
| -rwxr-xr-x[-rw-r--r--] | module/plugins/crypter/Go4UpCom.py | 33 | 
1 files changed, 18 insertions, 15 deletions
diff --git a/module/plugins/crypter/Go4UpCom.py b/module/plugins/crypter/Go4UpCom.py index 026982014..2d423a1a9 100644..100755 --- a/module/plugins/crypter/Go4UpCom.py +++ b/module/plugins/crypter/Go4UpCom.py @@ -4,18 +4,20 @@ import re  import urlparse  from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +import json  class Go4UpCom(SimpleCrypter):      __name__    = "Go4UpCom"      __type__    = "crypter" -    __version__ = "0.13" +    __version__ = "0.14"      __status__  = "testing"      __pattern__ = r'http://go4up\.com/(dl/\w{12}|rd/\w{12}/\d+)'      __config__  = [("use_premium"       , "bool", "Use premium account if available"   , True),                     ("use_subfolder"     , "bool", "Save package to subfolder"          , True), -                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True)] +                   ("subfolder_per_pack", "bool", "Create a subfolder for each package", True), +                   ("preferred_hoster"  , "int" , "Id of preferred hoster or 0 for all", 0)]      __description__ = """Go4Up.com decrypter plugin"""      __license__     = "GPLv3" @@ -32,19 +34,20 @@ class Go4UpCom(SimpleCrypter):      def get_links(self):          links = [] - -        m = re.search(r'(/download/gethosts/.+?)"', self.html) -        if m: -            self.html = self.load(urlparse.urljoin("http://go4up.com/", m.group(1))) -            pages = [self.load(url) for url in re.findall(self.LINK_PATTERN, self.html)] -        else: -            pages = [self.html] - -        for html in pages: -            try: -                links.append(re.search(r'<b><a href="(.+?)"', html).group(1)) -            except Exception: -                continue +        preference = self.get_config("preferred_hoster") + +        hosterslink_re = re.search(r'(/download/gethosts/.+?)"', self.html) +        if hosterslink_re: +            hosters = self.load(urlparse.urljoin("http://go4up.com/", hosterslink_re.group(1))) +            for hoster in json.loads(hosters): +                if preference != 0 and preference != int(hoster["hostId"]): +                    continue +                pagelink_re = re.search(self.LINK_PATTERN, hoster["link"]) +                if pagelink_re: +                    page = self.load(pagelink_re.group(1)) +                    link_re = re.search(r'<b><a href="(.+?)"', page) +                    if link_re: +                        links.append(link_re.group(1))          return links  | 
