aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/http_messages.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-10-21 21:42:56 +0200
committerWojtek Kosior <koszko@koszko.org>2022-10-21 21:42:56 +0200
commitfe43bd552aaacd649b0e00afada01d07ad8dae9a (patch)
tree6244f66250706ec0d4a7dae23e270aefc97b02dd /src/hydrilla/proxy/http_messages.py
parentd4895218cf8a3a16b74f42c530d78106062cf95b (diff)
downloadhaketilo-hydrilla-fe43bd552aaacd649b0e00afada01d07ad8dae9a.tar.gz
haketilo-hydrilla-fe43bd552aaacd649b0e00afada01d07ad8dae9a.zip
[proxy] facilitate injecting non-payload script to all pages
Diffstat (limited to 'src/hydrilla/proxy/http_messages.py')
-rw-r--r--src/hydrilla/proxy/http_messages.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/hydrilla/proxy/http_messages.py b/src/hydrilla/proxy/http_messages.py
index 9aab510..718022f 100644
--- a/src/hydrilla/proxy/http_messages.py
+++ b/src/hydrilla/proxy/http_messages.py
@@ -235,15 +235,9 @@ class ResponseInfo(HasHeadersMixin, _BaseResponseInfoFields):
AnyResponseInfo = t.Union[BodylessResponseInfo, ResponseInfo]
-@dc.dataclass(frozen=True)
-class FullHTTPInfo:
- request_info: RequestInfo
- response_info: ResponseInfo
-
-
def is_likely_a_page(
- request_info: t.Union[BodylessRequestInfo, RequestInfo],
- response_info: t.Union[BodylessResponseInfo, ResponseInfo]
+ request_info: AnyRequestInfo,
+ response_info: AnyResponseInfo
) -> bool:
fetch_dest = request_info.headers.get('sec-fetch-dest')
if fetch_dest is None:
@@ -261,3 +255,13 @@ def is_likely_a_page(
# account. In the future we might also want to consider the
# Content-Disposition header.
return mime is not None and 'html' in mime
+
+
+@dc.dataclass(frozen=True)
+class FullHTTPInfo:
+ request_info: RequestInfo
+ response_info: ResponseInfo
+
+ @property
+ def is_likely_a_page(self) -> bool:
+ return is_likely_a_page(self.request_info, self.response_info)