codekingpro/portable-devtools
114k
1from __future__ import annotations2 3import sys4import typing5from typing import Iterator6 7from mitmproxy import contentviews8from mitmproxy.contentviews import SyntaxHighlight9from mitmproxy.contentviews._api import Contentview10from mitmproxy.contentviews._api import Metadata11from mitmproxy.utils.strutils import always_str12 13if sys.version_info < (3, 13): # pragma: no cover14 from typing_extensions import deprecated15else:16 from warnings import deprecated17 18if typing.TYPE_CHECKING:19 from mitmproxy.contentviews.base import TViewLine20 from mitmproxy.contentviews.base import View21 22 23class LegacyContentview(Contentview):24 @property25 def name(self) -> str:26 return self.contentview.name27 28 @property29 def syntax_highlight(self) -> SyntaxHighlight:30 return getattr(self.contentview, "syntax_highlight", "none")31 32 def render_priority(33 self,34 data: bytes,35 metadata: Metadata,36 ) -> float:37 return (38 self.contentview.render_priority(39 data=data,40 content_type=metadata.content_type,41 flow=metadata.flow,42 http_message=metadata.http_message,43 )44 or 0.045 )46 47 def prettify(self, data: bytes, metadata: Metadata) -> str:48 lines: Iterator[TViewLine]49 desc_, lines = self.contentview(50 data,51 content_type=metadata.content_type,52 flow=metadata.flow,53 http_message=metadata.http_message,54 )55 return "\n".join(56 "".join(always_str(text, "utf8", "backslashescape") for tag, text in line)57 for line in lines58 )59 60 def __init__(self, contentview: View):61 self.contentview = contentview62 63 64@deprecated("Use `mitmproxy.contentviews.registry` instead.")65def get(name: str) -> Contentview | None:66 try:67 return contentviews.registry[name.lower()]68 except KeyError:69 return None70 71 72@deprecated("Use `mitmproxy.contentviews.Contentview` instead.")73def remove(view: View):74 pass75 