def getPlanned(self): status = 'planned' sort_status = tools.getSetting('planned.sort') sort = tools.account_sort['kitsu'][sort_status] params = { "fields[anime]": "slug,posterImage,coverImage,canonicalTitle,titles,synopsis,subtype,startDate,status,averageRating,popularityRank,ratingRank,episodeCount,episodeLength", "fields[users]": "id", "filter[user_id]": self.userid, "filter[kind]": "anime", "filter[status]": status, "include": "anime,user,mediaReaction", "page[limit]": "500", "page[offset]": "0", "sort": sort } anime = requests.get('https://kitsu.io/api/edge/library-entries', headers=self.headers, params=params) data = json.loads(anime.content) try: info = data['included'][1:] except: info = [] extracted_items = kitsu_api.KitsuBrowser().extract_items(info) sortedItems = tools.sort_anime_by_json(extracted_items, info) return sortedItems
def trending(self): anime = [] resp = cache.hummingCache().cacheCheck(Backend().request, 24, '/trending/anime') load = json.loads(resp) data = load['data'] for a in data: self.remaining_threads.append(a['attributes']['canonicalTitle']) self.thread_list.put(self.extract, a) while len(self.remaining_threads) > 0: time.sleep(1) sortedItems = tools.sort_anime_by_json(self.extractedItems, data) return sortedItems
def top_upcoming(self, page): anime = [] sort_status = tools.getSetting('upcoming.sort') sort = tools.menu_sort[sort_status] resp = cache.hummingCache().cacheCheck( Backend().request, 24, '/anime?filter[status]=upcoming&sort=%s' % sort, page=page) load = json.loads(resp) data = load['data'] for a in data: self.remaining_threads.append(a['attributes']['canonicalTitle']) self.thread_list.put(self.extract, a) while len(self.remaining_threads) > 0: time.sleep(1) sortedItems = tools.sort_anime_by_json(self.extractedItems, data) return sortedItems
def search(self, title=None, year=None, rating=None, season=None, subtype=None, genre=None, page=1): filters = [] if title != None and title != '': filters.append('filter[text]=%s' % title) if season == None or season == '': if year != None and year != '': filters.append( 'filter[season]=winter,spring,summer,fall&filter[seasonYear]=%s' % year) if season != None and season != '': if year == None or year == '': filters.append('filter[season]=%s' % season) if year != None and year != '': filters.append('filter[season]=%s&filter[seasonYear]=%s' % (season, year)) if rating != None and rating != '': filters.append('filter[ageRating]=%s' % rating) if subtype != None and subtype != '': filters.append('filter[subtype]=%s' % subtype) if genre != None and genre != '': filters.append('filter[categories]=%s' % genre) #for a in filters: #if a == 'filter[text]=None': #filters.remove(a) filter_string = '&'.join(filters) sort_status = tools.getSetting('search.sort') sort_string = tools.menu_sort[sort_status] if title == None or title == '': request = '/anime?' + filter_string + '&sort=%s' % sort_string else: request = '/anime?' + filter_string anime = [] resp = cache.hummingCache().cacheCheck(Backend().request, 24, request, page=page) load = json.loads(resp) data = load['data'] for a in data: self.remaining_threads.append(a['attributes']['canonicalTitle']) self.thread_list.put(self.extract, a) while len(self.remaining_threads) > 0: time.sleep(1) sortedItems = tools.sort_anime_by_json(self.extractedItems, data) return sortedItems