def get_series_episodes(self, series_id): """Parse the <lang>.xml file for episode information""" xml_file_in_zip = "%s.xml" % (self.lang,) series_info_url = "%s/series/%s/all/%s.zip" % \ (self.tvdb_apikey_url, series_id, self.lang) try: series_info_remote = urllib2.urlopen(series_info_url) self.logger.info("Grabbed url %s" % (series_info_url)) except: self.logger.error("Error grabbing url %s" % (series_info_url)) return None series_info_memory = cStringIO.StringIO(series_info_remote.read()) series_info_zip = zipfile.ZipFile(series_info_memory, 'r') #Parse it up and put the info into a list of Episode objects dom = QtXml.QDomDocument() dom.setContent(series_info_zip.read(xml_file_in_zip)) data = dom.firstChildElement("Data") episode_info = [] episode_node = data.firstChildElement("Episode") while not episode_node.isNull(): episode = Episode() episode.set(episode_node, self.tvdb_banner_url, 'tvdb') episode_info.append(episode) episode_node = episode_node.nextSiblingElement("Episode") return episode_info
def get_episode(self, nfo_path): """Get episode info from the nfo file""" dom = self.readNfo(nfo_path) node = dom.firstChildElement("episodedetails") episode = Episode() episode.set(node, '', 'nfo') return episode
def get_episode_info(self, episode_id): """Parse the <lang>.xml file for episode information""" episode_info_url = "%s/episodes/%s/%s.xml" % \ (self.tvdb_apikey_url, episode_id, self.lang) try: episode_info = urllib2.urlopen(episode_info_url) self.logger.info("Grabbed url %s" % (episode_info_url)) except urllib2.HTTPError, e: self.logger.error("Error grabbing url %s" % (episode_info_url)) return None dom = QtXml.QDomDocument() dom.setContent(episode_info.read()) data = dom.firstChildElement("Data") if not data.isNull(): episode = Episode() episode_node = data.firstChildElement("Episode") episode.set(episode_node, self.tvdb_banner_url, 'tvdb') return episode else: self.logger.error("File from %s came back empty." % (episode_info_url)) return None def get_episode_by_season_episode(self, series_id, season, episode_no): """Parse the <lang>.xml file for episode information""" self.logger.debug("Season %s Episode %s" % (season, episode_no)) if season == '00': season = '0' else: season = season.lstrip('0') episode_no = episode_no.lstrip('0')