Fix downloading for masterani (#85)

This should fix downloading from masterani/mp4upload for some shows (since it also seems that some anime, like Koe No Katachi, are not affected by broken mp4upload SSL certs).
master
Jonas A. Walther 2018-10-04 11:41:33 +02:00 committed by Vishnunarayan K I
parent 0049ea6b20
commit b016f6222e
4 changed files with 15 additions and 8 deletions

View File

@ -24,7 +24,6 @@ def cli():
""" """
pass pass
# NOTE: Don't put defaults here. Add them to the dict in config # NOTE: Don't put defaults here. Add them to the dict in config
@cli.command() @cli.command()
@click.argument('anime_url') @click.argument('anime_url')
@ -140,7 +139,14 @@ def dl(ctx, anime_url, episode_range, url, player, skip_download, quality,
if chunk_size is not None: if chunk_size is not None:
chunk_size *= 1e6 chunk_size *= 1e6
chunk_size = int(chunk_size) chunk_size = int(chunk_size)
episode.download(force=force_download, if cls.__name__ == 'Masterani':
episode.download(force=force_download,
path=download_dir,
format=file_format,
range_size=chunk_size,
ssl=False)
else:
episode.download(force=force_download,
path=download_dir, path=download_dir,
format=file_format, format=file_format,
range_size=chunk_size) range_size=chunk_size)

View File

@ -8,19 +8,20 @@ from anime_downloader import util
class BaseDownloader: class BaseDownloader:
def __init__(self, source, path, force, range_size=None): def __init__(self, source, path, force, range_size=None, ssl=True):
logging.info(path) logging.info(path)
self.url = source.stream_url self.url = source.stream_url
self.referer = source.referer self.referer = source.referer
self.path = path self.path = path
self.range_size = range_size self.range_size = range_size
self.ssl = ssl
util.make_dir(path.rsplit('/', 1)[0]) util.make_dir(path.rsplit('/', 1)[0])
self.chunksize = 16384 self.chunksize = 16384
r = requests.get(self.url, stream=True) r = requests.get(self.url, stream=True, verify=ssl)
self.total_size = int(r.headers['Content-length']) self.total_size = int(r.headers['Content-length'])
if os.path.exists(path): if os.path.exists(path):

View File

@ -21,7 +21,7 @@ class HTTPDownloader(BaseDownloader):
with open(self.path, 'w'): with open(self.path, 'w'):
pass pass
r = requests.get(self.url, stream=True) r = requests.get(self.url, stream=True, verify=self.ssl)
while self.downloaded < self.total_size: while self.downloaded < self.total_size:
r = requests.get(self.url, r = requests.get(self.url,
headers=set_range(range_start, range_end), headers=set_range(range_start, range_end),
@ -41,7 +41,7 @@ class HTTPDownloader(BaseDownloader):
range_end = '' range_end = ''
def _non_range_download(self): def _non_range_download(self):
r = requests.get(self.url, stream=True) r = requests.get(self.url, stream=True, verify=self.ssl)
if r.status_code == 200: if r.status_code == 200:
with open(self.path, 'wb') as f: with open(self.path, 'wb') as f:

View File

@ -166,7 +166,7 @@ class BaseEpisode:
raise NotImplementedError raise NotImplementedError
def download(self, force=False, path=None, def download(self, force=False, path=None,
format='{anime_title}_{ep_no}', range_size=None): format='{anime_title}_{ep_no}', range_size=None, ssl=True):
logging.info('Downloading {}'.format(self.pretty_title)) logging.info('Downloading {}'.format(self.pretty_title))
if format: if format:
file_name = util.format_filename(format, self)+'.mp4' file_name = util.format_filename(format, self)+'.mp4'
@ -180,7 +180,7 @@ class BaseEpisode:
Downloader = get_downloader('http') Downloader = get_downloader('http')
downloader = Downloader(self.source(), downloader = Downloader(self.source(),
path, force, range_size=range_size) path, force, range_size=range_size, ssl=ssl)
downloader.download() downloader.download()