From 90bd838eff9279b248d8b820a4f04227d5832216 Mon Sep 17 00:00:00 2001 From: Benjamin Drieu Date: Fri, 4 May 2012 10:52:27 +0200 Subject: [PATCH] Fix issues with TricTracTV module : date parsing was wrongly assuming locales setting and duration parsing was not working as expected. Signed-off-by: Benjamin Drieu Signed-off-by: Romain Bignon --- modules/trictractv/pages.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/trictractv/pages.py b/modules/trictractv/pages.py index d8681c71..f7e41557 100644 --- a/modules/trictractv/pages.py +++ b/modules/trictractv/pages.py @@ -96,11 +96,12 @@ class VideoPage(BasePage): return None else: duration = details[2] - hours, minutes, seconds = duration.text [ duration.text.find(':') : ] . split(':') - if len(hours) > 0: - return datetime.timedelta(hours=int(hours), minutes=int(minutes), seconds=int(seconds)) + duration_string = duration.text [ duration.text.rfind ( ' ' ) + 1 : ] + tokens = duration_string.split(':') + if len(tokens) > 2: + return datetime.timedelta(hours=int(tokens[0]), minutes=int(tokens[1]), seconds=int(tokens[2])) else: - return datetime.timedelta(minutes=int(minutes), seconds=int(seconds)) + return datetime.timedelta(minutes=int(tokens[0]), seconds=int(tokens[1])) def get_date(self): try: @@ -109,8 +110,13 @@ class VideoPage(BasePage): return None else: string = date.text - string = string [ string.rfind('le ') : ] - return datetime.datetime.strptime(string, 'le %d %b %Y, %H:%M:%S') + string = string [ string.rfind('le ') + 3 : ] + months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ] + words = string.split ( ' ' ) + month_no = months.index ( words [ 1 ] ) + 1 + return datetime.datetime.strptime ( ( '%s %s %s %s' % + ( words [ 0 ], month_no, words [ 2 ], words [ 3 ] ) ), + '%d %m %Y, %H:%M:%S') def get_rating(self): try: