urlinfo:generic: be more relaxed with datetime isoformat

This commit is contained in:
ducklet 2020-11-15 18:51:31 +01:00
parent e1533bb7e2
commit 124ed1cf25

View file

@ -1,7 +1,7 @@
import json import json
import logging import logging
from dataclasses import dataclass from dataclasses import dataclass
from datetime import datetime from datetime import datetime, timezone
from typing import * from typing import *
from ...functions import ( from ...functions import (
@ -148,6 +148,15 @@ def aslist(o: Any):
return o if type(o) is list else [o] return o if type(o) is list else [o]
def fromisoformat(s) -> datetime:
try:
datetime.fromisoformat(s)
except ValueError:
pass
# '2003-08-15T13:18:27Z'
return datetime.strptime(s, r"%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc)
@dataclass @dataclass
class LinkedData: class LinkedData:
title: Optional[str] title: Optional[str]
@ -168,9 +177,7 @@ class LinkedData:
return cls( return cls(
title=o.get("headline") or o.get("name"), title=o.get("headline") or o.get("name"),
published=( published=(
datetime.fromisoformat(o["datePublished"]) fromisoformat(o["datePublished"]) if "datePublished" in o else None
if "datePublished" in o
else None
), ),
image=o.get("image") or o.get("logo"), image=o.get("image") or o.get("logo"),
description=o.get("description"), description=o.get("description"),