mirror of
https://github.com/Faraphel/Atlas-Install.git
synced 2025-07-03 11:18:26 +02:00
added a sha1 check before downloading, now exception are used when a error occur instead of a blurry negative number
This commit is contained in:
parent
599c6b604f
commit
8caf3535d6
1 changed files with 11 additions and 10 deletions
|
@ -4,6 +4,11 @@ from .definition import *
|
||||||
from .wszst import *
|
from .wszst import *
|
||||||
|
|
||||||
|
|
||||||
|
class CantDownloadTrack(Exception):
|
||||||
|
def __init__(self, track, http_error=404):
|
||||||
|
super().__init__(f"Can't download track {track.get_track_name()} (error {http_error}) !")
|
||||||
|
|
||||||
|
|
||||||
class Track:
|
class Track:
|
||||||
def __init__(self, name: str = "_", prefix: str = None, suffix: str = None,
|
def __init__(self, name: str = "_", prefix: str = None, suffix: str = None,
|
||||||
author="Nintendo", special="T11", music="T11", new=True, sha1: str = None, since_version: str = None,
|
author="Nintendo", special="T11", music="T11", new=True, sha1: str = None, since_version: str = None,
|
||||||
|
@ -60,6 +65,7 @@ class Track:
|
||||||
check if track wu8's sha1 is correct
|
check if track wu8's sha1 is correct
|
||||||
:return: 0 if yes, -1 if no
|
:return: 0 if yes, -1 if no
|
||||||
"""
|
"""
|
||||||
|
if not os.path.exists(self.file_wu8): return -1
|
||||||
if szs.sha1(file=self.file_wu8) == self.sha1: return 0
|
if szs.sha1(file=self.file_wu8) == self.sha1: return 0
|
||||||
else: return -1
|
else: return -1
|
||||||
|
|
||||||
|
@ -73,16 +79,12 @@ class Track:
|
||||||
"""
|
"""
|
||||||
download track wu8 from github
|
download track wu8 from github
|
||||||
:param github_content_root: url to github project root
|
:param github_content_root: url to github project root
|
||||||
:return: 0 if correctly downloaded, 1 if no need to download, 3 if track size is incorrect, -1 if error
|
:return: 0 if correctly downloaded
|
||||||
"""
|
"""
|
||||||
returncode = 0
|
|
||||||
|
if self.check_sha1(): return 0 # if sha1 correct, do not try to download track
|
||||||
|
|
||||||
dl = requests.get(github_content_root + self.file_wu8, allow_redirects=True, stream=True)
|
dl = requests.get(github_content_root + self.file_wu8, allow_redirects=True, stream=True)
|
||||||
if os.path.exists(self.file_wu8):
|
|
||||||
if int(dl.headers['Content-Length']) == os.path.getsize(self.file_wu8):
|
|
||||||
return 1
|
|
||||||
else:
|
|
||||||
returncode = 3
|
|
||||||
|
|
||||||
if dl.status_code == 200: # if page is found
|
if dl.status_code == 200: # if page is found
|
||||||
with open(self.file_wu8, "wb") as file:
|
with open(self.file_wu8, "wb") as file:
|
||||||
|
@ -90,10 +92,9 @@ class Track:
|
||||||
for i, chunk in enumerate(dl.iter_content(chunk_size=chunk_size)):
|
for i, chunk in enumerate(dl.iter_content(chunk_size=chunk_size)):
|
||||||
file.write(chunk)
|
file.write(chunk)
|
||||||
file.flush()
|
file.flush()
|
||||||
return returncode
|
return 0
|
||||||
else:
|
else:
|
||||||
print(f"error {dl.status_code} {self.file_wu8}")
|
raise CantDownloadTrack(track=self, http_error=dl.status_code)
|
||||||
return -1
|
|
||||||
|
|
||||||
def get_ctfile(self, race=False, *args, **kwargs) -> str:
|
def get_ctfile(self, race=False, *args, **kwargs) -> str:
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in a new issue