diff options
Diffstat (limited to 'pyload/plugins/addons')
-rw-r--r-- | pyload/plugins/addons/ClickAndLoad.py | 6 | ||||
-rw-r--r-- | pyload/plugins/addons/DeleteFinished.py | 89 | ||||
-rw-r--r-- | pyload/plugins/addons/Ev0InFetcher.py | 8 | ||||
-rw-r--r-- | pyload/plugins/addons/ExtractArchive.py | 4 | ||||
-rw-r--r-- | pyload/plugins/addons/HotFolder.py | 4 | ||||
-rw-r--r-- | pyload/plugins/addons/IRCInterface.py | 14 | ||||
-rw-r--r-- | pyload/plugins/addons/MergeFiles.py | 10 | ||||
-rw-r--r-- | pyload/plugins/addons/MultiHome.py | 4 | ||||
-rw-r--r-- | pyload/plugins/addons/RehostTo.py | 4 | ||||
-rw-r--r-- | pyload/plugins/addons/UpdateManager.py | 18 | ||||
-rw-r--r-- | pyload/plugins/addons/XMPPInterface.py | 20 |
11 files changed, 86 insertions, 95 deletions
diff --git a/pyload/plugins/addons/ClickAndLoad.py b/pyload/plugins/addons/ClickAndLoad.py index 6d6928557..fcc2cf24e 100644 --- a/pyload/plugins/addons/ClickAndLoad.py +++ b/pyload/plugins/addons/ClickAndLoad.py @@ -25,7 +25,7 @@ from module.plugins.Addon import Addon class ClickAndLoad(Addon): __name__ = "ClickAndLoad" - __version__ = "0.2" + __version__ = "0.21" __description__ = """Gives abillity to use jd's click and load. depends on webinterface""" __config__ = [("activated", "bool", "Activated", "True"), ("extern", "bool", "Allow external link adding", "False")] @@ -43,7 +43,7 @@ class ClickAndLoad(Addon): thread.start_new_thread(proxy, (self, ip, self.port, 9666)) except: - self.log.error("ClickAndLoad port already in use.") + self.logError("ClickAndLoad port already in use.") def proxy(self, *settings): @@ -71,7 +71,7 @@ def server(self, *settings): errno = e.args[0] if errno == 98: - self.core.log.warning(_("Click'N'Load: Port 9666 already in use")) + self.logWarning(_("Click'N'Load: Port 9666 already in use")) return thread.start_new_thread(server, (self,) + settings) except: diff --git a/pyload/plugins/addons/DeleteFinished.py b/pyload/plugins/addons/DeleteFinished.py index 01cb1b8e1..155158701 100644 --- a/pyload/plugins/addons/DeleteFinished.py +++ b/pyload/plugins/addons/DeleteFinished.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -""" +''' This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, @@ -15,79 +15,70 @@ along with this program; if not, see <http://www.gnu.org/licenses/>. @author: Walter Purcaro -""" +''' from module.database import style from module.plugins.Hook import Hook class DeleteFinished(Hook): - __name__ = "DeleteFinished" - __version__ = "1.02" - __description__ = "Automatically delete finished packages from queue" + __name__ = 'DeleteFinished' + __version__ = '1.09' + __description__ = 'Automatically delete all finished packages from queue' __config__ = [ - ("activated", "bool", "Activated", "False"), - ("interval", "int", "Delete every (hours)", "72") + ('activated', 'bool', 'Activated', 'False'), + ('interval', 'int', 'Delete every (hours)', '72'), + ('deloffline', 'bool', 'Delete packages with offline links', 'False') ] - __author_name__ = ("Walter Purcaro") - __author_mail__ = ("vuolter@gmail.com") + __author_name__ = ('Walter Purcaro') + __author_mail__ = ('vuolter@gmail.com') ## overwritten methods ## def periodical(self): - # self.logDebug("self.periodical") - if not self.info["sleep"]: - self.logInfo("self.deleteFinished") - self.deleteFinished() - self.info["sleep"] = True - self.addEvent("packageFinished", self.wakeup) + if not self.info['sleep']: + deloffline = self.getConfig('deloffline') + mode = '0,1,4' if deloffline else '0,4' + msg = 'delete all finished packages in queue list (%s packages with offline links)' + self.logInfo(msg % ('including' if deloffline else 'excluding')) + self.deleteFinished(mode) + self.info['sleep'] = True + self.addEvent('packageFinished', self.wakeup) def pluginConfigChanged(self, plugin, name, value): - # self.logDebug("self.pluginConfigChanged") - if name == "interval" and value != self.interval: - self.interval = value + if name == 'interval' and value != self.interval: + self.interval = value * 3600 self.initPeriodical() def unload(self): - # self.logDebug("self.unload") - self.removeEvent("packageFinished", self.wakeup) + self.removeEvent('packageFinished', self.wakeup) def coreReady(self): - # self.logDebug("self.coreReady") - self.info = {"sleep": True} - interval = self.getConfig("interval") * 3600 - self.pluginConfigChanged("DeleteFinished", "interval", interval) - self.addEvent("packageFinished", self.wakeup) + self.info = {'sleep': True} + interval = self.getConfig('interval') + self.pluginConfigChanged('DeleteFinished', 'interval', interval) + self.addEvent('packageFinished', self.wakeup) ## own methods ## @style.queue - def deleteFinished(self): - self.c.execute("DELETE FROM packages WHERE NOT EXISTS(SELECT 1 FROM links WHERE package=packages.id AND status NOT IN (0,4))") - self.c.execute("DELETE FROM links WHERE NOT EXISTS(SELECT 1 FROM packages WHERE id=links.package)") + def deleteFinished(self, mode): + self.c.execute('DELETE FROM packages WHERE NOT EXISTS(SELECT 1 FROM links WHERE package=packages.id AND status NOT IN (%s))' % mode) + self.c.execute('DELETE FROM links WHERE NOT EXISTS(SELECT 1 FROM packages WHERE id=links.package)') def wakeup(self, pypack): - # self.logDebug("self.wakeup") - self.removeEvent("packageFinished", self.wakeup) - self.info["sleep"] = False + self.removeEvent('packageFinished', self.wakeup) + self.info['sleep'] = False ## event managing ## - def addEvent(self, event, handler): - if event in self.manager.events: - if handler not in self.manager.events[event]: - self.manager.events[event].append(handler) - # self.logDebug("self.addEvent: " + event + ": added handler") + def addEvent(self, event, func): + '''Adds an event listener for event name''' + if event in self.m.events: + if func in self.m.events[event]: + self.logDebug('Function already registered %s' % func) else: - # self.logDebug("self.addEvent: " + event + ": NOT added handler") - return False + self.m.events[event].append(func) else: - self.manager.events[event] = [handler] - # self.logDebug("self.addEvent: " + event + ": added event and handler") - return True + self.m.events[event] = [func] - def removeEvent(self, event, handler): - if event in self.manager.events and handler in self.manager.events[event]: - self.manager.events[event].remove(handler) - # self.logDebug("self.removeEvent: " + event + ": removed handler") - return True - else: - # self.logDebug("self.removeEvent: " + event + ": NOT removed handler") - return False + def setup(self): + self.m = self.manager + self.removeEvent = self.m.removeEvent diff --git a/pyload/plugins/addons/Ev0InFetcher.py b/pyload/plugins/addons/Ev0InFetcher.py index 608baf217..970c70cd5 100644 --- a/pyload/plugins/addons/Ev0InFetcher.py +++ b/pyload/plugins/addons/Ev0InFetcher.py @@ -22,7 +22,7 @@ from module.plugins.Addon import Addon class Ev0InFetcher(Addon): __name__ = "Ev0InFetcher" - __version__ = "0.2" + __version__ = "0.21" __description__ = """checks rss feeds for ev0.in""" __config__ = [("activated", "bool", "Activated", "False"), ("interval", "int", "Check interval in minutes", "10"), @@ -73,15 +73,15 @@ class Ev0InFetcher(Addon): if show.lower() in normalizefiletitle(item['title']) and lastfound < int(mktime(item.date_parsed)): links = self.filterLinks(item['description'].split("<br />")) packagename = item['title'].encode("utf-8") - self.core.log.info("Ev0InFetcher: new episode '%s' (matched '%s')" % (packagename, show)) + self.logInfo("Ev0InFetcher: new episode '%s' (matched '%s')" % (packagename, show)) self.core.api.addPackage(packagename, links, 1 if self.getConfig("queue") else 0) self.setStorage("show_%s_lastfound" % show, int(mktime(item.date_parsed))) found = True if not found: - #self.core.log.debug("Ev0InFetcher: no new episodes found") + #self.logDebug("Ev0InFetcher: no new episodes found") pass for show, lastfound in self.getStorage().iteritems(): if int(lastfound) > 0 and int(lastfound) + (3600*24*30) < int(time()): self.delStorage("show_%s_lastfound" % show) - self.core.log.debug("Ev0InFetcher: cleaned '%s' record" % show) + self.logDebug("Ev0InFetcher: cleaned '%s' record" % show) diff --git a/pyload/plugins/addons/ExtractArchive.py b/pyload/plugins/addons/ExtractArchive.py index 587903fbe..d5609863e 100644 --- a/pyload/plugins/addons/ExtractArchive.py +++ b/pyload/plugins/addons/ExtractArchive.py @@ -57,7 +57,7 @@ class ExtractArchive(Addon): Provides: unrarFinished (folder, filename) """ __name__ = "ExtractArchive" - __version__ = "0.13" + __version__ = "0.14" __description__ = "Extract different kind of archives" __config__ = [("activated", "bool", "Activated", True), ("fullpath", "bool", "Extract full path", True), @@ -309,4 +309,4 @@ class ExtractArchive(Addon): gid = getgrnam(self.config["permission"]["group"])[2] chown(f, uid, gid) except Exception, e: - self.log.warning(_("Setting User and Group failed"), e) + self.logWarning(_("Setting User and Group failed"), e) diff --git a/pyload/plugins/addons/HotFolder.py b/pyload/plugins/addons/HotFolder.py index d05026448..c3c285369 100644 --- a/pyload/plugins/addons/HotFolder.py +++ b/pyload/plugins/addons/HotFolder.py @@ -30,7 +30,7 @@ from module.plugins.Addon import Addon class HotFolder(Addon): __name__ = "HotFolder" - __version__ = "0.1" + __version__ = "0.11" __description__ = """observe folder and file for changes and add container and links""" __config__ = [ ("activated", "bool", "Activated" , "False"), ("folder", "str", "Folder to observe", "container"), @@ -79,7 +79,7 @@ class HotFolder(Addon): newpath = join(self.getConfig("folder"), "finished", f if self.getConfig("keep") else "tmp_"+f) move(path, newpath) - self.log.info(_("Added %s from HotFolder") % f) + self.logInfo(_("Added %s from HotFolder") % f) self.core.api.addPackage(f, [newpath], 1)
\ No newline at end of file diff --git a/pyload/plugins/addons/IRCInterface.py b/pyload/plugins/addons/IRCInterface.py index c261fc6f3..821f80b6c 100644 --- a/pyload/plugins/addons/IRCInterface.py +++ b/pyload/plugins/addons/IRCInterface.py @@ -36,7 +36,7 @@ from pycurl import FORM_FILE class IRCInterface(Thread, Addon): __name__ = "IRCInterface" - __version__ = "0.1" + __version__ = "0.11" __description__ = """connect to irc and let owner perform different tasks""" __config__ = [("activated", "bool", "Activated", "False"), ("host", "str", "IRC-Server Address", "Enter your server here!"), @@ -105,8 +105,8 @@ class IRCInterface(Thread, Addon): for t in self.getConfig("owner").split(): if t.strip().startswith("#"): self.sock.send("JOIN %s\r\n" % t.strip()) - self.log.info("pyLoad IRC: Connected to %s!" % host) - self.log.info("pyLoad IRC: Switching to listening mode!") + self.logInfo("pyLoad IRC: Connected to %s!" % host) + self.logInfo("pyLoad IRC: Switching to listening mode!") try: self.main_loop() @@ -167,15 +167,15 @@ class IRCInterface(Thread, Addon): # HANDLE CTCP ANTI FLOOD/BOT PROTECTION if msg["text"] == "\x01VERSION\x01": - self.log.debug("Sending CTCP VERSION.") + self.logDebug("Sending CTCP VERSION.") self.sock.send("NOTICE %s :%s\r\n" % (msg['origin'], "pyLoad! IRC Interface")) return elif msg["text"] == "\x01TIME\x01": - self.log.debug("Sending CTCP TIME.") + self.logDebug("Sending CTCP TIME.") self.sock.send("NOTICE %s :%d\r\n" % (msg['origin'], time.time())) return elif msg["text"] == "\x01LAG\x01": - self.log.debug("Received CTCP LAG.") # don't know how to answer + self.logDebug("Received CTCP LAG.") # don't know how to answer return trigger = "pass" @@ -195,7 +195,7 @@ class IRCInterface(Thread, Addon): for line in res: self.response(line, msg["origin"]) except Exception, e: - self.log.error("pyLoad IRC: "+ repr(e)) + self.logError("pyLoad IRC: "+ repr(e)) def response(self, msg, origin=""): diff --git a/pyload/plugins/addons/MergeFiles.py b/pyload/plugins/addons/MergeFiles.py index 48f997681..8d7f8aef1 100644 --- a/pyload/plugins/addons/MergeFiles.py +++ b/pyload/plugins/addons/MergeFiles.py @@ -30,7 +30,7 @@ BUFFER_SIZE = 4096 class MergeFiles(Addon): __name__ = "MergeFiles" - __version__ = "0.1" + __version__ = "0.11" __description__ = "Merges parts splitted with hjsplit" __config__ = [ ("activated" , "bool" , "Activated" , "False"), @@ -60,11 +60,11 @@ class MergeFiles(Addon): download_folder = save_join(download_folder, pack.folder) for name, file_list in files.iteritems(): - self.core.log.info("Starting merging of %s" % name) + self.logInfo("Starting merging of %s" % name) final_file = open(join(download_folder, fs_encode(name)), "wb") for splitted_file in file_list: - self.core.log.debug("Merging part %s" % splitted_file) + self.logDebug("Merging part %s" % splitted_file) pyfile = self.core.files.getFile(fid_dict[splitted_file]) pyfile.setStatus("processing") try: @@ -80,7 +80,7 @@ class MergeFiles(Addon): else: break s_file.close() - self.core.log.debug("Finished merging part %s" % splitted_file) + self.logDebug("Finished merging part %s" % splitted_file) except Exception, e: print traceback.print_exc() finally: @@ -89,6 +89,6 @@ class MergeFiles(Addon): pyfile.release() final_file.close() - self.core.log.info("Finished merging of %s" % name) + self.logInfo("Finished merging of %s" % name) diff --git a/pyload/plugins/addons/MultiHome.py b/pyload/plugins/addons/MultiHome.py index af3f55416..e38ce047a 100644 --- a/pyload/plugins/addons/MultiHome.py +++ b/pyload/plugins/addons/MultiHome.py @@ -22,7 +22,7 @@ from time import time class MultiHome(Addon): __name__ = "MultiHome" - __version__ = "0.1" + __version__ = "0.11" __description__ = """ip address changer""" __config__ = [ ("activated", "bool", "Activated" , "False"), ("interfaces", "str", "Interfaces" , "None") ] @@ -54,7 +54,7 @@ class MultiHome(Addon): if iface: iface.useFor(pluginName, account) requestFactory.iface = lambda: iface.adress - self.log.debug("Multihome: using address: "+iface.adress) + self.logDebug("Multihome: using address: "+iface.adress) return oldGetRequest(pluginName, account) requestFactory.getRequest = getRequest diff --git a/pyload/plugins/addons/RehostTo.py b/pyload/plugins/addons/RehostTo.py index 7ca5e5cde..cd9f7ccef 100644 --- a/pyload/plugins/addons/RehostTo.py +++ b/pyload/plugins/addons/RehostTo.py @@ -5,7 +5,7 @@ from module.plugins.internal.MultiHoster import MultiHoster class RehostTo(MultiHoster): __name__ = "RehostTo" - __version__ = "0.42" + __version__ = "0.43" __type__ = "hook" __config__ = [("activated", "bool", "Activated", "False"), @@ -31,7 +31,7 @@ class RehostTo(MultiHoster): user = self.account.selectAccount()[0] if not user: - self.log.error("Rehost.to: "+ _("Please add your rehost.to account first and restart pyLoad")) + self.logError("Rehost.to: "+ _("Please add your rehost.to account first and restart pyLoad")) return data = self.account.getAccountInfo(user) diff --git a/pyload/plugins/addons/UpdateManager.py b/pyload/plugins/addons/UpdateManager.py index c800b44bf..b30289287 100644 --- a/pyload/plugins/addons/UpdateManager.py +++ b/pyload/plugins/addons/UpdateManager.py @@ -29,7 +29,7 @@ from module.plugins.Hook import threaded, Expose, Hook class UpdateManager(Hook): __name__ = "UpdateManager" - __version__ = "0.13" + __version__ = "0.15" __description__ = """checks for updates""" __config__ = [("activated", "bool", "Activated", "True"), ("interval", "int", "Check interval in minutes", "480"), @@ -70,12 +70,12 @@ class UpdateManager(Hook): if self.updated and not self.reloaded: self.info["plugins"] = True - self.log.info(_("*** Plugins have been updated, please restart pyLoad ***")) + self.logInfo(_("*** Plugins have been updated, please restart pyLoad ***")) elif self.updated and self.reloaded: - self.log.info(_("Plugins updated and reloaded")) + self.logInfo(_("Plugins updated and reloaded")) self.updated = False elif self.version == "None": - self.log.info(_("No plugin updates available")) + self.logInfo(_("No plugin updates available")) @Expose def recheckForUpdates(self): @@ -92,16 +92,16 @@ class UpdateManager(Hook): # Still no updates, plugins will be checked if self.version == "None": - self.log.info(_("No Updates for pyLoad")) + self.logInfo(_("No Updates for pyLoad")) return version_check[1:] self.info["pyload"] = True - self.log.info(_("*** New pyLoad Version %s available ***") % self.version) - self.log.info(_("*** Get it here: http://pyload.org/download ***")) + self.logInfo(_("*** New pyLoad Version %s available ***") % self.version) + self.logInfo(_("*** Get it here: http://pyload.org/download ***")) except: - self.log.warning(_("Not able to connect server for updates")) + self.logWarning(_("Not able to connect server for updates")) return None # Nothing will be done @@ -145,7 +145,7 @@ class UpdateManager(Hook): if name in IGNORE or (type, name) in IGNORE: continue - self.log.info(_("New version of %(type)s|%(name)s : %(version).2f") % { + self.logInfo(_("New version of %(type)s|%(name)s : %(version).2f") % { "type": type, "name": name, "version": float(version) diff --git a/pyload/plugins/addons/XMPPInterface.py b/pyload/plugins/addons/XMPPInterface.py index e8ef1d2ca..40454f1c3 100644 --- a/pyload/plugins/addons/XMPPInterface.py +++ b/pyload/plugins/addons/XMPPInterface.py @@ -28,7 +28,7 @@ from module.plugins.addons.IRCInterface import IRCInterface class XMPPInterface(IRCInterface, JabberClient): __name__ = "XMPPInterface" - __version__ = "0.1" + __version__ = "0.11" __description__ = """connect to jabber and let owner perform different tasks""" __config__ = [("activated", "bool", "Activated", "False"), ("jid", "str", "Jabber ID", "user@exmaple-jabber-server.org"), @@ -97,22 +97,22 @@ class XMPPInterface(IRCInterface, JabberClient): try: self.loop() except Exception, ex: - self.core.log.error("pyLoad XMPP: %s" % str(ex)) + self.logError("pyLoad XMPP: %s" % str(ex)) def stream_state_changed(self, state, arg): """This one is called when the state of stream connecting the component to a server changes. This will usually be used to let the user know what is going on.""" - self.log.debug("pyLoad XMPP: *** State changed: %s %r ***" % (state, arg)) + self.logDebug("pyLoad XMPP: *** State changed: %s %r ***" % (state, arg)) def disconnected(self): - self.log.debug("pyLoad XMPP: Client was disconnected") + self.logDebug("pyLoad XMPP: Client was disconnected") def stream_closed(self, stream): - self.log.debug("pyLoad XMPP: Stream was closed | %s" % stream) + self.logDebug("pyLoad XMPP: Stream was closed | %s" % stream) def stream_error(self, err): - self.log.debug("pyLoad XMPP: Stream Error: %s" % err) + self.logDebug("pyLoad XMPP: Stream Error: %s" % err) def get_message_handlers(self): """Return list of (message_type, message_handler) tuples. @@ -147,8 +147,8 @@ class XMPPInterface(IRCInterface, JabberClient): subject = stanza.get_subject() body = stanza.get_body() t = stanza.get_type() - self.log.debug(u'pyLoad XMPP: Message from %s received.' % (unicode(stanza.get_from(), ))) - self.log.debug(u'pyLoad XMPP: Body: %s Subject: %s Type: %s' % (body, subject, t)) + self.logDebug(u'pyLoad XMPP: Message from %s received.' % (unicode(stanza.get_from(), ))) + self.logDebug(u'pyLoad XMPP: Body: %s Subject: %s Type: %s' % (body, subject, t)) if t == "headline": # 'headline' messages should never be replied to @@ -192,7 +192,7 @@ class XMPPInterface(IRCInterface, JabberClient): messages.append(m) except Exception, e: - self.log.error("pyLoad XMPP: " + repr(e)) + self.logError("pyLoad XMPP: " + repr(e)) return messages @@ -205,7 +205,7 @@ class XMPPInterface(IRCInterface, JabberClient): def announce(self, message): """ send message to all owners""" for user in self.getConfig("owners").split(";"): - self.log.debug("pyLoad XMPP: Send message to %s" % user) + self.logDebug("pyLoad XMPP: Send message to %s" % user) to_jid = JID(user) |