refactor(download.py): 移除文件并发下载功能

This commit is contained in:
JoeanAmier 2024-08-21 19:23:45 +08:00
parent 5a0d3b3f4d
commit 24c7a1eb3e
2 changed files with 30 additions and 21 deletions

View File

@ -13,7 +13,7 @@
<img alt="GitHub all releases" src="https://img.shields.io/github/downloads/JoeanAmier/XHS-Downloader/total?style=for-the-badge&color=f759ab">
</div>
<br>
<p>🔥 <b>小红书链接提取/作品采集工具</b>:提取账号发布、收藏、点赞作品链接;提取搜索结果作品链接、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件!</p>
<p>🔥 <b>小红书链接提取/作品采集工具</b>:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品链接、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件!</p>
<p>⭐ 本项目完全免费开源,无任何收费功能,请勿上当受骗!</p>
<h1>📑 项目功能</h1>
<ul><b>程序功能</b>
@ -40,6 +40,7 @@
<li>✅ 提取账号发布作品链接</li>
<li>✅ 提取账号收藏作品链接</li>
<li>✅ 提取账号点赞作品链接</li>
<li>✅ 提取账号专辑作品链接</li>
<li>✅ 提取搜索结果作品链接</li>
<li>✅ 提取搜索结果用户链接</li>
</ul>

View File

@ -1,11 +1,11 @@
from asyncio import gather
# from asyncio import gather
from pathlib import Path
from typing import TYPE_CHECKING
from aiofiles import open
from httpx import HTTPError
from source.module import ERROR, WARNING
from source.module import ERROR
from source.module import Manager
from source.module import logging
from source.module import retry as re_download
@ -52,7 +52,7 @@ class Download:
type_: str,
log,
bar,
) -> tuple[Path, tuple]:
) -> tuple[Path, list]:
path = self.__generate_path(name)
match type_:
case "视频":
@ -62,17 +62,17 @@ class Download:
urls, lives, index, path, name, log)
case _:
raise ValueError
tasks = [
self.__download(
result = [
await self.__download(
url,
path,
name,
format_,
log,
bar) for url,
name,
format_ in tasks]
result = await gather(*tasks)
bar,
) for url, name, format_ in tasks
]
# result = await gather(*tasks)
return path, result
def __generate_path(self, name: str):
@ -127,7 +127,15 @@ class Download:
return False
@re_download
async def __download(self, url: str, path: Path, name: str, format_: str, log, bar):
async def __download(
self,
url: str,
path: Path,
name: str,
format_: str,
log,
bar,
):
headers = self.headers.copy()
try:
length, suffix = await self.__head_file(url, headers, format_, )
@ -138,11 +146,11 @@ class Download:
"网络异常,{0} 请求失败,错误信息: {1}").format(name, repr(error)),
ERROR,
)
logging(
log,
f"{url} Head Headers: {headers.get("Range")}",
WARNING,
)
# logging(
# log,
# f"{url} Head Headers: {headers.get("Range")}",
# WARNING,
# )
return False
temp = self.temp.joinpath(f"{name}.{suffix}")
real = path.joinpath(f"{name}.{suffix}")
@ -173,11 +181,11 @@ class Download:
"网络异常,{0} 下载失败,错误信息: {1}").format(name, repr(error)),
ERROR,
)
logging(
log,
f"{url} Stream Headers: {headers.get("Range")}",
WARNING,
)
# logging(
# log,
# f"{url} Stream Headers: {headers.get("Range")}",
# WARNING,
# )
return False
@staticmethod