urlinfo:generic: use python-dateutil for date parsing
This commit is contained in:
parent
22d9b33ce7
commit
14b4a350ee
2 changed files with 5 additions and 15 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
feedparser==6.*
|
feedparser==6.*
|
||||||
matrix-nio[e2e]
|
matrix-nio[e2e]
|
||||||
|
python-dateutil
|
||||||
pyyaml
|
pyyaml
|
||||||
requests
|
requests
|
||||||
youtube_dl
|
youtube_dl
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime
|
||||||
from typing import *
|
from typing import *
|
||||||
|
|
||||||
|
import dateutil.parser
|
||||||
|
|
||||||
from ...functions import (
|
from ...functions import (
|
||||||
ElementParser,
|
ElementParser,
|
||||||
capped_text,
|
capped_text,
|
||||||
|
|
@ -149,20 +151,7 @@ def aslist(o: Any):
|
||||||
|
|
||||||
|
|
||||||
def fromisoformat(s) -> datetime:
|
def fromisoformat(s) -> datetime:
|
||||||
try:
|
return dateutil.parser.isoparse(s)
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
def name_from_thing(p: Union[Mapping, str]) -> Optional[str]:
|
def name_from_thing(p: Union[Mapping, str]) -> Optional[str]:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue