diff --git a/weboob/backend.py b/weboob/backend.py index 858f39cde596dd545a2ac94f1717571c299b377c..bca7a4bbe806fe21b1eb4d70f710387e3efcfa5b 100644 --- a/weboob/backend.py +++ b/weboob/backend.py @@ -20,8 +20,8 @@ """ class Backend: - def __init__(self, config): - self.config = config + def __init__(self, weboob): + self.weboob = weboob def hasCaps(self, caps): if not isinstance(caps, (list,tuple)): diff --git a/weboob/backends/aum/backend.py b/weboob/backends/aum/backend.py index 2904a0b510eb84b25d16cb5d9a80e1afdfa7e775..ac7a6fcdbe27cbe05b346b532ee46c8988845582 100644 --- a/weboob/backends/aum/backend.py +++ b/weboob/backends/aum/backend.py @@ -19,7 +19,7 @@ """ from weboob.backend import Backend -from weboob.capabilities.messages import IMessages, IMessagesReply +from weboob.capabilities.messages import ICapMessages, ICapMessagesReply -class AuMBackend(Backend, IMessages, IMessagesReply): +class AuMBackend(Backend, ICapMessages, ICapMessagesReply): pass diff --git a/weboob/backends/dlfp/backend.py b/weboob/backends/dlfp/backend.py index c9e5493f40849647c3138ff4b0fe934c1f0984c8..2a955802b7b21053c8305e523425843eb62ba62a 100644 --- a/weboob/backends/dlfp/backend.py +++ b/weboob/backends/dlfp/backend.py @@ -19,7 +19,12 @@ """ from weboob.backend import Backend -from weboob.capabilities.messages import IMessages, IMessagesReply +from weboob.capabilities.messages import ICapMessages, ICapMessagesReply, Message -class DLFPBackend(Backend, IMessages, IMessagesReply): - pass +class DLFPBackend(Backend, ICapMessages, ICapMessagesReply): + def __init__(self, weboob): + Backend.__init__(self, weboob) + + def getNewMessages(self, thread=None): + m = Message('threadid', 'msgid', 'Title', 'Sender', signature='Bite bite bite bite', content='Content content\nContent content.') + return [m] diff --git a/weboob/modules.py b/weboob/modules.py index f39d5dd249a82ffe8f871a5f87c68b4030c409ef..75a23a452c198520d7e409057fde45acb46e6180 100644 --- a/weboob/modules.py +++ b/weboob/modules.py @@ -48,8 +48,8 @@ def hasCaps(self, caps): return True return False - def createBackend(self, config): - return self.klass(config) + def createBackend(self, weboob): + return self.klass(weboob) class ModulesLoader: def __init__(self): diff --git a/weboob/ouiboube.py b/weboob/ouiboube.py index 6e87487db2a43a81f066b84810fcca5f064dc804..123a2d9e764ec74d3fb67e9686459141f80eacfe 100644 --- a/weboob/ouiboube.py +++ b/weboob/ouiboube.py @@ -38,22 +38,22 @@ def __init__(self, app_name, config_file=CONFIG_FILE, data_dir=DATA_DIR): self.modules_loader = ModulesLoader() self.modules_loader.load() - def getFrontendConfig(self): - return self.config.get('frontends', self.app_name, create=True) + def getFrontendConfig(self, default={}): + return self.config.get('frontends', self.app_name, default=default) - def getBackendConfig(self, backend_name): - return self.config.get('backends', backend_name, create=True) + def getBackendConfig(self, backend_name, default={}): + return self.config.get('backends', backend_name, default=default) def loadmodules(self, caps=None, name=None): for name, module in self.modules_loader.modules.iteritems(): if (not caps or module.hasCaps(caps)) and \ (not name or module.name == name): - backend = module.createBackend(self.getBackendConfig(module.name)) + backend = module.createBackend(self) self.backends[module.name] = backend def loadmodule(self, modname, instname): module = self.modules_loader[modname] - self.backends[instname] = module.createBackend(self.getBackendConfig(instname)) + self.backends[instname] = module.createBackend(self) def getBackends(self, caps=None): if caps is None: diff --git a/weboob/tools/application.py b/weboob/tools/application.py index e2d26ff7d0c78fdcb7d51c072b52658354e6e207..074327c8a250643e42a9fec272324455e9ab10c1 100644 --- a/weboob/tools/application.py +++ b/weboob/tools/application.py @@ -27,46 +27,46 @@ class BaseApplication(object): APPNAME = '' + CONFIG = {} def __init__(self): self.weboob = Weboob(self.APPNAME) - self.config = self.weboob.getFrontendConfig() + self.config = self.weboob.getFrontendConfig(self.CONFIG) -def ask(question, default=None, masked=False, regexp=None): - """ - Ask a question to user. + def ask(self, question, default=None, masked=False, regexp=None): + """ + Ask a question to user. - @param question text displayed (str) - @param default optional default value (str) - @param masked if True, do not show typed text (bool) - @param regexp text must match this regexp (str) - @return entered text by user (str) - """ + @param question text displayed (str) + @param default optional default value (str) + @param masked if True, do not show typed text (bool) + @param regexp text must match this regexp (str) + @return entered text by user (str) + """ - correct = False + correct = False - if not default is None: - question = '%s [%s]' % (question, default) + if not default is None: + question = '%s [%s]' % (question, default) - while not correct: + while not correct: + sys.stdout.write('%s: ' % (question)) - sys.stdout.write('%s: ' % (question)) + if masked: + attr = termios.tcgetattr(sys.stdin) + tty.setcbreak(sys.stdin) - if masked: - attr = termios.tcgetattr(sys.stdin) - tty.setcbreak(sys.stdin) + line = sys.stdin.readline().split('\n')[0] - line = sys.stdin.readline().split('\n')[0] + if not line and not default is None: + line = default - if not line and not default is None: - line = default + if masked: + termios.tcsetattr(sys.stdin, termios.TCSAFLUSH, attr) + sys.stdout.write('\n') - if masked: - termios.tcsetattr(sys.stdin, termios.TCSAFLUSH, attr) - sys.stdout.write('\n') + correct = not regexp or re.match(regexp, str(line)) - correct = not regexp or re.match(regexp, str(line)) - - return line + return line