Added free audio samples from OpSound, removed old audio samples referring

to LiveSupport.  Added License information for the audio samples.

Added a working silence file.

Pypo:
Changed the Campcaster API client to ignore playlists that have already past.

Updated "cleanup()" function with Jonas fixes.

Cleanup up a lot of print statements, converted to debug statements.

Added missing data from the Campcaster JSON export.
This commit is contained in:
paul.baranowski 2010-11-24 17:57:55 -05:00
parent 8e7e0226e6
commit 10caa36c70
6 changed files with 257 additions and 190 deletions

View file

@ -164,26 +164,47 @@ class CampcasterApiClient(ApiClientInterface):
# Construct the URL
export_url = self.config["base_url"] + self.config["api_base"] + self.config["export_url"]
logger.debug("Exporting schedule using URL: "+export_url)
#logger.debug("Exporting schedule using URL: "+export_url)
# Insert the start and end times into the URL
export_url = export_url.replace('%%api_key%%', self.config["api_key"])
export_url = export_url.replace('%%from%%', range['start'])
export_url = export_url.replace('%%to%%', range['end'])
logger.info("export from %s", export_url)
logger.info("Fetching schedule from %s", export_url)
response = ""
status = 0
try:
response_json = urllib.urlopen(export_url).read()
logger.debug("%s", response_json)
#logger.debug("%s", response_json)
response = json.read(response_json)
logger.info("export status %s", response['check'])
#logger.info("export status %s", response['check'])
status = response['check']
except Exception, e:
print e
return status, response
schedule = response["playlists"]
scheduleKeys = sorted(schedule.iterkeys())
# Remove all playlists that have passed current time
try:
tnow = time.localtime(time.time())
str_tnow_s = "%04d-%02d-%02d-%02d-%02d-%02d" % (tnow[0], tnow[1], tnow[2], tnow[3], tnow[4], tnow[5])
toRemove = []
for pkey in scheduleKeys:
if (str_tnow_s > schedule[pkey]['end']):
toRemove.append(pkey)
else:
break
#logger.debug("Remove keys: %s", toRemove)
for index in toRemove:
del schedule[index]
#logger.debug("Schedule dict: %s", schedule)
except Exception, e:
logger.debug("'Ignore Past Playlists' feature not supported by API: %s", e)
response["playlists"] = schedule
return status, response
def get_media(self, src, dst):
@ -200,68 +221,71 @@ class CampcasterApiClient(ApiClientInterface):
def update_scheduled_item(self, item_id, value):
logger = logging.getLogger()
url = self.config["base_url"] + self.config["api_base"] + self.config["update_item_url"]
try:
response = urllib.urlopen(url, self.api_auth)
response = json.read(response.read())
logger.info("API-Status %s", response['status'])
logger.info("API-Message %s", response['message'])
except Exception, e:
print e
api_status = False
logger.critical("Unable to connect - %s", e)
return response
pass
#logger = logging.getLogger()
#
#url = self.config["base_url"] + self.config["api_base"] + self.config["update_item_url"]
#
#try:
# response = urllib.urlopen(url, self.api_auth)
# response = json.read(response.read())
# logger.info("API-Status %s", response['status'])
# logger.info("API-Message %s", response['message'])
#
#except Exception, e:
# print e
# api_status = False
# logger.critical("Unable to connect - %s", e)
#
#return response
def update_start_playing(self, playlist_type, export_source, media_id, playlist_id, transmission_id):
logger = logging.getLogger()
url = self.config["base_url"] + self.config["api_base"] + self.config["update_start_playing_url"]
url = url.replace("%%playlist_type%%", str(playlist_type))
url = url.replace("%%export_source%%", str(export_source))
url = url.replace("%%media_id%%", str(media_id))
url = url.replace("%%playlist_id%%", str(playlist_id))
url = url.replace("%%transmission_id%%", str(transmission_id))
print url
try:
response = urllib.urlopen(url)
response = json.read(response.read())
logger.info("API-Status %s", response['status'])
logger.info("API-Message %s", response['message'])
logger.info("TXT %s", response['str_dls'])
except Exception, e:
print e
api_status = False
logger.critical("Unable to connect - %s", e)
return response
pass
#logger = logging.getLogger()
#
#url = self.config["base_url"] + self.config["api_base"] + self.config["update_start_playing_url"]
#url = url.replace("%%playlist_type%%", str(playlist_type))
#url = url.replace("%%export_source%%", str(export_source))
#url = url.replace("%%media_id%%", str(media_id))
#url = url.replace("%%playlist_id%%", str(playlist_id))
#url = url.replace("%%transmission_id%%", str(transmission_id))
#print url
#
#try:
# response = urllib.urlopen(url)
# response = json.read(response.read())
# logger.info("API-Status %s", response['status'])
# logger.info("API-Message %s", response['message'])
# logger.info("TXT %s", response['str_dls'])
#
#except Exception, e:
# print e
# api_status = False
# logger.critical("Unable to connect - %s", e)
#
#return response
def generate_range_dp(self):
logger = logging.getLogger()
url = self.api_url + 'schedule/generate_range_dp.php'
try:
response = urllib.urlopen(url, self.api_auth)
response = json.read(response.read())
logger.debug("Trying to contact %s", url)
logger.info("API-Status %s", response['status'])
logger.info("API-Message %s", response['message'])
except Exception, e:
print e
api_status = False
logger.critical("Unable to handle the request - %s", e)
return response
pass
#logger = logging.getLogger()
#
#url = self.api_url + 'schedule/generate_range_dp.php'
#
#try:
# response = urllib.urlopen(url, self.api_auth)
# response = json.read(response.read())
# logger.debug("Trying to contact %s", url)
# logger.info("API-Status %s", response['status'])
# logger.info("API-Message %s", response['message'])
#
#except Exception, e:
# print e
# api_status = False
# logger.critical("Unable to handle the request - %s", e)
#
#return response