worker: simplify response check

Pre-fetching this with .get() calls lets us skip some repetitive
indexing.
This commit is contained in:
Misty De Méo 2025-07-07 14:06:40 -07:00
parent f9cc2ea48e
commit 8f5d0ba528

View file

@ -465,28 +465,22 @@ class BrozzlerWorker:
) )
def _on_response(chrome_msg): def _on_response(chrome_msg):
response = chrome_msg.get("params", {}).get("response", {})
mime_type = response.get("mimeType", "")
if ( if (
"params" in chrome_msg mime_type.startswith("video/")
and "response" in chrome_msg["params"]
and "mimeType" in chrome_msg["params"]["response"]
and chrome_msg["params"]["response"]
.get("mimeType", "")
.startswith("video/")
# skip manifests of DASH segmented video - # skip manifests of DASH segmented video -
# see https://github.com/internetarchive/brozzler/pull/70 # see https://github.com/internetarchive/brozzler/pull/70
and chrome_msg["params"]["response"]["mimeType"] and mime_type != "video/vnd.mpeg.dash.mpd"
!= "video/vnd.mpeg.dash.mpd" and response.get("status") in (200, 206)
and chrome_msg["params"]["response"].get("status") in (200, 206)
): ):
video = { video = {
"blame": "browser", "blame": "browser",
"url": chrome_msg["params"]["response"].get("url"), "url": response.get("url"),
"response_code": chrome_msg["params"]["response"]["status"], "response_code": response["status"],
"content-type": chrome_msg["params"]["response"]["mimeType"], "content-type": mime_type,
} }
response_headers = CaseInsensitiveDict( response_headers = CaseInsensitiveDict(response["headers"])
chrome_msg["params"]["response"]["headers"]
)
if "content-length" in response_headers: if "content-length" in response_headers:
video["content-length"] = int(response_headers["content-length"]) video["content-length"] = int(response_headers["content-length"])
if "content-range" in response_headers: if "content-range" in response_headers: