diff options
| -rw-r--r-- | module/plugins/accounts/ZeveraCom.py | 2 | ||||
| -rw-r--r-- | module/plugins/hooks/EasybytezCom.py | 17 | ||||
| -rw-r--r-- | module/plugins/internal/MultiHook.py | 49 | ||||
| -rw-r--r-- | module/plugins/internal/SimpleHoster.py | 4 | 
4 files changed, 36 insertions, 36 deletions
diff --git a/module/plugins/accounts/ZeveraCom.py b/module/plugins/accounts/ZeveraCom.py index 8c7ab161e..6c69a974f 100644 --- a/module/plugins/accounts/ZeveraCom.py +++ b/module/plugins/accounts/ZeveraCom.py @@ -28,7 +28,7 @@ class ZeveraCom(Account):          if not self.HOSTER_DOMAIN:              self.logError(_("Missing HOSTER_DOMAIN")) -        if not self.API_URL: +        if not hasattr(self, "API_URL"):              self.API_URL = "http://api.%s/jDownloader.ashx" % (self.HOSTER_DOMAIN or "") diff --git a/module/plugins/hooks/EasybytezCom.py b/module/plugins/hooks/EasybytezCom.py index c460de7b7..e08127514 100644 --- a/module/plugins/hooks/EasybytezCom.py +++ b/module/plugins/hooks/EasybytezCom.py @@ -26,18 +26,7 @@ class EasybytezCom(MultiHook):      def getHosters(self):          user, data = self.account.selectAccount() -        try: -            req  = self.account.getAccountRequest(user) -            page = req.load("http://www.easybytez.com") +        req  = self.account.getAccountRequest(user) +        page = req.load("http://www.easybytez.com") -            hosters = re.search(r'</textarea>\s*Supported sites:(.*)', page).group(1).split(',') - -        except Exception, e: -            self.logWarning(_("Unable to load supported hoster list, using last known")) -            self.logDebug(e) - -            hosters = ["bitshare.com", "crocko.com", "ddlstorage.com", "depositfiles.com", "extabit.com", "hotfile.com", -                       "mediafire.com", "netload.in", "rapidgator.net", "rapidshare.com", "uploading.com", "uload.to", -                       "uploaded.to"] -        finally: -            return hosters +        return re.search(r'</textarea>\s*Supported sites:(.*)', page).group(1).split(',') diff --git a/module/plugins/internal/MultiHook.py b/module/plugins/internal/MultiHook.py index 8bf72f21b..a3b266679 100644 --- a/module/plugins/internal/MultiHook.py +++ b/module/plugins/internal/MultiHook.py @@ -2,6 +2,8 @@  import re +from time import sleep +  from module.plugins.Hook import Hook  from module.utils import decode, remove_chars @@ -9,7 +11,7 @@ from module.utils import decode, remove_chars  class MultiHook(Hook):      __name__    = "MultiHook"      __type__    = "hook" -    __version__ = "0.34" +    __version__ = "0.35"      __config__ = [("pluginmode"    , "all;listed;unlisted", "Use for plugins"                     , "all"),                    ("pluginlist"    , "str"                , "Plugin list (comma separated)"       , ""   ), @@ -114,34 +116,43 @@ class MultiHook(Hook):      def pluginsCached(self): -        if not self.plugins: +        if self.plugins: +            return self.plugins +             +        for _i in xrange(3):              try:                  pluginset = self._pluginSet(self.getHosters() if self.plugintype == "hoster" else self.getCrypters()) +                          except Exception, e: -                self.logError(e) -                return [] +                self.logError(e, "Waiting 1 minute and retry") +                sleep(60) +             +            else: +                break +        else: +            return list() -            try: -                configmode = self.getConfig("pluginmode", 'all') -                if configmode in ("listed", "unlisted"): -                    pluginlist = self.getConfig("pluginlist", '').replace('|', ',').replace(';', ',').split(',') -                    configset  = self._pluginSet(pluginlist) +        try: +            configmode = self.getConfig("pluginmode", 'all') +            if configmode in ("listed", "unlisted"): +                pluginlist = self.getConfig("pluginlist", '').replace('|', ',').replace(';', ',').split(',') +                configset  = self._pluginSet(pluginlist) -                    if configmode == "listed": -                        pluginset &= configset -                    else: -                        pluginset -= configset +                if configmode == "listed": +                    pluginset &= configset +                else: +                    pluginset -= configset -            except Exception, e: -                self.logError(e) +        except Exception, e: +            self.logError(e) -            self.plugins = list(pluginset) +        self.plugins = list(pluginset)          return self.plugins      def _pluginSet(self, plugins): -        plugins = set((decode(x).strip().lower() for x in plugins)) +        plugins = set((decode(x).strip().lower() for x in plugins if '.' in x))          for rf, rt in self.DOMAIN_REPLACEMENTS:              regex = re.compile(rf) @@ -238,7 +249,7 @@ class MultiHook(Hook):              self.logDebug("New %ss: %s" % (self.plugintype, ", ".join(plugins)))              # create new regexp -            regexp = r'.*(%s).*' % "|".join([x.replace(".", "\.") for x in plugins]) +            regexp = r'.*(?P<DOMAIN>%s).*' % "|".join([x.replace(".", "\.") for x in plugins])              if hasattr(self.pluginclass, "__pattern__") and isinstance(self.pluginclass.__pattern__, basestring) and '://' in self.pluginclass.__pattern__:                  regexp = r'%s|%s' % (self.pluginclass.__pattern__, regexp) @@ -287,7 +298,7 @@ class MultiHook(Hook):                  wait_time = max(self.getConfig("retryinterval", 1), 0)                  if 0 < retries > pyfile.plugin.retries: +                    pyfile.setCustomStatus("MultiHook", "queued")                      pyfile.plugin.retries += 1 -                    pyfile.plugin.setCustomStatus("MultiHook", "queued")                      pyfile.plugin.setWait(wait_time)                      pyfile.plugin.wait() diff --git a/module/plugins/internal/SimpleHoster.py b/module/plugins/internal/SimpleHoster.py index fb19b8725..5a32ac943 100644 --- a/module/plugins/internal/SimpleHoster.py +++ b/module/plugins/internal/SimpleHoster.py @@ -183,7 +183,7 @@ def secondsToMidnight(gmt=0):  class SimpleHoster(Hoster):      __name__    = "SimpleHoster"      __type__    = "hoster" -    __version__ = "0.93" +    __version__ = "0.94"      __pattern__ = r'^unmatchable$' @@ -441,7 +441,7 @@ class SimpleHoster(Hoster):          elif not self.lastDownload or not exists(fs_encode(self.lastDownload)):              self.lastDownload = "" -            self.fail(errmsg, self.pyfile.error or _("No file downloaded")) +            self.fail(self.pyfile.error or _("No file downloaded"))          else:              rules = {'empty file': re.compile(r'\A\Z'),  | 
