mirror of
https://github.com/JoeanAmier/XHS-Downloader.git
synced 2025-12-26 04:48:05 +08:00
refactor(download.py): 移除文件并发下载功能
This commit is contained in:
parent
5a0d3b3f4d
commit
24c7a1eb3e
@ -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>
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user