diff --git a/dosage b/dosage index 741a6b0f8..a2805b3a0 100755 --- a/dosage +++ b/dosage @@ -86,8 +86,9 @@ def displayHelp(comics, basepath): def getComics(options, comics): """Retrieve given comics.""" errors = 0 - events.installHandler(options.output, options.basepath, options.baseurl) - events.handler.start() + if options.output: + events.installHandler(options.output, options.basepath, options.baseurl) + events.getHandler().start() for scraperobj in getScrapers(comics, options.basepath): out.context = scraperobj.get_name() if options.all: @@ -104,7 +105,7 @@ def getComics(options, comics): out.write("Stop retrieval because image file already exists") break first = False - events.handler.end() + events.getHandler().end() return errors diff --git a/dosagelib/comic.py b/dosagelib/comic.py index 0dbc62447..f1924e2d5 100644 --- a/dosagelib/comic.py +++ b/dosagelib/comic.py @@ -8,7 +8,7 @@ import time from .output import out from .util import urlopen, saneDataSize, normaliseURL -from .events import handler +from .events import getHandler class FetchComicError(IOError): """Exception for comic fetching errors.""" @@ -111,7 +111,7 @@ class ComicImage(object): speed = '???' attrs = dict(fn=fn, bytes=bytes, speed=speed) out.write('Saved "%(fn)s" (%(bytes)s bytes, %(speed)s/sec).' % attrs, 1) - handler.comicDownloaded(self.name, fn) + getHandler().comicDownloaded(self.name, fn) finally: self.urlobj.close() diff --git a/dosagelib/events.py b/dosagelib/events.py index d0acc3f8c..4077b02dd 100644 --- a/dosagelib/events.py +++ b/dosagelib/events.py @@ -41,9 +41,6 @@ class EventHandler(object): """Emit an end event. Should be overridden in subclass.""" pass -class TextEventHandler(EventHandler): - """Output nothing. XXX why?""" - pass class RSSEventHandler(EventHandler): """Output in RSS format.""" @@ -164,7 +161,6 @@ class HtmlEventHandler(EventHandler): handlers = { - 'text': TextEventHandler, 'html': HtmlEventHandler, 'rss': RSSEventHandler, } @@ -173,13 +169,14 @@ def getHandlers(): """Get sorted handler names.""" return sorted(handlers.keys()) -def installHandler(name=None, basepath=None, baseurl=None): +_handler = EventHandler(".", None) + +def installHandler(name, basepath=None, baseurl=None): """Install a global handler with given name.""" - global handler - if name is None: - name = 'text' + global _handler if basepath is None: basepath = '.' - handler = handlers[name](basepath, baseurl) + _handler = handlers[name](basepath, baseurl) -installHandler() +def getHandler(): + return _handler