Added manga-py source
This commit is contained in:
72
manga-py-stable_1.x/manga_py/providers/helpers/_http2.py
Normal file
72
manga-py-stable_1.x/manga_py/providers/helpers/_http2.py
Normal file
@@ -0,0 +1,72 @@
|
||||
class Http2:
|
||||
provider = None
|
||||
path_join = None
|
||||
is_file = None
|
||||
chapters = None
|
||||
chapters_count = 0
|
||||
|
||||
def __init__(self, provider):
|
||||
from manga_py.fs import path_join, is_file
|
||||
self.provider = provider
|
||||
self.path_join = path_join
|
||||
self.is_file = is_file
|
||||
|
||||
def _get_name(self, idx):
|
||||
return self.path_join(
|
||||
self.provider._params.get('destination'),
|
||||
self.provider._storage['manga_name'],
|
||||
'{:0>3}-{}.{}'.format(
|
||||
idx, self.provider.get_archive_name(),
|
||||
self.provider._archive_type()
|
||||
)
|
||||
)
|
||||
|
||||
def __download(self, idx, name, url):
|
||||
_min, _max = self._min_max_calculate()
|
||||
self.provider._info.add_volume(
|
||||
self.provider.chapter,
|
||||
self.provider.get_archive_path()
|
||||
)
|
||||
|
||||
self.provider.progress(self.chapters_count, idx)
|
||||
|
||||
if idx < _min or (idx >= _max > 0) or self.is_file(name):
|
||||
return False
|
||||
|
||||
if not self.provider._simulate:
|
||||
try:
|
||||
self.provider.http().download_file(url, name, idx)
|
||||
except Exception as e:
|
||||
self.provider._info.set_last_volume_error(e)
|
||||
|
||||
def _min_max_calculate(self):
|
||||
_min = self.provider._params.get('skip_volumes', 0)
|
||||
_max = self.provider._params.get('max_volumes', 0)
|
||||
self.chapters_count = len(self.chapters)
|
||||
if _max > 0 or _min > 0:
|
||||
if _max < self.chapters_count:
|
||||
_max = self.chapters_count - _max
|
||||
else:
|
||||
_max = 0
|
||||
self.chapters_count = self.chapters_count - _min - _max
|
||||
if _max > 0 and _min > 0:
|
||||
_max += _min - 1
|
||||
return _min, _max
|
||||
|
||||
def download_archives(self, chapters=None):
|
||||
if chapters is None:
|
||||
chapters = self.provider._storage['chapters']
|
||||
self.chapters = chapters
|
||||
for idx, url in enumerate(chapters):
|
||||
self.provider.before_download_chapter()
|
||||
self.provider._storage['current_chapter'] = idx
|
||||
name = self._get_name(idx)
|
||||
idx, url, name = self.before_download(idx, url, name)
|
||||
self.__download(idx, name, url)
|
||||
self.after_download(idx, name)
|
||||
|
||||
def before_download(self, idx, url, _path):
|
||||
return idx, url, _path
|
||||
|
||||
def after_download(self, idx, _path):
|
||||
pass
|
||||
Reference in New Issue
Block a user