diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2010-08-28 16:42:00 +0200 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2010-08-28 16:42:00 +0200 |
commit | 66e87e5b316b0fa813c8446402944dde770e556e (patch) | |
tree | d99fcfdba0f924360b319594f31d7ff98560561d /module/plugins | |
parent | so.biz fix (diff) | |
download | pyload-66e87e5b316b0fa813c8446402944dde770e556e.tar.xz |
preparation for plugin updates
Diffstat (limited to 'module/plugins')
-rw-r--r-- | module/plugins/hooks/UpdateManager.py | 62 |
1 files changed, 50 insertions, 12 deletions
diff --git a/module/plugins/hooks/UpdateManager.py b/module/plugins/hooks/UpdateManager.py index 2981df9a0..8e2c4368b 100644 --- a/module/plugins/hooks/UpdateManager.py +++ b/module/plugins/hooks/UpdateManager.py @@ -25,35 +25,73 @@ class UpdateManager(Hook): __name__ = "UpdateManager" __version__ = "0.1" __description__ = """checks for updates""" - __config__ = [ ("activated", "bool", "Activated" , "True"), - ("interval", "int", "Check interval in minutes" , "180")] + __config__ = [("activated", "bool", "Activated", "True"), + ("interval", "int", "Check interval in minutes", "180")] __author_name__ = ("RaNaN") __author_mail__ = ("ranan@pyload.org") def setup(self): self.interval = self.getConfig("interval") * 60 - + self.updated = False + def coreReady(self): - #@TODO check plugins, restart, and other stuff + #@TODO check plugins, restart, and other stuff pass - + def periodical(self): - self.checkForUpdate() - - + update = self.checkForUpdate() + if self.updated: + self.log.info(_("*** Plugins were updated, please restart pyLoad ***")) + if not update: + self.checkPlugins() + + def checkForUpdate(self): """ checks if an update is available""" - + try: - version_check = getURL("http://get.pyload.org/check/%s/" % self.core.server_methods.get_server_version() ) + version_check = getURL("http://get.pyload.org/check/%s/" % self.core.server_methods.get_server_version()) if version_check == "": self.log.info(_("No Updates for pyLoad")) return False else: self.log.info(_("*** New pyLoad Version %s available ***") % version_check) - self.log.info(_("*** Get it here: http://get.pyload.org/get/ ***")) + self.log.info(_("*** Get it here: http://pyload.org/download ***")) return True except: self.log.error(_("Not able to connect server")) + return False + + + def checkPlugins(self): + """ checks for plugins updates""" + + string = "" + + string += self.createUpdateList(self.core.pluginManager.crypterPlugins, "crypter") + string += self.createUpdateList(self.core.pluginManager.hosterPlugins, "hoster") + string += self.createUpdateList(self.core.pluginManager.containerPlugins, "container") + string += self.createUpdateList(self.core.pluginManager.accountPlugins, "account") + string += self.createUpdateList(self.core.pluginManager.hookPlugins, "hook") + string += self.createUpdateList(self.core.pluginManager.captchaPlugins, "captcha") + + try: + updates = getURL("updateurl", post={"plugins": string}) + except: + self.log.warning(_("Plugins could not be updated")) + updates = "" + + updates = updates.splitlines() + + for plugin in updates: + type, name, url = plugin.split("|") + print type, name, url + #@TODO save url content to disk + + def createUpdateList(self, plugins, type): + """ create string list for update check """ + string = "" + for name,plugin in plugins.iteritems(): + string += "%s|%s|%s\n" % (type, name, plugin["v"]) -
\ No newline at end of file + return string
\ No newline at end of file |