From 83ec57629b1055545178c458af71b5b9346ef0b2 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Thu, 20 May 2010 11:40:25 +0200 Subject: [PATCH] new method ContactItem.get_lastmsg_date() --- weboob/backends/aum/pages/contact_list.py | 30 ++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/weboob/backends/aum/pages/contact_list.py b/weboob/backends/aum/pages/contact_list.py index 843d4589..f8fe3d63 100644 --- a/weboob/backends/aum/pages/contact_list.py +++ b/weboob/backends/aum/pages/contact_list.py @@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. """ import re +from datetime import datetime, timedelta from weboob.backends.aum.pages.base import PageBase @@ -51,7 +52,6 @@ class ContactItem: self.tr = tr def __get_element(self, id): - return self.tr.getElementsByTagName('td')[self.fields.index(id)] def get_name(self): @@ -66,7 +66,6 @@ class ContactItem: return name def get_status(self): - tag = self.__get_element('status') return tag.firstChild.data @@ -79,8 +78,33 @@ class ContactItem: def get_resume(self): tag = self.__get_element('resume') + return tag.getElementsByTagName('b')[0].firstChild.data.strip() - return tag.getElementsByTagName('b')[0].firstChild.data.split('\n')[0] + LASTMSG_RE = re.compile('il y a (\d+) (\w+)') + def get_lastmsg_date(self): + tag = self.__get_element('resume') + s = tag.childNodes[3].data + m = self.LASTMSG_RE.match(s) + if m: + d = {'secondes': 1, + 'seconde': 1, + 'minutes': 60, + 'minute': 60, + 'heures': 3600, + 'heure': 3600, + 'jours': 24*3600, + 'jour': 24*3600, + } + try: + i = int(m.group(1)) * d[m.group(2)] + except KeyError: + warning('Unable to parse lastmsg ("%s" is not a valid unit)' % m.group(2)) + return None + else: + return datetime.now() - timedelta(seconds=i) + else: + warning('Unable to parse lastmsg [%s]' % s) + return None def get_id(self): tag = self.__get_element('thread_link')