From c7bc1ecbb9690a8cf8b8bcfd98cfbebb9487d036 Mon Sep 17 00:00:00 2001 From: Julien Veyssier Date: Mon, 4 Mar 2013 23:59:12 +0100 Subject: [PATCH] [cineoob] handle death date --- modules/imdb/pages.py | 11 +++++++++++ weboob/applications/cineoob/cineoob.py | 13 ++++++++----- weboob/capabilities/cinema.py | 1 + 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/modules/imdb/pages.py b/modules/imdb/pages.py index e6d5ebbe..71efa732 100644 --- a/modules/imdb/pages.py +++ b/modules/imdb/pages.py @@ -75,6 +75,7 @@ class PersonPage(BasePage): biography = NotAvailable birth_place = NotAvailable birth_date = NotAvailable + death_date = NotAvailable real_name = NotAvailable gender = NotAvailable nationality = NotAvailable @@ -103,10 +104,20 @@ class PersonPage(BasePage): time.append('1') time.append('1') birth_date = datetime(int(time[0]),int(time[1]),int(time[2])) + dtimes = self.parser.select(td_overview,'time[itemprop=deathDate]') + if len(dtimes) > 0: + dtime = dtimes[0].attrib.get('datetime','').split('-') + if len(dtime) == 2: + dtime.append('1') + elif len(dtime) == 1: + dtime.append('1') + dtime.append('1') + death_date = datetime(int(dtime[0]),int(dtime[1]),int(dtime[2])) person = Person(id,name) person.real_name = real_name person.birth_date = birth_date + person.death_date = death_date person.birth_place = birth_place person.gender = gender person.nationality = nationality diff --git a/weboob/applications/cineoob/cineoob.py b/weboob/applications/cineoob/cineoob.py index 4190290e..f0aa0fa0 100644 --- a/weboob/applications/cineoob/cineoob.py +++ b/weboob/applications/cineoob/cineoob.py @@ -104,14 +104,17 @@ class PersonInfoFormatter(IFormatter): result = u'%s%s%s\n' % (self.BOLD, obj.name, self.NC) result += 'ID: %s\n' % obj.fullid result += 'Real name: %s\n' % obj.real_name + result += 'Birth place: %s\n' % obj.birth_place if obj.birth_date != NotAvailable: result += 'Birth date: %s\n' % obj.birth_date.strftime('%Y-%m-%d') - age = num_years(obj.birth_date) + if obj.death_date != NotAvailable: + age = num_years(obj.birth_date,obj.death_date) + result += 'Death date: %s at %s years old\n' % (obj.death_date.strftime('%Y-%m-%d'),age) + else: + age = num_years(obj.birth_date) + result += 'Age: %s\n' % age else: result += 'Birth date: %s\n' % obj.birth_date - age = NotAvailable - result += 'Age: %s\n' % age - result += 'Birth place: %s\n' % obj.birth_place result += 'Gender: %s\n' % obj.gender result += 'Nationality: %s\n' % obj.nationality if obj.roles: @@ -132,7 +135,7 @@ class PersonListFormatter(PrettyFormatter): return obj.name def get_description(self, obj): - if obj.birth_date != NotAvailable: + if obj.birth_date != NotAvailable and obj.death_date == NotAvailable: age = num_years(obj.birth_date) else: age = NotAvailable diff --git a/weboob/capabilities/cinema.py b/weboob/capabilities/cinema.py index c68f6417..65b0c940 100644 --- a/weboob/capabilities/cinema.py +++ b/weboob/capabilities/cinema.py @@ -49,6 +49,7 @@ class Person(CapBaseObject): name = StringField('Star name of a person') real_name = StringField('Real name of a person') birth_date = DateField('Birth date of a person') + death_date = DateField('Death date of a person') birth_place = StringField('City and country of birth of a person') gender = StringField('Gender of a person') nationality = StringField('Nationality of a person')