diff --git a/docker/requirements.txt b/docker/requirements.txt index 055799d..1a83d23 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -1,5 +1,6 @@ feedparser==6.* matrix-nio[e2e] +python-dateutil pyyaml requests youtube_dl diff --git a/hotdog/command/urlinfo_/generic.py b/hotdog/command/urlinfo_/generic.py index 8067ad0..c59fad1 100644 --- a/hotdog/command/urlinfo_/generic.py +++ b/hotdog/command/urlinfo_/generic.py @@ -1,9 +1,11 @@ import json import logging from dataclasses import dataclass -from datetime import datetime, timezone +from datetime import datetime from typing import * +import dateutil.parser + from ...functions import ( ElementParser, capped_text, @@ -149,20 +151,7 @@ def aslist(o: Any): def fromisoformat(s) -> datetime: - try: - return datetime.fromisoformat(s) - except ValueError: - pass - formats = ( - r"%Y-%m-%dT%H:%M:%SZ", # '2003-08-15T13:18:27Z', found at ??? - r"%Y-%m-%dT%H:%M:%S.000Z", # '2020-12-03T18:42:00.000Z', found at wsj - ) - for fmt in formats: - try: - return datetime.strptime(s, fmt).replace(tzinfo=timezone.utc) - except ValueError as e: - pass - raise e + return dateutil.parser.isoparse(s) def name_from_thing(p: Union[Mapping, str]) -> Optional[str]: