anime-downloader/anime_downloader/sites/init.py

56 lines
1.8 KiB
Python

from importlib import import_module
ALL_ANIME_SITES = [
# ('filename', 'sitename', 'classname')
('gogoanime', 'gogoanime', 'GogoAnime'),
('kissanime', 'kissanime', 'KissAnime'),
('kisscartoon', 'kisscartoon', 'KissCartoon'),
('twistmoe', 'twist.moe', 'TwistMoe'),
('animepahe', 'animepahe', 'AnimePahe'),
('animeflv', 'animeflv', 'Animeflv'),
('itsaturday', 'itsaturday', 'Itsaturday'),
('animefreak', 'animefreak', 'AnimeFreak'),
('animeflix', 'animeflix', 'AnimeFlix'),
('dubbedanime', 'dubbedanime', 'Dubbedanime'),
('animeout', 'animeout', 'AnimeOut'),
('animerush','animerush','AnimeRush'),
('animesimple', 'animesimple', 'AnimeSimple'),
('kickass', 'kickass', 'KickAss'),
('dreamanime', 'dreamanime', 'DreamAnime'),
('ryuanime', 'ryuanime', 'RyuAnime'),
('erairaws', 'erai-raws', 'EraiRaws'),
('watchmovie','watchmovie','WatchMovie'),
('animekisa','animekisa','AnimeKisa'),
('nyaa','nyaa','Nyaa'),
('animedaisuki','animedaisuki','Animedaisuki'),
('justdubs','justdubs','JustDubs'),
('animevibe','animevibe','AnimeVibe'),
('yify','yify','Yify'),
]
def get_anime_class(url):
"""
Get anime class corresposing to url or name.
See :py:data:`anime_downloader.sites.ALL_ANIME_SITES` to get the possible anime sites.
Parameters
----------
url: string
URL of the anime.
Returns
-------
:py:class:`anime_downloader.sites.anime.Anime`
Concrete implementation of :py:class:`anime_downloader.sites.anime.Anime`
"""
for site in ALL_ANIME_SITES:
if site[1] in url:
try:
module = import_module(
'anime_downloader.sites.{}'.format(site[0])
)
except ImportError:
raise
return getattr(module, site[2])