diff --git a/modoboa/amavis/utils.py b/modoboa/amavis/utils.py index d829eb02d..c3a210418 100644 --- a/modoboa/amavis/utils.py +++ b/modoboa/amavis/utils.py @@ -37,7 +37,7 @@ def smart_str(value, *args, **kwargs): return django_smart_str(value, *args, **kwargs) -def fix_utf8_encoding(value): +def fix_utf8_encoding(value: str) -> str: """Fix utf-8 strings that contain utf-8 escaped characters. msgs.from_addr and msgs.subject potentialy contain badly escaped utf-8 @@ -58,12 +58,13 @@ def fix_utf8_encoding(value): value = bytes_value.decode("utf-8") except UnicodeDecodeError: encoding = chardet.detect(bytes_value) - try: - value = bytes_value.decode(encoding["encoding"], "replace") - except (TypeError, UnicodeDecodeError): - # ??? use the original value, we've done our best to try and - # convert it to a clean utf-8 string. - pass + if encoding["confidence"] > 50.0: + try: + value = bytes_value.decode(encoding["encoding"], "replace") + except (TypeError, UnicodeDecodeError): + # ??? use the original value, we've done our best to try and + # convert it to a clean utf-8 string. + pass return value diff --git a/modoboa/maillog/graphics.py b/modoboa/maillog/graphics.py index 4596a692b..a4b537778 100644 --- a/modoboa/maillog/graphics.py +++ b/modoboa/maillog/graphics.py @@ -41,16 +41,16 @@ class Curve: return [ f"DEF:{self.dsname}={rrdfile}:{self.dsname}:{self.cfunc}", f"CDEF:{self.dsname}pm={self.dsname},UN,0,{self.dsname},IF,60,*", - f'XPORT:{self.dsname}pm:"{self.legend}"', + f"XPORT:{self.dsname}pm:'{self.legend}'", ] class Graphic: """Graphic.""" - def __init__(self): + def __init__(self) -> None: """Constructor.""" - self._curves = [] + self._curves: list[Curve] = [] try: order = self.order except AttributeError: @@ -131,9 +131,9 @@ class Graphic: class GraphicSet: """A set of graphics.""" - domain_selector = False - title = None - _graphics = [] + domain_selector: bool = False + title: str | None = None + _graphics: list[Graphic] = [] def __init__(self, instances=None): if instances is None: