QModem/scripts/update_support_list.py

61 lines
2.3 KiB
Python

import json
import sys
def generate_markdown(result):
# 生成 Markdown 格式
markdown_output = []
for vendor, models in result.items():
markdown_output.append(f"# {vendor}")
markdown_output.append("Model | Platform | USB | PCIe ")
markdown_output.append("--- | --- | --- | ---")
for model, support in models.items():
markdown_output.append(f"{model} | {support['platform']} |{support['usb']} | {support['pcie']}")
markdown_output.append("") # 空行分隔
return markdown_output
def generate_github_release_notes(result):
# 生成 GitHub 发布说明格式
release_notes = []
for vendor, models in result.items():
release_notes.append(f"## {vendor}")
for model, support in models.items():
release_notes.append(f"- {model}: USB - {support['usb']}, PCIe - {support['pcie']}")
release_notes.append("")
return release_notes
if __name__ == "__main__":
prefix = sys.argv[1] if len(sys.argv) > 1 else 'support_list'
file_name = sys.argv[2] if len(sys.argv) > 2 else 'luci/luci-app-qmodem/root/usr/share/qmodem/modem_support.json'
# 加载 JSON 数据
with open(file_name, 'r') as file:
data = json.load(file)
# 初始化结果字典
result = {}
# 遍历 USB 和 PCIe 数据
for interface_type in ['usb', 'pcie']:
for model, details in data['modem_support'][interface_type].items():
vendor = details.get('manufacturer', 'unknown').lower()
platform = details.get('platform', 'unknown').lower()
modes = ','.join(details.get('modes', []))
support = f"{interface_type}({modes})"
if vendor not in result:
result[vendor] = {}
if model not in result[vendor]:
result[vendor][model] = {'usb': '', 'pcie': ''}
result[vendor][model][interface_type] = support
result[vendor][model]['platform'] = platform
markdown_output = generate_markdown(result)
release_notes = generate_github_release_notes(result)
with open(f"{prefix}.md", 'w') as f:
f.write("\n".join(markdown_output))
with open(f"{prefix}_release_notes.md", 'w') as f:
f.write("\n".join(release_notes))