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
parent
0049ea6b20
commit
b016f6222e
|
@ -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)
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue