use iterator instead of get_backends

This commit is contained in:
Christophe Benz 2010-03-11 15:29:30 +01:00 committed by Christophe Benz
commit a4dd17631f
2 changed files with 7 additions and 11 deletions

View file

@ -55,15 +55,12 @@ class Weboob:
module = self.modules_loader[modname] module = self.modules_loader[modname]
self.backends[instname] = module.create_backend(self) self.backends[instname] = module.create_backend(self)
def get_backends(self, caps=None): def iter_backends(self, caps=None):
if caps is None: if caps is None:
return self.backends return self.backends.iteritems()
else:
d = {} return dict((name, backend) for name, backend in self.backends.iteritems()
for name, backend in self.backends.iteritems(): if backend.has_caps(caps)).iteritems()
if backend.has_caps(caps):
d[name] = backend
return d
def schedule(self, interval, function, *args): def schedule(self, interval, function, *args):
self.scheduler.enter(interval, 1, function, args) self.scheduler.enter(interval, 1, function, args)

View file

@ -57,9 +57,8 @@ class Application(BaseApplication):
self.weboob.loop() self.weboob.loop()
def process(self): def process(self):
backends = self.weboob.get_backends() for name, backend in self.weboob.iter_backends():
for name, b in backends.iteritems(): for message in backend.iter_new_messages():
for message in b.iter_new_messages():
self.send_email(name, message) self.send_email(name, message)
def send_email(self, backend_name, mail): def send_email(self, backend_name, mail):