Make releasedata.Product usable in 'with' expression (#294)
This way the writing of the JSON file is handled automatically if the update does not fail. It pave the way to further global improvements, such as a better error handling.
This commit is contained in:
28
src/rds.py
28
src/rds.py
@@ -16,20 +16,18 @@ PRODUCTS = {
|
||||
VERSION_REGEX = re.compile(r"(?P<version>\d+(?:\.\d+)*)", flags=re.IGNORECASE) # https://regex101.com/r/BY1vwV/1
|
||||
|
||||
for product_name, url in PRODUCTS.items():
|
||||
product = releasedata.Product(product_name)
|
||||
response = http.fetch_url(url)
|
||||
soup = BeautifulSoup(response.text, features="html5lib")
|
||||
with releasedata.ProductData(product_name) as product_data:
|
||||
response = http.fetch_url(url)
|
||||
soup = BeautifulSoup(response.text, features="html5lib")
|
||||
|
||||
for table in soup.find_all("table"):
|
||||
for row in table.find_all("tr"):
|
||||
columns = row.find_all("td")
|
||||
if len(columns) <= 3:
|
||||
continue
|
||||
for table in soup.find_all("table"):
|
||||
for row in table.find_all("tr"):
|
||||
columns = row.find_all("td")
|
||||
if len(columns) <= 3:
|
||||
continue
|
||||
|
||||
version_match = VERSION_REGEX.search(columns[0].text.strip())
|
||||
if version_match:
|
||||
version = version_match.group("version")
|
||||
date = dates.parse_date(columns[2].text)
|
||||
product.declare_version(version, date)
|
||||
|
||||
product.write()
|
||||
version_match = VERSION_REGEX.search(columns[0].text.strip())
|
||||
if version_match:
|
||||
version = version_match.group("version")
|
||||
date = dates.parse_date(columns[2].text)
|
||||
product_data.declare_version(version, date)
|
||||
|
||||
Reference in New Issue
Block a user