feat: 发布 2.2 版本

1. 移除 sec_ch_ua_platform 参数
2. 移除 sec_ch_ua 参数
3. 优化请求延时间隔
4. 优化并发下载功能
5. 修正英语翻译错误
6. 新增并发下载限制
7. 修正命令行模式错误
8. 简化数据请求头

Closes #86
Closes #87
Closes #93
Closes #98
Closes #105
Closes #109
Closes #110
Closes #140
Closes #152
Closes #154
Closes #157
Closes #159
Closes #160
Closes #162
Closes #164
Closes #165
This commit is contained in:
JoeanAmier
2024-08-30 12:01:25 +08:00
parent 44d5c61856
commit 0a52dc0ed2
24 changed files with 272 additions and 240 deletions

View File

@@ -11,13 +11,13 @@ from httpx import RequestError
from httpx import TimeoutException
from httpx import get
from source.expansion import remove_empty_directories
from .static import HEADERS
from .static import SEC_CH_UA
from .static import SEC_CH_UA_PLATFORM
# from .static import SEC_CH_UA
# from .static import SEC_CH_UA_PLATFORM
from .static import USERAGENT
from .static import WARNING
from .tools import logging
from source.expansion import remove_empty_directories
__all__ = ["Manager"]
@@ -54,8 +54,8 @@ class Manager:
folder: str,
name_format: str,
chunk: int,
sec_ch_ua: str,
sec_ch_ua_platform: str,
# sec_ch_ua: str,
# sec_ch_ua_platform: str,
user_agent: str,
cookie: str,
proxy: str | dict,
@@ -78,12 +78,12 @@ class Manager:
self.folder = self.__check_folder(folder)
self.message = transition
self.blank_headers = HEADERS | {
"User-Agent": user_agent or USERAGENT,
"Sec-Ch-Ua": sec_ch_ua or SEC_CH_UA,
"Sec-Ch-Ua-Platform": sec_ch_ua_platform or SEC_CH_UA_PLATFORM,
'user-agent': user_agent or USERAGENT,
# 'sec-ch-ua': sec_ch_ua or SEC_CH_UA,
# 'sec-ch-ua-platform': sec_ch_ua_platform or SEC_CH_UA_PLATFORM,
}
self.headers = self.blank_headers | {
"Cookie": cookie,
'cookie': cookie,
}
self.retry = retry
self.chunk = chunk
@@ -97,7 +97,8 @@ class Manager:
self.print_proxy_tip(_print, )
self.request_client = AsyncClient(
headers=self.headers | {
"Referer": "https://www.xiaohongshu.com/explore", },
'referer': 'https://www.xiaohongshu.com/',
},
timeout=timeout,
verify=False,
follow_redirects=True,

View File

@@ -4,8 +4,8 @@ from pathlib import Path
from platform import system
from .static import ROOT
from .static import SEC_CH_UA
from .static import SEC_CH_UA_PLATFORM
# from .static import SEC_CH_UA
# from .static import SEC_CH_UA_PLATFORM
from .static import USERAGENT
__all__ = ['Settings']
@@ -16,8 +16,8 @@ class Settings:
"work_path": "",
"folder_name": "Download",
"name_format": "发布时间 作者昵称 作品标题",
"sec_ch_ua": SEC_CH_UA,
"sec_ch_ua_platform": SEC_CH_UA_PLATFORM,
# "sec_ch_ua": SEC_CH_UA,
# "sec_ch_ua_platform": SEC_CH_UA_PLATFORM,
"user_agent": USERAGENT,
"cookie": "",
"proxy": None,

View File

@@ -25,7 +25,7 @@ __all__ = [
VERSION_MAJOR = 2
VERSION_MINOR = 2
VERSION_BETA = True
VERSION_BETA = False
ROOT = Path(__file__).resolve().parent.parent.parent
PROJECT = f"XHS-Downloader V{VERSION_MAJOR}.{
VERSION_MINOR}{" Beta" if VERSION_BETA else ""}"
@@ -36,29 +36,27 @@ RELEASES = "https://github.com/JoeanAmier/XHS-Downloader/releases/latest"
USERSCRIPT = "https://raw.githubusercontent.com/JoeanAmier/XHS-Downloader/master/static/XHS-Downloader.js"
USERAGENT = (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 "
"Safari/537.36")
SEC_CH_UA = "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\""
SEC_CH_UA_PLATFORM = "\"Windows\""
USERAGENT = ('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 '
'Safari/537.36 Edg/128.0.0.0')
SEC_CH_UA = '"Chromium";v="128", "Not;A=Brand";v="24", "Microsoft Edge";v="128"'
SEC_CH_UA_PLATFORM = '"Windows"'
HEADERS = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,"
"application/signed-exchange;v=b3;q=0.7",
"Accept-Encoding": "gzip, deflate, br, zstd",
"Accept-Language": "zh-SG,zh-CN;q=0.9,zh;q=0.8",
"Cookie": "",
"Dnt": "1",
# "Priority": "u=0, i",
"Sec-Ch-Ua": SEC_CH_UA,
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": SEC_CH_UA_PLATFORM,
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": USERAGENT,
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
# 'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
# 'dnt': '1',
'pragma': 'no-cache',
# 'priority': 'u=0, i',
# 'sec-ch-ua': SEC_CH_UA,
# 'sec-ch-ua-mobile': '?0',
# 'sec-ch-ua-platform': SEC_CH_UA_PLATFORM,
# 'sec-fetch-dest': 'document',
# 'sec-fetch-mode': 'navigate',
# 'sec-fetch-site': 'none',
# 'sec-fetch-user': '?1',
# 'upgrade-insecure-requests': '1',
'user-agent': USERAGENT,
}
MASTER = "b #fff200"

View File

@@ -6,8 +6,6 @@ from rich.text import Text
from .static import INFO
__all__ = ["retry", "logging", ]
def retry(function):
async def inner(self, *args, **kwargs):
@@ -30,7 +28,7 @@ def logging(log, text, style=INFO):
async def sleep_time(
min_time: int = 1,
max_time: int = 3,
min_time: int | float = 1,
max_time: int | float = 3,
):
await sleep(uniform(min_time, max_time))