def items(self): if self._items is None: try: req = plugin_api_tvdb.TVDBRequest( username=self.config['username'], account_id=self.config['account_id'], api_key=self.config['api_key'], ).get('user/favorites') series_ids = [int(f_id) for f_id in req['favorites'] if f_id != ''] except RequestException as e: raise PluginError('Error retrieving favorites from thetvdb: %s' % str(e)) self._items = [] for series_id in series_ids: # Lookup the series name from the id try: series = plugin_api_tvdb.lookup_series( tvdb_id=series_id, language=self.config.get('language') ) except LookupError as e: log.error('Error looking up %s from thetvdb: %s' % (series_id, e.args[0])) else: series_name = series.name if self.config.get('strip_dates'): # Remove year from end of series name if present series_name, _ = split_title_year(series_name) entry = Entry() entry['title'] = entry['series_name'] = series_name entry['url'] = 'http://thetvdb.com/index.php?tab=series&id={}'.format( str(series.id) ) entry['tvdb_id'] = str(series.id) self._items.append(entry) return self._items
def discard(self, entry): if not entry.get('tvdb_id'): log.verbose( 'entry does not have `tvdb_id`, cannot remove from list. Consider using a lookup plugin`' ) return try: plugin_api_tvdb.TVDBRequest( username=self.config['username'], account_id=self.config['account_id'], api_key=self.config['api_key'], ).delete('user/favorites/{}'.format(entry['tvdb_id'])) except RequestException as e: log.error('Could not add tvdb_id {} to favourites list: {}'.format( entry['tvdb_id'], e)) self.invalidate_cache()