download using stream

This commit is contained in:
wcbing 2024-08-24 19:41:52 +08:00
parent 84bab16b10
commit 8e33fb6f7d

View File

@ -3,6 +3,15 @@ import os
import sqlite3 import sqlite3
def download(url, file_type):
file_path = os.path.join(file_type, str(url.split("/")[-1]))
with requests.get(url, stream=True) as res:
with open(file_path, "wb") as fw:
for chunk in res.iter_content(chunk_size=8192):
if chunk:
fw.write(chunk)
def check_download(name, version, url, arch, file_type): def check_download(name, version, url, arch, file_type):
conn = sqlite3.connect(file_type + ".db") conn = sqlite3.connect(file_type + ".db")
cur = conn.cursor() cur = conn.cursor()
@ -16,10 +25,7 @@ def check_download(name, version, url, arch, file_type):
print(name + ": " + db_version) print(name + ": " + db_version)
if db_version != version: if db_version != version:
print("└ Update: " + db_version + " -> " + version) print("└ Update: " + db_version + " -> " + version)
# download download(url, file_type)
file_path = os.path.join(file_type, str(url.split("/")[-1]))
with open(file_path, "wb") as fw:
fw.write(requests.get(url).content)
# wirte to db # wirte to db
cur.execute( cur.execute(
"UPDATE " + arch + " SET version = ?, url = ? WHERE name = ?", "UPDATE " + arch + " SET version = ?, url = ? WHERE name = ?",
@ -31,10 +37,7 @@ def check_download(name, version, url, arch, file_type):
os.remove(old_file_path) os.remove(old_file_path)
else: else:
print(name + "\n└ Add: " + version) print(name + "\n└ Add: " + version)
# download download(url, file_type)
file_path = os.path.join(file_type, str(url.split("/")[-1]))
with open(file_path, "wb") as fw:
fw.write(requests.get(url).content)
# wirte to db # wirte to db
cur.execute( cur.execute(
"INSERT INTO " + arch + "(name, version, url) VALUES (?, ?, ?)", "INSERT INTO " + arch + "(name, version, url) VALUES (?, ?, ?)",