def update_start_playing(self, playlist_type, export_source, media_id, playlist_id, transmission_id, user_id): logger = logging.getLogger("ApiClient.update_shedueled_item") url = self.api_url + 'api/pypo/update_start_playing/' \ + '?playlist_type=' + str(playlist_type) \ + '&export_source=' + str(export_source) \ + '&user_id=' + str(user_id) \ + '&media_id=' + str(media_id) \ + '&playlist_id=' + str(playlist_id) \ + '&transmission_id=' + str(transmission_id) print 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']) logger.info("TXT %s", response['str_dls']) except Exception, e: print e api_status = False logger.critical("Unable to connect to the OBP API - %s", e)
def get_version(self): logger = logging.getLogger("ApiClient.get_version") # lookup OBP version url = self.api_url + 'status.json' data = urllib.urlencode({'apikey': self.api_key}) logger.debug("%s", url) try: logger.debug("Trying to contact %s", url) response = urllib.urlopen(url, data) response_json = json.read(response.read()) api_version = int(response_json['api_version']) max_upload = int(response_json['max_upload']) logger.debug("API Version %s detected", api_version) except Exception, e: try: if e[1] == 401: print '#####################################' print '# YOUR API KEY SEEMS TO BE INVALID' print '# ' + self.api_key print '#####################################' logger.critical("API Key invalid") #sys.exit() #time.sleep(30) except Exception, e: pass
def metadata_change(self, station, title): logger = logging.getLogger("ApiClient.metadata_change") data = {'apikey': self.api_key, 'station': station, 'title': title} url = self.api_url + 'metadata_change.json' data = urllib.urlencode(data) logger.debug("%s", url) try: logger.debug("Trying to contact %s", url) response = urllib.urlopen(url, data) response_json = json.read(response.read()) api_version = int(response_json['api_version']) print response_json status = True except Exception, e: #print e status = False
def get_obp_version(self): logger = logging.getLogger("ApiClient.get_obp_version") # lookup OBP version url = self.api_url + 'api/pypo/status/json' logger.debug("%s", url) try: logger.debug("Trying to contact %s", url) response = urllib.urlopen(url, self.api_auth) response_json = json.read(response.read()) obp_version = int(response_json['version']) logger.debug("OBP Version %s detected", obp_version) except Exception, e: try: if e[1] == 401: print '#####################################' print '# YOUR API KEY SEEMS TO BE INVALID' print '# ' + self.api_auth print '#####################################' logger.critical("API Key invalid") sys.exit() except Exception, e: pass
def notify_media_item_start_playing(self, data, media_id): # def update_start_playing(self, playlist_type, export_source, media_id, playlist_id, transmission_id): logger = logging.getLogger() playlist_type = data["playlist_type"] export_source = data["export_source"] playlist_id = data["playlist_id"] transmission_id = data["transmission_id"] 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, self.api_auth) 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 to the OBP API - %s", e)
def load(self): dictionary = json.read(_filename) if dictionary: for key in dictionary: setattr(self, key, dictionary[key]) self.file_extensions = sorted(self.file_extensions)
def notify_media_item_start_playing(self, data, media_id): logger = logging.getLogger() response = '' if (data[0] != '{'): return response try: data = json.read(data) logger.debug(str(data)) schedule_id = data["schedule_id"] url = self.config["base_url"] + self.config["api_base"] + self.config["update_start_playing_url"] url = url.replace("%%media_id%%", str(media_id)) url = url.replace("%%schedule_id%%", str(schedule_id)) url = url.replace("%%api_key%%", self.config["api_key"]) logger.debug(url) response = urllib.urlopen(url) response = json.read(response.read()) logger.info("API-Status %s", response['status']) logger.info("API-Message %s", response['message']) except Exception, e: logger.critical("Exception: %s", e)
def get_obp_version(self): logger = logging.getLogger("status.get_obp_version") # lookup OBP version try: response = urllib.urlopen(self.status_url) response_json = json.read(response.read()) obp_version = int(response_json['version']) logger.debug("OBP Version %s detected", obp_version) except Exception, e: print e obp_version = 0 logger.error("Unable to detect OBP Version - %s", e)
def update_shedueled_item(self, item_id, value): logger = logging.getLogger("ApiClient.update_shedueled_item") # lookup OBP version url = self.api_url + 'api/pypo/update_shedueled_item/' + str(item_id) + '?played=' + str(value) 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 to the OBP API - %s", e)
def generate_range_dp(self): logger = logging.getLogger() url = self.config["base_url"] + self.config["api_base"] + self.config["generate_range_url"] 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 OBP API request - %s", e)
def notify_scheduled_item_start_playing(self, pkey, schedule): logger = logging.getLogger() playlist = schedule[pkey] schedule_id = playlist["schedule_id"] url = self.config["base_url"] + self.config["api_base"] + self.config["update_item_url"] url = url.replace("%%schedule_id%%", str(schedule_id)) url = url.replace("%%api_key%%", self.config["api_key"]) logger.debug(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']) except Exception, e: logger.critical("Unable to connect - %s", e)
def notify_scheduled_item_start_playing(self, pkey, schedule): #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"] url = url.replace("%%item_id%%", str(schedule[pkey]["id"])) url = url.replace("%%played%%", "1") 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 to the OBP API - %s", e)
def update_shedueled_item(self, item_id, value): logger = logging.getLogger("ApiClient.update_shedueled_item") # lookup OBP version url = self.api_url + 'api/pypo/update_shedueled_item/' + str( item_id) + '?played=' + str(value) 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 to the OBP API - %s", e)
def generate_range_dp(self): logger = logging.getLogger("ApiClient.generate_range_dp") url = self.api_url + 'api/pypo/generate_range_dp/force/true' print '*** calling' print url print '***********' 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 OBP API request - %s", e)
def get_schedule(self, start=None, end=None): logger = logging.getLogger() """ calculate start/end time range (format: YYYY-DD-MM-hh-mm-ss,YYYY-DD-MM-hh-mm-ss) (seconds are ignored, just here for consistency) """ tnow = time.localtime(time.time()) if (not start): tstart = time.localtime(time.time() - 3600 * int(self.config["cache_for"])) start = "%04d-%02d-%02d-%02d-%02d" % (tstart[0], tstart[1], tstart[2], tstart[3], tstart[4]) if (not end): tend = time.localtime(time.time() + 3600 * int(self.config["prepare_ahead"])) end = "%04d-%02d-%02d-%02d-%02d" % (tend[0], tend[1], tend[2], tend[3], tend[4]) range = {} range['start'] = start range['end'] = end # 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) # 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("Fetching schedule from %s", export_url) response = "" status = 0 try: response_json = urllib.urlopen(export_url).read() #logger.debug("%s", response_json) response = json.read(response_json) #logger.info("export status %s", response['check']) status = response['check'] except Exception, e: print e
def get_obp_version(self): logger = logging.getLogger() # lookup OBP version url = self.config["base_url"] + self.config["api_base"]+ self.config["version_url"] try: logger.debug("Trying to contact %s", url) response = urllib.urlopen(url, self.api_auth) response_json = json.read(response.read()) obp_version = int(response_json['version']) logger.debug("OBP Version %s detected", obp_version) except Exception, e: try: if e[1] == 401: print '#####################################' print '# YOUR API KEY SEEMS TO BE INVALID' print '# ' + self.config["api_auth"] print '#####################################' sys.exit() except Exception, e: pass
def __get_airtime_version(self, verbose = True): logger = logging.getLogger() url = self.config["base_url"] + self.config["api_base"] + self.config["version_url"] url = url.replace("%%api_key%%", self.config["api_key"]) try: logger.debug("Trying to contact %s", url) response = urllib.urlopen(url) data = response.read() logger.debug("Data: %s", data) response_json = json.read(data) version = response_json['version'] logger.debug("Airtime Version %s detected", version) except Exception, e: try: if e[1] == 401: if (verbose): print '#####################################' print '# YOUR API KEY SEEMS TO BE INVALID:' print '# ' + self.config["api_key"] print '#####################################' return False except Exception, e: pass
def _load(self): content = json.read(_filename) if content: for dictionary in content: self.films.append(Film(**dictionary))