From 9c4b8e3a59b8ba26abfb412322cce3b45f4414c0 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Tue, 13 Mar 2012 22:43:42 +0100 Subject: [PATCH] add a formatter for subscriptions, and do 'ls' work --- weboob/applications/boobill/boobill.py | 29 +++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/weboob/applications/boobill/boobill.py b/weboob/applications/boobill/boobill.py index b687cc0a..aec315cd 100644 --- a/weboob/applications/boobill/boobill.py +++ b/weboob/applications/boobill/boobill.py @@ -20,20 +20,47 @@ import sys -from weboob.capabilities.bill import ICapBill, Detail +from weboob.capabilities.bill import ICapBill, Detail, Subscription from weboob.tools.application.repl import ReplApplication +from weboob.tools.application.formatters.iformatter import IFormatter __all__ = ['Boobill'] +class SubscriptionsFormatter(IFormatter): + MANDATORY_FIELDS = ('id', 'label') + count = 0 + + def flush(self): + self.count = 0 + + def format_dict(self, item): + self.count += 1 + + if self.interactive: + backend = item['id'].split('@', 1)[1] + id = '#%d (%s)' % (self.count, backend) + else: + id = item['id'] + + return u'%s%s%s %s' % (self.BOLD, id, self.NC, item['label']) + + class Boobill(ReplApplication): APPNAME = 'boobill' VERSION = '0.b' COPYRIGHT = 'Copyright(C) 2012 Florent Fourcot' DESCRIPTION = 'Console application allowing to get and download bills.' CAPS = ICapBill + COLLECTION_OBJECTS = (Subscription, ) + EXTRA_FORMATTERS = {'subscriptions': SubscriptionsFormatter, + } DEFAULT_FORMATTER = 'table' + COMMANDS_FORMATTERS = {'subscriptions': 'subscriptions', + 'ls': 'subscriptions', + } + def main(self, argv): self.load_config()