chg: Bump deps, update ua-parser

pull/1008/head
Raphaël Vinot 2024-12-03 00:57:31 +01:00
parent deadc95e75
commit 5e6587730b
3 changed files with 571 additions and 463 deletions

View File

@ -3,6 +3,7 @@
from __future__ import annotations
import configparser
import dataclasses
import gzip
import hashlib
import json
@ -30,7 +31,7 @@ from lacuscore import CaptureSettings as LacuscoreCaptureSettings
from playwrightcapture import get_devices
from publicsuffixlist import PublicSuffixList # type: ignore[import-untyped]
from pytaxonomies import Taxonomies # type: ignore[attr-defined]
from ua_parser import user_agent_parser # type: ignore[import-untyped]
import ua_parser
from werkzeug.user_agent import UserAgent
from werkzeug.utils import cached_property
@ -374,30 +375,30 @@ class ParsedUserAgent(UserAgent):
# from https://python.tutorialink.com/how-do-i-get-the-user-agent-with-flask/
@cached_property
def _details(self) -> dict[str, Any]:
return user_agent_parser.Parse(self.string)
def _details(self) -> ua_parser.DefaultedResult:
return ua_parser.parse(self.string).with_defaults()
@property
def platform(self) -> str | None: # type: ignore[override]
return self._details['os'].get('family')
return self._details.os.family
@property
def platform_version(self) -> str | None:
return self._aggregate_version(self._details['os'])
return self._aggregate_version(self._details.os)
@property
def browser(self) -> str | None: # type: ignore[override]
return self._details['user_agent'].get('family')
return self._details.user_agent.family
@property
def version(self) -> str | None: # type: ignore[override]
return self._aggregate_version(self._details['user_agent'])
return self._aggregate_version(self._details.user_agent)
def _aggregate_version(self, details: dict[str, str]) -> str | None:
def _aggregate_version(self, details: ua_parser.OS | ua_parser.UserAgent) -> str | None:
return '.'.join(
part
for key in ('major', 'minor', 'patch', 'patch_minor')
if (part := details.get(key)) is not None
if (part := dataclasses.asdict(details).get(key)) is not None
)
def __str__(self) -> str:

1005
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -47,7 +47,7 @@ redis = {version = "^5.2.0", extras = ["hiredis"]}
beautifulsoup4 = {version = "^4.12.3", extras = ["lxml", "charset_normalizer"]}
bootstrap-flask = "^2.4.1"
defang = "^0.5.3"
vt-py = "^0.18.0"
vt-py = "^0.19.0"
pyeupi = "^1.3.0"
pysanejs = "^2.0.3"
pylookyloo = "^1.26.1"
@ -61,17 +61,17 @@ pyphishtanklookup = "^1.4.1"
Flask-Cors = "^5.0.0"
pyhashlookup = "^1.2.5"
lief = "^0.15"
ua-parser = "^0.18.0"
ua-parser = {extras = ["regex"], version = "^1.0.0"}
Flask-Login = "^0.6.3"
har2tree = "^1.27.3"
passivetotal = "^2.5.9"
werkzeug = "^3.1.3"
filetype = "^1.2.0"
pypandora = "^1.9.1"
lacuscore = "^1.12.5"
lacuscore = "^1.12.6"
pylacus = "^1.12.0"
pyipasnhistory = "^2.1.3"
publicsuffixlist = "^1.0.2.20241124"
publicsuffixlist = "^1.0.2.20241130"
pyfaup = "^1.2"
chardet = "^5.2.0"
pysecuritytxt = "^1.3.2"
@ -87,7 +87,7 @@ puremagic = "^1.28"
psutil = "^6.1.0"
flask-talisman = "^1.1.0"
aiohttp = {extras = ["speedups"], version = "^3.11.7"}
aiohttp = {extras = ["speedups"], version = "^3.11.9"}
[tool.poetry.group.dev.dependencies]
mypy = "^1.13.0"