from jikanpy import Jikan jikan = Jikan() mushishi = jikan.anime(39617) mushishi_with_eps = jikan.anime(21, extension='episodes', page=10) search_result = jikan.search('anime', 'One Piece', page=1) winter_2018_anime = jikan.season(year=2021, season='winter') archive = jikan.season_archive() for anime in winter_2018_anime['anime']: if anime['title'] == 'One Piece': print(anime) print(archive) print(winter_2018_anime) print(search_result)
def fetchAllAnimes(): #jikan.season_later() #jikan.schedule() #top_anime = jikan.top(type='anime') #winter_2018 = jikan.season(year=2018, season='winter') animes = [] jikan = Jikan() archive = jikan.season_archive() year = int(archive['archive'][0]['year']) d = enchant.Dict("en_US") while year >= 1975: for seasonname in archive['archive'][0]['seasons']: while True: try: season = jikan.season(year=year, season=seasonname) break except Exception as error: if '429' in str(error): print('[DetectAnime] Rate limited. Sleeping for 30secs...') time.sleep(30) else: print(error) pass for animesmall in season['anime']: id = animesmall['mal_id'] while True: try: anime = jikan.anime(int(id)) break except Exception as error: if '429' in str(error): print('[DetectAnime] Rate limited. Sleeping for 30secs...') time.sleep(30) else: logging.error(error) pass title = anime['title'] engtitle = anime['title_english'] japtitle = anime['title_japanese'] synonym = anime['title_synonyms'] try: isValidTitle = len(title) > 4 and not d.check(title) and not d.check(re.sub('[^A-Za-z ]+', '', title)) except Exception as e: print('[DetectAnime] Error determining validity of title: ' + str(e) + '. Defaulting to False.') isValidTitle = False if isValidTitle: print(f'[DetectAnime] Appending "{title}" with id {id}. List size is now {len(animes)}.') animes.append(title) spacedreg = re.sub(r'[^\w]|[ ]', ' ', title) if len(spacedreg) > 4: animes.append(spacedreg) blankedreg = re.sub(r'[^\w]|[ ]', '', title) if len(blankedreg) > 4: animes.append(spacedreg) try: isValidTitle = len(engtitle) > 4 and not d.check(engtitle) and not d.check(re.sub('[^A-Za-z ]+', '', engtitle)) except Exception as e: print('[DetectAnime] Error determining validity of title: ' + str(e) + '. Defaulting to False.') isValidTitle = False if isValidTitle: print(f'[DetectAnime] Appending "{engtitle}" with id {id}. List size is now {len(animes)}.') animes.append(engtitle) spacedreg = re.sub(r'[^\w]|[ ]', ' ', engtitle) if len(spacedreg) > 4: animes.append(spacedreg) blankedreg = re.sub(r'[^\w]|[ ]', '', engtitle) if len(blankedreg) > 4: animes.append(spacedreg) if not japtitle == None and len(japtitle) > 5: print(f'[DetectAnime] Appending "{japtitle}" with id {id}. List size is now {len(animes)}.') animes.append(japtitle) for syn in synonym: if len(syn) > 4: print(f'[DetectAnime] Appending synonym "{syn}" for "{title}". List size is now {len(animes)}.') animes.append(syn) spacedreg = re.sub(r'[^\w]|[ ]', ' ', syn) if len(spacedreg) > 4: animes.append(spacedreg) blankedreg = re.sub(r'[^\w]|[ ]', '', syn) if len(blankedreg) > 4: animes.append(spacedreg) year -= 1 animes = list(dict.fromkeys(animes)) animes = removeDupStrings(animes) return animes