diff options
Diffstat (limited to 'module/plugins/hooks/PremiumizeMe.py')
| -rw-r--r-- | module/plugins/hooks/PremiumizeMe.py | 54 | 
1 files changed, 54 insertions, 0 deletions
| diff --git a/module/plugins/hooks/PremiumizeMe.py b/module/plugins/hooks/PremiumizeMe.py new file mode 100644 index 000000000..5199adc2f --- /dev/null +++ b/module/plugins/hooks/PremiumizeMe.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- + +from pyload.utils import json_loads +from pyload.network.RequestFactory import getURL +from pyload.plugin.internal.MultiHoster import MultiHoster + + +class PremiumizeMe(MultiHoster): +    __name__    = "PremiumizeMe" +    __type__    = "hook" +    __version__ = "0.12" + +    __config__ = [("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)] + +    __description__ = """Premiumize.me hook plugin""" +    __license__     = "GPLv3" +    __authors__     = [("Florian Franzen", "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" +                        get={'method': "hosterlist", 'params[login]': user, 'params[pass]': 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 activate(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.activate(self) | 
