diff --git a/gen-list-html.py b/gen-list-html.py
deleted file mode 100755
index 31ba3d0..0000000
--- a/gen-list-html.py
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/usr/bin/env python3
-
-import sqlite3
-import os
-
-
-# 获取数据库中所有表的数据
-def fetch_table_data(db: str) -> dict:
- conn = sqlite3.connect(db)
- conn.row_factory = sqlite3.Row # 使得查询结果可以通过列名访问
- cursor = conn.cursor()
-
- # 获取数据库中的所有表
- cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
- tables = cursor.fetchall()
-
- # 获取每个表的内容
- table_data = {}
- for table in tables:
- table_name = table["name"]
- cursor.execute(f"SELECT * FROM '{table_name}'")
- table_data[table_name] = cursor.fetchall()
-
- conn.close()
- return table_data
-
-
-# 生成静态 HTML 页面
-def generate_html(table_data, filename):
- html = """
-
-
- '
- html += f"
{table_name}
"
-
- # 表格外层包裹 div,启用水平滚动
- html += '
'
- html += "
"
-
- # 表头
- if rows:
- html += ""
- for column in rows[0].keys():
- html += f"| {column} | "
- html += "
"
-
- # 表格数据
- for row in rows:
- html += ""
- for column in row.keys():
- html += f"| {row[column]} | "
- html += "
"
-
- html += "
"
- html += "
" # 结束 .table-wrapper
- html += "
"
-
- # 添加 JavaScript 以实现标签切换功能
- html += """
-
-
-
-"""
-
- dir = os.path.dirname(filename)
- if not os.path.exists(dir):
- os.makedirs(dir)
- # 保存为静态 HTML 文件
- with open(filename, "w", encoding="utf-8") as f:
- f.write(html)
-
-
-if __name__ == "__main__":
- db = "data/deb.db"
- filename="deb/list/index.html"
- table_data = fetch_table_data(db)
- generate_html(table_data, filename)
diff --git a/merge-apt-repo.py b/merge-apt-repo.py
index 7f7abfc..5c989e1 100755
--- a/merge-apt-repo.py
+++ b/merge-apt-repo.py
@@ -18,7 +18,7 @@ from apt_pkg import version_compare
apt_pkg.init() # 初始化 apt_pkg
USER_AGENT = "Debian APT-HTTP/1.3 (3.0.3)" # from Debian 13
-arch_List = ["all", "amd64", "arm64", "i386"]
+arch_List = ["amd64", "arm64", "all", "i386"]
lock = {arch: Lock() for arch in arch_List}
packages = {arch: {} for arch in arch_List} # 存放用于生成 Packages 的内容
""" packages format:
@@ -26,6 +26,7 @@ packages = {arch: {} for arch in arch_List} # 存放用于生成 Packages 的内
"arch": {
"package1": {
"version": "1.0.0",
+ "url": "https://example.com/package1.deb",
"package": ""
}
}
@@ -99,6 +100,7 @@ def split_latest(packages_file_content: bytes):
find_name = re.compile(rb"Package:[ ]*(.+)")
find_arch = re.compile(rb"Architecture:[ ]*(.+)")
+ find_url = re.compile(rb"Filename:[ ]*(.+)")
find_version = re.compile(rb"Version:[ ]*(.+)")
for package in package_list:
@@ -106,6 +108,7 @@ def split_latest(packages_file_content: bytes):
try:
name = find_name.search(package).group(1).decode()
arch = find_arch.search(package).group(1).decode()
+ url = find_url.search(package).group(1).decode()
tmp_version = find_version.search(package).group(1).decode()
with lock[arch]:
# 使用 apt_pkg 进行版本比较
@@ -113,7 +116,7 @@ def split_latest(packages_file_content: bytes):
name not in packages[arch]
or version_compare(tmp_version, packages[arch][name]["version"]) > 0
):
- packages[arch][name] = {"package": package, "version": tmp_version}
+ packages[arch][name] = {"version": tmp_version, "url": url, "package": package}
except Exception as e:
logging.error(f"Error processing package {name}: {e}")
return
@@ -170,3 +173,9 @@ if __name__ == "__main__":
f.write(i["package"])
for i in packages["all"].values():
f.write(i["package"])
+
+ # 输出 packages.json,用于展示仓库内容
+ for arch in arch_List:
+ for i in packages[arch].values():
+ i.pop("package")
+ json.dump(packages, open("deb/list/packages.json", "w"), indent=4)
diff --git a/run.sh b/run.sh
index 42e84ab..672ce3d 100755
--- a/run.sh
+++ b/run.sh
@@ -4,9 +4,6 @@
./get-github-releases.py
find get -type f -name "*.sh" -exec sh {} \;
-# generate the html
-./gen-list-html.py
-
## merge the Packages file from local package
cat $(find packages -name "*.package") > deb/tmpPackages