Пример #1
0
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)
Пример #2
0
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