Skip to content

Commit 7f7ae20

Browse files
committed
Update to v2.4. Fix download function
1 parent 8b32711 commit 7f7ae20

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/tchMaterial-parser.pyw

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
2-
# 国家中小学智慧教育平台 资源下载工具 v2.3
2+
# 国家中小学智慧教育平台 资源下载工具 v2.4
33
# https://github.com/happycola233/tchMaterial-parser
4-
# 最近更新于:2024-10-03
4+
# 最近更新于:2025-02-22
55
# 作者:肥宅水水呀(https://space.bilibili.com/324042405)以及其他为本工具作出贡献的用户
66

77
# 导入相关库
@@ -78,7 +78,8 @@ def parse(url: str) -> tuple[str, str, str] | tuple[None, None, None]: # 解析
7878
data = response.json()
7979
for item in list(data["ti_items"]):
8080
if item["lc_ti_format"] == "pdf": # 找到存有 PDF 链接列表的项
81-
resource_url: str = item["ti_storages"][0].replace("-private", "") # 获取并构建 PDF 的 URL
81+
# resource_url: str = item["ti_storages"][0].replace("-private", "") # 获取并构建 PDF 的 URL
82+
resource_url: str = item["ti_storages"][0] # 获取并构建 PDF 的 URL
8283
break
8384

8485
if not resource_url:
@@ -89,7 +90,8 @@ def parse(url: str) -> tuple[str, str, str] | tuple[None, None, None]: # 解析
8990
if resource["resource_type_code"] == "assets_document":
9091
for item in list(resource["ti_items"]):
9192
if item["lc_ti_format"] == "pdf":
92-
resource_url: str = item["ti_storages"][0].replace("-private", "")
93+
# resource_url: str = item["ti_storages"][0].replace("-private", "")
94+
resource_url: str = item["ti_storages"][0]
9395
break
9496
if not resource_url:
9597
return None, None, None
@@ -102,7 +104,7 @@ def parse(url: str) -> tuple[str, str, str] | tuple[None, None, None]: # 解析
102104

103105
def download_file(url: str, save_path: str) -> None: # 下载文件
104106
global download_states
105-
response = session.get(url, stream=True)
107+
response = session.get(url, headers=headers, stream=True)
106108
total_size = int(response.headers.get("Content-Length", 0))
107109
current_state = { "download_url": url, "save_path": save_path, "downloaded_size": 0, "total_size": total_size, "finished": False, "failed": False }
108110
download_states.append(current_state)
@@ -307,6 +309,11 @@ def thread_it(func, args: tuple = ()): # args 为元组,且默认值是空元
307309

308310
# 初始化请求
309311
session = requests.Session()
312+
# 设置请求头部,包含认证信息
313+
headers = {
314+
"X-ND-AUTH": 'MAC id="0",'
315+
'nonce="0",mac="0"'
316+
}
310317
session.proxies = { "http": None, "https": None }
311318

312319
# 获取资源列表

0 commit comments

Comments
 (0)