From 75c8acc6d4dae4ac25cd141f2dbb8ffa878ff355 Mon Sep 17 00:00:00 2001 From: echel0n Date: Thu, 13 Mar 2014 20:39:58 -0700 Subject: [PATCH] Bugfix for TVRage search by name, fixed issue with dates and key names --- lib/tvrage_api/tvrage_api.py | 54 ++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/lib/tvrage_api/tvrage_api.py b/lib/tvrage_api/tvrage_api.py index c574d762..c26cdf31 100644 --- a/lib/tvrage_api/tvrage_api.py +++ b/lib/tvrage_api/tvrage_api.py @@ -431,8 +431,9 @@ class TVRage: reDict = { 'showid': 'id', 'showname': 'seriesname', + 'name': 'seriesname', 'summary': 'overview', - 'startdate': 'firstaired', + 'started': 'firstaired', 'genres': 'genre', 'airtime': 'airs_time', 'airday': 'airs_dayofweek', @@ -453,6 +454,22 @@ class TVRage: tree = ElementTree.ElementTree(xml) for elm in tree.iter(): elm.tag = robj.sub(lambda m: reDict[m.group(0)], elm.tag) + + if elm.tag in 'firstaired': + try: + fixDate = dt.datetime.strptime(elm.text,"%b/%d/%Y") + value = fixDate.strftime("%Y-%m-%d") + except: + try: + fixDate = dt.datetime.strptime(elm.text,"%b/%Y") + newDate = fixDate.replace(day=01) + value = newDate.strftime("%Y-%m-%d") + except: + fixDate = dt.datetime.strptime(elm.text,"%Y") + newDate = fixDate.replace(month=01, day=01) + value = newDate.strftime("%Y-%m-%d") + + elm.text = value return ElementTree.fromstring(ElementTree.tostring(xml)) except SyntaxError: src = self._loadUrl(url, recache=True) @@ -461,7 +478,23 @@ class TVRage: tree = ElementTree.ElementTree(xml) for elm in tree.iter(): elm.tag = robj.sub(lambda m: reDict[m.group(0)], elm.tag) - return ElementTree.fromstring(ElementTree.tostring(xml)) + + if elm.tag in 'firstaired': + try: + fixDate = dt.datetime.strptime(elm.text,"%b/%d/%Y") + value = fixDate.strftime("%Y-%m-%d") + except: + try: + fixDate = dt.datetime.strptime(elm.text,"%b/%Y") + newDate = fixDate.replace(day=01) + value = newDate.strftime("%Y-%m-%d") + except: + fixDate = dt.datetime.strptime(elm.text,"%Y") + newDate = fixDate.replace(month=01, day=01) + value = newDate.strftime("%Y-%m-%d") + + elm.text = value + return ElementTree.fromstring(ElementTree.tostring(xml)) except SyntaxError, exceptionmsg: errormsg = "There was an error with the XML retrieved from tvrage.com:\n%s" % ( exceptionmsg @@ -570,22 +603,7 @@ class TVRage: for curInfo in seriesInfoEt: tag = curInfo.tag.lower() - - if tag in 'firstaired': - try: - fixDate = dt.datetime.strptime(curInfo.text,"%b/%d/%Y") - value = fixDate.strftime("%Y-%m-%d") - except: - try: - fixDate = dt.datetime.strptime(curInfo.text,"%b/%Y") - newDate = fixDate.replace(day=01) - value = newDate.strftime("%Y-%m-%d") - except: - fixDate = dt.datetime.strptime(curInfo.text,"%Y") - newDate = fixDate.replace(month=01, day=01) - value = newDate.strftime("%Y-%m-%d") - else: - value = curInfo.text + value = curInfo.text if value is not None: value = self._cleanData(value)