def get_banners(self, nfo_path):
     """Get banner info from the nfo file"""
     dom = self.readNfo(nfo_path)
     root = dom.firstChildElement("tvshow")
     series_id = int(root.firstChildElement("id").text())
     elem_fanart = root.firstChildElement("fanart")
     tvdb_banner_url = str(elem_fanart.attribute("url"))
     banners = []
     elem_banner = root.firstChildElement("thumb")
     while not elem_banner.isNull():
         banner = Banner()
         banner.set(elem_banner, series_id, tvdb_banner_url, 'nfo')
         if not banner in banners:
             banners.append(banner)
         elem_banner = elem_banner.nextSiblingElement("thumb")
     elem_fanart_banner = elem_fanart.firstChildElement("thumb")
     while not elem_fanart_banner.isNull():
         banner = Banner()
         banner.set(elem_fanart_banner, series_id, tvdb_banner_url, 'nfo')
         if not banner in banners:
             banners.append(banner)
         elem_fanart_banner = elem_fanart_banner.nextSiblingElement("thumb")
     return banners
Exemple #2
0
        try:
            series_info_remote = urllib2.urlopen(series_info_url)
            self.logger.info("Grabbed url %s" % (series_info_url))
        except urllib2.HTTPError, e:
            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 Banner objects
        dom = QtXml.QDomDocument()
        dom.setContent(series_info_zip.read("banners.xml"))
        banner_info_list = []
        banners = dom.firstChildElement("Banners")
        banner_node = banners.firstChildElement("Banner")
        while not banner_node.isNull():
            banner = Banner()
            banner.set(banner_node, series_id, self.tvdb_banner_url, 'tvdb')
            banner_info_list.append(banner)
            banner_node = banner_node.nextSiblingElement("Banner")
        return banner_info_list

    def get_series_info(self, series_id):
        """Parse the <lang>.xml file for series information"""
        series = Series()
        series_info_url = "%s/series/%s/%s.xml" % \
            (self.tvdb_apikey_url, series_id, self.lang)
        series_info_zip_url = "%s/series/%s/all/en.zip" % \
          (self.tvdb_apikey_url, series_id)
        try:
            series_info = urllib2.urlopen(series_info_url)
            self.logger.info("Grabbed url %s" % (series_info_url))