diff --git a/src/extensions/broken_link_fix.py b/src/extensions/broken_link_fix.py index 46ed7fad2..02fcb6755 100644 --- a/src/extensions/broken_link_fix.py +++ b/src/extensions/broken_link_fix.py @@ -33,6 +33,9 @@ class _Status(StrEnum): BROKEN = "broken" +IGNORED_HTTP_CODES: frozenset[int] = frozenset({401, 402, 403, 407, 418, 429, 451, 511}) + + def process_result(self: CheckExternalLinksBuilder, result: CheckResult) -> None: """hook a custom process_result function. @@ -45,10 +48,8 @@ def process_result(self: CheckExternalLinksBuilder, result: CheckResult) -> None """ match result.status: case _Status.BROKEN: - """ Ignore client errors from sourceforge.io """ - if re.match( - r"^https://[^/]+\.sourceforge\.io(/|$)", result.uri - ) and "403 Client Error" in str(result.message): + # Ignore selected HTTP errors that can be caused by access restrictions or rate limits. + if result.code in IGNORED_HTTP_CODES: logger.info(darkgray("-ignored- ") + result.uri) self.write_entry( "ignored",