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.12"
__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)", ""),
("unloadFailing", "bool", "Revert to stanard download if download fails", "False"),
("interval", "int", "Reload interval in hours (0 to disable)", "24")]
__author_name__ = ("Florian Franzen")
__author_mail__ = ("FlorianFranzen@gmail.com")
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¶ms[login]=%s¶ms[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
return data['result']['hosterlist']
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)