simple JikanAPI wrapper for fetching random anime series/movies based on user's filter. interact with python properties instead of JSON fields
from rangen import RanGen
client = RanGen()
client.get_random_anime()"""
pass either keyword args or an AnimeFilter object. the latter is needed if you wanna use the filter params for any reason
"""
from rangen import RanGen
client = RanGen()
# keyword args
anime = client.get_random_anime_by_filter(
min_score=8.0,
anime_type=AnimeType.TV,
genres=[Genre.ACTION, Genre.ADVENTURE],
)
# AnimeFilter object
from rangen.models import AnimeFilter
some_filter = AnimeFilter(
min_score=8.0,
anime_type=AnimeType.TV,
genres=[Genre.ACTION, Genre.ADVENTURE],
)
anime = client.get_random_anime_by_filter(anime_filter=some_filter)"""
all enums have 2 properties: label (human-readable) and api_value (what is sent to JikanAPI)
the enums include AnimeType, AnimeStatus, AnimeRating and Genre
"""
from rangen.enums import AnimeType, Genre
print(Genre.ACTION.label)
# "Action"
print(Genre.ACTION.api_value)
# "1"
for anime_type in AnimeType:
print(anime_type.label, anime_type.api_value)
# "Series", "tv"
# "Movies", "movie"
# "OVA", "ova"
# ...from rangen.exceptions import (
MissingFilterError, # no filter params provided
FilterConflictError, # passed both AnimeFilter and kwargs
NothingFoundError, # no anime matched the filters
RateLimitError, # Jikan/MAL rate limit (after retries)
)