Merge pull request #26 from vn-ki/dynamic-import

Switch to dynamic import
master
Vishnunarayan K I 2018-06-26 16:55:49 +05:30 committed by GitHub
commit 05680e8f67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 22 deletions

View File

@ -1 +1 @@
from .init import ALL_ANIME_CLASSES, get_anime_class
from .init import get_anime_class

View File

@ -20,7 +20,7 @@ class GogoanimeEpisode(BaseEpisode):
self.stream_url = self._stream_urls[0]
class Gogoanime(BaseAnime):
class GogoAnime(BaseAnime):
sitename = 'gogoanime'
QUALITIES = ['360p', '480p', '720p']
_api_url = 'https://www2.gogoanime.se//load-list-episode?ep_start=1&'\

View File

@ -1,23 +1,28 @@
from anime_downloader.sites.anime import BaseAnime
from anime_downloader.sites.nineanime import NineAnime
from anime_downloader.sites.gogoanime import Gogoanime
from importlib import import_module
import logging
try:
from anime_downloader.sites.kissanime import Kissanime
from anime_downloader.sites.kisscartoon import Kisscarton
except ImportError:
CFSCRAPE = False
import inspect
ALL_ANIME_CLASSES = [
anime
for name, anime in globals().items()
if inspect.isclass(anime) and issubclass(anime, BaseAnime) and not name.startswith('Base')
ALL_ANIME_SITES = [
# ('filename', 'sitename', 'classname')
('nineanime', '9anime', 'NineAnime'),
('gogoanime', 'gogoanime', 'GogoAnime'),
('kissanime', 'kissanime', 'KissAnime'),
('kisscartoon', 'kisscartoon', 'KissCartoon'),
]
def get_anime_class(url):
for cls in ALL_ANIME_CLASSES:
if cls.verify_url(url):
return cls
for site in ALL_ANIME_SITES:
if site[1] in url:
try:
module = import_module(
'anime_downloader.sites.{}'.format(site[0])
)
except ImportError as e:
# TODO: This should raise an error instead of logging.
# I'm lazy af right now.
logging.debug("Coudn't import {}, '{}'".format(site[0], e.msg))
logging.warning("Provider '{}' not used. Make sure you have "
"cfscrape and node-js installed".format(site[0]))
continue
return getattr(module, site[2])

View File

@ -41,7 +41,7 @@ class KissanimeEpisode(BaseEpisode):
return data
class Kissanime(BaseAnimeCF):
class KissAnime(BaseAnimeCF):
sitename = 'kissanime'
QUALITIES = ['360p', '480p', '720p']
_episodeClass = KissanimeEpisode

View File

@ -26,7 +26,7 @@ class KisscartoonEpisode(BaseEpisode):
'Episode')[-1].split('?')[0]
class Kisscarton(Kissanime):
class KissCarton(Kissanime):
sitename = 'kisscartoon'
_episodeClass = KisscartoonEpisode