summaryrefslogtreecommitdiffstats
path: root/module/plugins/crypter/Go4UpCom.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/crypter/Go4UpCom.py')
-rwxr-xr-x[-rw-r--r--]module/plugins/crypter/Go4UpCom.py33
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