first commit

This commit is contained in:
Hong_SZ
2025-10-03 17:36:19 +08:00
commit ae703e80fa
4 changed files with 421 additions and 0 deletions

48
download_modpacket.py Normal file
View File

@@ -0,0 +1,48 @@
import os
import re
import requests
from concurrent.futures import ThreadPoolExecutor, as_completed
from tqdm import tqdm
# 创建packet文件夹
os.makedirs("packet", exist_ok=True)
# 读取link.txt并提取所有https链接
with open("link.txt", "r", encoding="utf-8") as f:
content = f.read()
# 匹配所有https链接
links = re.findall(r"https://[^\s,]+", content)
# 下载函数
def download_file(url):
local_filename = os.path.join("packet", url.split("/")[-1].split("?")[0])
try:
with requests.get(url, stream=True) as r:
r.raise_for_status()
total_size = int(r.headers.get("content-length", 0))
with open(local_filename, "wb") as f, tqdm(
desc=os.path.basename(local_filename),
total=total_size,
unit="B",
unit_scale=True,
unit_divisor=1024,
leave=False
) as bar:
for chunk in r.iter_content(chunk_size=8192):
if chunk:
f.write(chunk)
bar.update(len(chunk))
return local_filename
except Exception as e:
print(f"下载失败: {url} -> {e}")
return None
# 多线程下载
with ThreadPoolExecutor(max_workers=8) as executor:
future_to_url = {executor.submit(download_file, url): url for url in links}
for future in as_completed(future_to_url):
url = future_to_url[future]
result = future.result()
if result:
print(f"已下载: {result}")