perf(download.py): 优化文件下载功能

This commit is contained in:
JoeanAmier
2024-12-04 19:50:15 +08:00
parent 561984356f
commit 4a8b0e57d4
7 changed files with 31 additions and 5 deletions

View File

@@ -6,6 +6,7 @@ from typing import TYPE_CHECKING, Any
from aiofiles import open
from httpx import HTTPError
from ..expansion import CacheError
from ..module import ERROR
from ..module import (
FILE_SIGNATURES_LENGTH,
@@ -196,6 +197,10 @@ class Download:
try:
async with self.client.stream("GET", url, headers=headers, ) as response:
await sleep_time()
if response.status_code == 416:
raise CacheError(
self.message("文件 {0} 缓存异常,重新下载").format(temp.name),
)
response.raise_for_status()
# self.__create_progress(
# bar,
@@ -220,7 +225,6 @@ class Download:
logging(log, self.message("文件 {0} 下载成功").format(real.name))
return True
except HTTPError as error:
# self.manager.delete(temp)
# self.__create_progress(bar, None)
logging(
log,
@@ -234,6 +238,13 @@ class Download:
# WARNING,
# )
return False
except CacheError as error:
self.manager.delete(temp)
logging(
log,
str(error),
ERROR,
)
@staticmethod
def __create_progress(bar, total: int | None, completed=0, ):

View File

@@ -1,9 +1,10 @@
from .browser import BrowserCookie
from .cleaner import Cleaner
from .converter import Converter
from .error import CacheError
from .file_folder import file_switch
from .file_folder import remove_empty_directories
from .namespace import Namespace
from .truncate import beautify_string
from .truncate import trim_string
from .truncate import truncate_string
from .file_folder import file_switch
from .file_folder import remove_empty_directories
from .cleaner import Cleaner

View File

@@ -0,0 +1,7 @@
class CacheError(Exception):
def __init__(self, message: str):
super().__init__(message)
self.message = message
def __str__(self):
return self.message