예제 #1
0
 def get_images(self, mediaid, types=None):
     if types and not self.provides(types):
         return {}
     result = {}
     languages = [pykodi.get_language(xbmc.ISO_639_1)]
     if languages[0] != 'en':
         languages.append('en')
     # Useful fanart can be hidden by the language filter, try a few of the most frequently used
     flanguages = ['en', 'de', 'fr', 'es', 'ru']
     if languages[0] not in flanguages:
         flanguages.append(languages[0])
     for arttype in self.artmap.keys():
         if types and not typematches(self.artmap[arttype], types):
             continue
         for language in languages if arttype != 'fanart' else flanguages:
             generaltype = self.artmap[arttype]
             data = self.get_data(mediaid, arttype, language)
             if data == 'Empty':
                 continue
             isseason = arttype.startswith('season')
             if not isseason:
                 if generaltype not in result:
                     result[generaltype] = []
             for image in data['data']:
                 ntype = generaltype
                 if isseason:
                     ntype = ntype % image['subKey']
                     if ntype not in result:
                         result[ntype] = []
                 resultimage = {'provider': self.name}
                 resultimage['url'] = self.imageurl_base + image['fileName']
                 resultimage['preview'] = self.imageurl_base + image['thumbnail']
                 resultimage['language'] = language if shouldset_imagelanguage(image) else None
                 if image['ratingsInfo']['average']:
                     resultimage['rating'] = SortedDisplay(image['ratingsInfo']['average'], '{0:.1f} stars'.format(image['ratingsInfo']['average']))
                 else:
                     resultimage['rating'] = SortedDisplay(5, 'Not rated')
                 if arttype in ('series', 'seasonwide'):
                     resultimage['size'] = SortedDisplay(758, '758x140')
                 elif arttype == 'season':
                     resultimage['size'] = SortedDisplay(1000, '680x1000')
                 else:
                     try:
                         sortsize = int(image['resolution'].split('x')[0 if arttype != 'poster' else 1])
                     except ValueError:
                         self.log('whoops, ValueError on "%s"' % image['resolution'])
                         sortsize = 0
                     resultimage['size'] = SortedDisplay(sortsize, image['resolution'])
                 result[ntype].append(resultimage)
     return result
 def setlanguages(self):
     self.language = pykodi.get_language(xbmc.ISO_639_1)
     if self.language == 'en':
         self.autolanguages = (self.language, None)
     else:
         self.autolanguages = (self.language, 'en', None)