From fe7b8d082cf06a53ff26b83da6210800be6af5f8 Mon Sep 17 00:00:00 2001 From: Juke Date: Fri, 11 Feb 2011 00:06:35 +0100 Subject: [PATCH] add export_thread add export_thread to boobmsg working show_thread --- weboob/applications/boobmsg/boobmsg.py | 8 ++++++++ weboob/backends/minutes20/browser.py | 14 +++++++++++++- weboob/backends/minutes20/tools.py | 12 ++++++++---- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/weboob/applications/boobmsg/boobmsg.py b/weboob/applications/boobmsg/boobmsg.py index d6710809..20ec9214 100644 --- a/weboob/applications/boobmsg/boobmsg.py +++ b/weboob/applications/boobmsg/boobmsg.py @@ -255,6 +255,14 @@ class Boobmsg(ReplApplication): self.threads.append(thread) self.format(thread) self.flush() + + def do_export_thread(self, arg): + id, backend_name = self.parse_id(arg) + cmd = self.do('get_thread', id, backends=backend_name) + for backend, thread in cmd: + for m in thread.iter_all_messages(): + self.format(m) + def do_show(self, arg): """ diff --git a/weboob/backends/minutes20/browser.py b/weboob/backends/minutes20/browser.py index 006af2f5..fd56bd24 100644 --- a/weboob/backends/minutes20/browser.py +++ b/weboob/backends/minutes20/browser.py @@ -33,5 +33,17 @@ class Newspaper20minutesBrowser(BaseBrowser): return False def get_content(self, _id): - self.location(id2url(_id)) + try : + url = id2url(_id) + except ValueError: + url = _id + try: + self.location(url) + except IndexError: + if _id == '': + raise ValueError("thread id is empty") + else: + raise + except AttributeError: + raise ValueError("cant go on url") return self.page.article diff --git a/weboob/backends/minutes20/tools.py b/weboob/backends/minutes20/tools.py index 10ccfd7c..92b64c16 100644 --- a/weboob/backends/minutes20/tools.py +++ b/weboob/backends/minutes20/tools.py @@ -18,11 +18,15 @@ import re def id2url(_id): - regexp2 = re.compile("(\w+).(\w+).(.*$)") + regexp2 = re.compile("(\w+).([0-9]+).(.*$)") match = regexp2.match(_id) - return 'http://www.20minutes.fr/%s/%s/%s' % ( match.group(1), - match.group(2), - match.group(3)) + if match: + return 'http://www.20minutes.fr/%s/%s/%s' % ( match.group(1), + match.group(2), + match.group(3)) + else: + raise ValueError("id doesn't match") + def url2id(url): regexp = re.compile("http://www.20minutes.fr/(\w+)/([0-9]+)/(.*$)") match = regexp.match(url)