summaryrefslogtreecommitdiffstats
path: root/module/plugins/hooks/PremiumizeMe.py
diff options
context:
space:
mode:
authorGravatar Florian Franzen <FlorianFranzen@gmail.com> 2012-04-09 18:30:54 +0200
committerGravatar Florian Franzen <FlorianFranzen@gmail.com> 2012-04-09 18:30:54 +0200
commit3be8d531ce7c6500170bde8b8dbe49e7dc59ad39 (patch)
treea53ed551df68110ee398945c1a88a5da7cf83b4d /module/plugins/hooks/PremiumizeMe.py
parenticyfiles, bayfiles by godofdream, alldebrid json api, zevera python 2.5 compat. (diff)
downloadpyload-3be8d531ce7c6500170bde8b8dbe49e7dc59ad39.tar.xz
Added premiumize.me support, using their new API (https://secure.premiumize.me/?show=api). This fixes #416.
Diffstat (limited to 'module/plugins/hooks/PremiumizeMe.py')
-rw-r--r--module/plugins/hooks/PremiumizeMe.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/module/plugins/hooks/PremiumizeMe.py b/module/plugins/hooks/PremiumizeMe.py
new file mode 100644
index 000000000..3825e9219
--- /dev/null
+++ b/module/plugins/hooks/PremiumizeMe.py
@@ -0,0 +1,65 @@
+from module.plugins.internal.MultiHoster import MultiHoster
+
+from module.common.json_layer import json_loads
+from module.network.RequestFactory import getURL
+
+class PremiumizeMe(MultiHoster):
+ __name__ = "PremiumizeMe"
+ __version__ = "0.1"
+ __type__ = "hook"
+ __description__ = """Premiumize.Me hook plugin"""
+
+ __config__ = [("activated", "bool", "Activated", "False"),
+ ("hosterListMode", "all;listed;unlisted", "Use for hosters (if supported):", "all"),
+ ("hosterList", "str", "Hoster list (comma separated)", "")]
+
+ __author_name__ = ("Florian Franzen")
+ __author_mail__ = ("FlorianFranzen@gmail.com")
+
+ replacements = [("freakshare.net", "freakshare.com")]
+
+ interval = 0 # Disable periodic calls, we dont use them anyway
+
+ def getHoster(self):
+ # If no accounts are available there will be no hosters available
+ if not self.account or not self.account.canUse():
+ return []
+
+ # Get account data
+ (user, data) = self.account.selectAccount()
+
+ # Get supported hosters list from premiumize.me using the json API v1 (see https://secure.premiumize.me/?show=api)
+ answer = getURL("https://api.premiumize.me/pm-api/v1.php?method=hosterlist&params[login]=%s&params[pass]=%s" % (user, data['password']))
+ data = json_loads(answer)
+
+
+ # If account is not valid thera are no hosters available
+ if data['status'] != 200:
+ return []
+
+ # Extract hosters from json file
+ hosters = set(data['result']['hosterlist'])
+
+
+ # Read config to check if certain hosters should not be handled
+ configMode = self.getConfig('hosterListMode')
+ if configMode in ("listed", "unlisted"):
+ configList = set(self.getConfig('hosterList').strip().lower().replace('|',',').replace(';',',').split(','))
+ configList.discard(u'')
+ if configMode == "listed":
+ hosters &= configList
+ else:
+ hosters -= configList
+
+ return list(hosters)
+
+ def coreReady(self):
+ # Get account plugin and check if there is a valid account available
+ self.account = self.core.accountManager.getAccountPlugin("PremiumizeMe")
+ if not self.account.canUse():
+ self.account = None
+ self.logError(_("Please add a valid premiumize.me account first and restart pyLoad."))
+ return
+
+ # Run the overwriten core ready which actually enables the multihoster hook
+ return MultiHoster.coreReady(self) \ No newline at end of file