[apple] Add 2020-2021 and 2022-2023 security update pages (#467)

This commit is contained in:
Marc Wrobel
2025-07-13 12:47:33 +02:00
parent 49325e4c36
commit fa1eab8d21

View File

@@ -8,7 +8,9 @@ from common.releasedata import ProductData, config_from_argv
"""Fetches and parses version and release date information from Apple's support website."""
URLS = [
"https://support.apple.com/en-us/HT201222", # latest
"https://support.apple.com/kb/HT201222", # latest
"https://support.apple.com/en-us/121012", # 2022-2023
"https://support.apple.com/en-us/120989", # 2020-2021
"https://support.apple.com/kb/HT213078", # 2018-2019
"https://support.apple.com/kb/HT213077", # 2016-2017
"https://support.apple.com/kb/HT209441", # 2015
@@ -25,17 +27,21 @@ DATE_PATTERN = re.compile(r"\b\d+\s[A-Za-z]+\s\d+\b")
config = config_from_argv()
with ProductData(config.product) as product_data:
# URLs are cached to avoid rate limiting by support.apple.com.
soups = [BeautifulSoup(response.text, features="html5lib") for response in http.fetch_urls(URLS)]
responses = http.fetch_urls(URLS)
for soup in soups:
versions_table = soup.find(id="tableWraper")
versions_table = versions_table if versions_table else soup.find('table', class_="gb-table")
for response in responses:
soup = BeautifulSoup(response.text, "html5lib")
versions_table = soup.select_one("#tableWraper")
versions_table = versions_table if versions_table else soup.select_one("table.gb-table")
for row in versions_table.findAll("tr")[1:]:
cells = row.findAll("td")
version_text = cells[0].get_text().strip()
date_text = cells[2].get_text().strip()
if not versions_table:
message = f"no versions table found in {response.url}"
raise ValueError(message)
for row in versions_table.find_all("tr")[1:]:
cells = row.find_all("td")
version_text = cells[0].get_text(separator=" ").strip()
date_text = cells[2].get_text(separator=" ").strip()
date_match = DATE_PATTERN.search(date_text)
if not date_match: