diff --git a/weboob/applications/monboob/monboob.py b/weboob/applications/monboob/monboob.py index 47b19e63..53925318 100644 --- a/weboob/applications/monboob/monboob.py +++ b/weboob/applications/monboob/monboob.py @@ -28,7 +28,7 @@ import sys import logging import asyncore -from weboob.core.ouiboube import Weboob +from weboob.core import Weboob, CallErrors from weboob.core.scheduler import Scheduler from weboob.capabilities.messages import ICapMessages, ICapMessagesPost, Thread, Message from weboob.tools.application.repl import ReplApplication @@ -203,9 +203,17 @@ class Monboob(ReplApplication): self.weboob.loop() def process(self): - for backend, message in self.weboob.do('iter_unread_messages'): - self.send_email(backend, message) - backend.set_message_read(message) + try: + for backend, message in self.weboob.do('iter_unread_messages'): + self.send_email(backend, message) + backend.set_message_read(message) + except CallErrors, e: + for backend, error, backtrace in e.errors: + print >>sys.stderr, u'Error(%s): %s' % (backend.name, error) + if logging.root.level == logging.DEBUG: + print >>sys.stderr, backtrace + if logging.root.level != logging.DEBUG: + print >>sys.stderr, 'Use --debug option to print backtraces.' def send_email(self, backend, mail): domain = self.config.get('domain') diff --git a/weboob/tools/application/base.py b/weboob/tools/application/base.py index 031f6902..7b660416 100644 --- a/weboob/tools/application/base.py +++ b/weboob/tools/application/base.py @@ -22,7 +22,7 @@ import optparse from optparse import OptionGroup, OptionParser from weboob.capabilities.base import NotAvailable, NotLoaded -from weboob.core.ouiboube import Weboob +from weboob.core import Weboob, CallErrors from weboob.tools.config.iconfig import ConfigError from weboob.tools.backend import ObjectNotAvailable @@ -318,5 +318,12 @@ class BaseApplication(object): except ConfigError, e: print 'Configuration error: %s' % e sys.exit(1) + except CallErrors, e: + for backend, error, backtrace in e.errors: + print >>sys.stderr, u'Error(%s): %s' % (backend.name, error) + if logging.root.level == logging.DEBUG: + print >>sys.stderr, backtrace + if logging.root.level != logging.DEBUG: + print >>sys.stderr, 'Use --debug option to print backtraces.' finally: app.deinit()