diff --git a/src/visualstudio.py b/src/visualstudio.py index c2eb84db..6a2683a9 100644 --- a/src/visualstudio.py +++ b/src/visualstudio.py @@ -1,11 +1,8 @@ -import re from bs4 import BeautifulSoup from common import http from common import dates from common import endoflife -PRODUCT = "visualstudio" - # There is no build history for versions 2015 and below. # This is not a big deal because there was no version for those release in a very long time. URLS = [ @@ -14,11 +11,11 @@ URLS = [ "https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-history", ] -print(f"::group::{PRODUCT}") -versions = {} - +product = endoflife.Product("visualstudio") +print(f"::group::{product.name}") for response in http.fetch_urls(URLS): soup = BeautifulSoup(response.text, features="html5lib") + for table in soup.find_all("table"): headers = [th.get_text().strip().lower() for th in table.find_all("th")] if "version" not in headers or "release date" not in headers: @@ -33,12 +30,10 @@ for response in http.fetch_urls(URLS): version = cells[version_index].get_text().strip() date = cells[date_index].get_text().strip() - date = dates.parse_date(date).strftime("%Y-%m-%d") + date = dates.parse_date(date) - if date and version and re.match(endoflife.DEFAULT_VERSION_REGEX, version): - versions[version] = date - print(f"{version}: {date}") + if date and version and endoflife.DEFAULT_VERSION_PATTERN.match(version): + product.declare_version(version, date) - -endoflife.write_releases(PRODUCT, versions) +product.write() print("::endgroup::")