Compare commits

...

2 Commits

Author SHA1 Message Date
github-actions[bot]
4a3339de15 update 2025-01-18 12:13:22 2025-01-18 12:13:22 +08:00
Ing
f53d019c04 更新 getmodels 函数使用的链接 2025-01-18 11:52:32 +08:00
7 changed files with 2209 additions and 37 deletions

Binary file not shown.

View File

@ -5,7 +5,14 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"DS1019+",
"DS620slim",
"DS218+",
"DS418play",
"DS718+",
"DS918+"
]
},
"broadwell": {
"productvers": {
@ -13,7 +20,17 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"FS3400",
"RS3618xs",
"DS3617xs",
"DS3617xsII",
"FS2017",
"RS18017xs+",
"RS3617RPxs",
"RS3617xs+",
"RS4017xs+"
]
},
"broadwellnk": {
"productvers": {
@ -21,7 +38,19 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"DS1621xs+",
"DS3622xs+",
"FS3600",
"RS1619xs+",
"RS3621RPxs",
"RS3621xs+",
"RS4021xs+",
"SA3400",
"SA3600",
"DS3018xs",
"FS1018"
]
},
"broadwellnkv2": {
"productvers": {
@ -29,7 +58,11 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"FS3410",
"SA3410",
"SA3610"
]
},
"broadwellntbap": {
"productvers": {
@ -37,7 +70,10 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"SA3200D",
"SA3400D"
]
},
"denverton": {
"productvers": {
@ -45,7 +81,19 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"DS1819+",
"DS2419+",
"DS2419+II",
"DVA3219",
"DVA3221",
"RS820+",
"RS820RP+",
"DS1618+",
"RS2418+",
"RS2418RP+",
"RS2818RP+"
]
},
"geminilake": {
"productvers": {
@ -53,7 +101,16 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"DS1520+",
"DS220+",
"DS224+",
"DS420+",
"DS423+",
"DS720+",
"DS920+",
"DVA1622"
]
},
"purley": {
"productvers": {
@ -61,7 +118,10 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"FS6400",
"HD6500"
]
},
"r1000": {
"productvers": {
@ -69,7 +129,12 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"DS1522+",
"DS723+",
"DS923+",
"RS422+"
]
},
"v1000": {
"productvers": {
@ -77,13 +142,30 @@
"7.1": "4.4.180",
"7.2": "4.4.302"
},
"models": []
"models": [
"DS1621+",
"DS1821+",
"DS1823xs+",
"DS2422+",
"FS2500",
"RS1221+",
"RS1221RP+",
"RS2421+",
"RS2421RP+",
"RS2423+",
"RS2423RP+",
"RS2821RP+",
"RS822+",
"RS822RP+"
]
},
"epyc7002": {
"productvers": {
"7.1": "7.1-5.10.55",
"7.2": "7.2-5.10.55"
},
"models": []
"models": [
"SA6400"
]
}
}

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -6,7 +6,7 @@
# See /LICENSE for more information.
#
import os, sys, glob, json, yaml, click, shutil, tarfile, kmodule, requests, urllib3
import os, re, sys, glob, json, yaml, click, shutil, tarfile, kmodule, requests, urllib3
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry # type: ignore
from openpyxl import Workbook
@ -44,24 +44,28 @@ def getmodels(workpath, jsonpath, xlsxpath):
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
try:
req = session.get("https://autoupdate.synology.com/os/v2", timeout=10, verify=False)
url = "http://update7.synology.com/autoupdate/genRSS.php?include_beta=1"
#url = "https://update7.synology.com/autoupdate/genRSS.php?include_beta=1"
req = session.get(url, timeout=10, verify=False)
req.encoding = "utf-8"
data = json.loads(req.text)
p = re.compile(r"<mUnique>(.*?)</mUnique>.*?<mLink>(.*?)</mLink>", re.MULTILINE | re.DOTALL)
data = p.findall(req.text)
except Exception as e:
click.echo(f"Error: {e}")
return
for item in data["channel"]["item"]:
if not item["title"].startswith("DSM"):
for item in data:
if not "DSM" in item[1]:
continue
for model in item["model"]:
arch = model["mUnique"].split("_")[1].lower()
name = model["mLink"].split("/")[-1].split("_")[1].replace("%2B", "+")
if arch not in models:
continue
if name in (A for B in models for A in models[B]["models"]):
continue
models[arch]["models"].append(name)
arch = item[0].split("_")[1]
name = item[1].split("/")[-1].split("_")[1].replace("%2B", "+")
if arch not in models:
continue
if name in (A for B in models for A in models[B]["models"]):
continue
models[arch]["models"].append(name)
if jsonpath:
with open(jsonpath, "w") as f:
@ -99,25 +103,28 @@ def getpats(workpath, jsonpath, xlsxpath):
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
try:
req = session.get("https://autoupdate.synology.com/os/v2", timeout=10, verify=False)
url = "http://update7.synology.com/autoupdate/genRSS.php?include_beta=1"
#url = "https://update7.synology.com/autoupdate/genRSS.php?include_beta=1"
req = session.get(url, timeout=10, verify=False)
req.encoding = "utf-8"
data = json.loads(req.text)
p = re.compile(r"<mUnique>(.*?)</mUnique>.*?<mLink>(.*?)</mLink>", re.MULTILINE | re.DOTALL)
data = p.findall(req.text)
except Exception as e:
click.echo(f"Error: {e}")
return
models = []
for item in data["channel"]["item"]:
if not item["title"].startswith("DSM"):
for item in data:
if not "DSM" in item[1]:
continue
for model in item["model"]:
arch = model["mUnique"].split("_")[1].lower()
name = model["mLink"].split("/")[-1].split("_")[1].replace("%2B", "+")
if arch not in platforms:
continue
if name in models:
continue
models.append(name)
arch = item[0].split("_")[1]
name = item[1].split("/")[-1].split("_")[1].replace("%2B", "+")
if arch not in platforms:
continue
if name in models:
continue
models.append(name)
pats = {}
for M in models: