From 82f964c4f63435adb4f6b335abd4533a95faf9c7 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Mon, 2 Sep 2019 08:22:30 -0700 Subject: [PATCH] Refactored 'pypad_tunein.py' ProcessPad while loop. --- ChangeLog | 2 ++ apis/pypad/scripts/pypad_tunein.py | 57 +++++++++++++++++------------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index f2209b9c..4cbb7ad0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19070,3 +19070,5 @@ * Fixed an indentation error in 'apis/pypad/scripts/pypad_tunein.py'. 2019-08-31 Fred Gleason * Incremented the package version to 3.0.3int1. +2019-09-02 Patrick Linstruth + * Refactored 'pypad_tunein.py' ProcessPad while loop. diff --git a/apis/pypad/scripts/pypad_tunein.py b/apis/pypad/scripts/pypad_tunein.py index fec55a4c..2c58069a 100755 --- a/apis/pypad/scripts/pypad_tunein.py +++ b/apis/pypad/scripts/pypad_tunein.py @@ -31,31 +31,38 @@ import configparser def ProcessPad(update): if update.hasPadType(pypad.TYPE_NOW): - section='Station'+str(n) - n=1 - while(update.config().has_section(section)): - values={} - values['id']=update.config().get(section,'StationID') - values['partnerId']=update.config().get(section,'PartnerID') - values['partnerKey']=update.config().get(section,'PartnerKey') - values['title']=update.resolvePadFields(update.config().get(section,'TitleString'),pypad.ESCAPE_NONE) - values['artist']=update.resolvePadFields(update.config().get(section,'ArtistString'),pypad.ESCAPE_NONE) - values['album']=update.resolvePadFields(update.config().get(section,'AlbumString'),pypad.ESCAPE_NONE) - update.syslog(syslog.LOG_INFO,'Updating TuneIn: artist='+values['artist']+' title='+values['title']+' album='+values['album']) - try: - response=requests.get('http://air.radiotime.com/Playing.ashx',params=values) - response.raise_for_status() - except requests.exceptions.RequestException as e: - update.syslog(syslog.LOG_WARNING,str(e)) - else: - xml=ET.fromstring(response.text) - status=xml.find('./head/status') - if(status.text!='200'): - update.syslog(syslog.LOG_WARNING,'Update Failed: '+xml.find('./head/fault').text) - n=n+1 - section='Station'+str(n) - if(n==1): - update.syslog(syslog.LOG_WARNING,'No station config found') + n=1 + while(True): + section='Station'+str(n) + try: + values={} + values['id']=update.config().get(section,'StationID') + values['partnerId']=update.config().get(section,'PartnerID') + values['partnerKey']=update.config().get(section,'PartnerKey') + values['title']=update.resolvePadFields(update.config().get(section,'TitleString'),pypad.ESCAPE_NONE) + values['artist']=update.resolvePadFields(update.config().get(section,'ArtistString'),pypad.ESCAPE_NONE) + values['album']=update.resolvePadFields(update.config().get(section,'AlbumString'),pypad.ESCAPE_NONE) + except configparser.NoSectionError: + if(n==1): + update.syslog(syslog.LOG_WARNING,'No station config found') + return + + # + # Now, send the update + # + if update.shouldBeProcessed(section): + update.syslog(syslog.LOG_INFO,'Updating TuneIn: artist='+values['artist']+' title='+values['title']+' album='+values['album']) + try: + response=requests.get('http://air.radiotime.com/Playing.ashx',params=values) + response.raise_for_status() + except requests.exceptions.RequestException as e: + update.syslog(syslog.LOG_WARNING,str(e)) + else: + xml=ET.fromstring(response.text) + status=xml.find('./head/status') + if(status.text!='200'): + update.syslog(syslog.LOG_WARNING,'Update Failed: '+xml.find('./head/fault').text) + n=n+1 # # Program Name