[firefox] Handle 404.

The 115.0.3 release seems to have been halted
https://wiki.mozilla.org/Firefox/Channels/Meetings/2023-07-18#Schedule_Update
so the page is "semi-published". It is linked on the release list page
https://www.mozilla.org/en-US/firefox/releases/
but the page itself gives a 404.

So we ignore any such unpublished releases for now
This commit is contained in:
Nemo
2023-07-19 15:06:23 +05:30
committed by Nemo
parent 37916b69c4
commit 0b1bd8f448

View File

@@ -1,6 +1,7 @@
import concurrent.futures import concurrent.futures
import re import re
import requests import requests
from urllib.error import HTTPError
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from common import endoflife from common import endoflife
from datetime import datetime from datetime import datetime
@@ -24,6 +25,9 @@ class InvalidPageVariantError(Exception):
"""Raised when an invalid variant is passed to get_version_and_date""" """Raised when an invalid variant is passed to get_version_and_date"""
pass pass
class UnpublishedReleaseError(Exception):
"""Raised when a page is not yet published, but linked"""
pass
def format_date(unformatted_date: str) -> str: def format_date(unformatted_date: str) -> str:
""" Format date from July 11, 2002 to 2002-07-11 """ """ Format date from July 11, 2002 to 2002-07-11 """
@@ -107,7 +111,13 @@ def get_version_and_date(release_page: str, release_version: str) -> Tuple[str,
get_version_and_date_variant_2, get_version_and_date_variant_2,
get_version_and_date_variant_3 get_version_and_date_variant_3
] ]
try:
soup = make_bs_request(release_page) soup = make_bs_request(release_page)
except(HTTPError) as e:
if(e.code == 404):
raise UnpublishedReleaseError(f"The release page is not yet published, got a 404: {release_page}")
else:
raise e
for function in functions: for function in functions:
try: try:
@@ -142,7 +152,7 @@ def fetch_releases():
(version, date) = future.result() (version, date) = future.result()
print(f"{version}: {date}") print(f"{version}: {date}")
releases[version] = date releases[version] = date
except UnsupportedPageError: except(UnsupportedPageError, UnpublishedReleaseError):
print(f"Unsupported release page: {future_to_url[future]}") print(f"Unsupported release page: {future_to_url[future]}")
return releases return releases