Alert admin about unsupported time precision

This commit is contained in:
Edward Betts 2021-11-13 16:39:03 +00:00
parent 7b181cd1b3
commit 1771f19f56
2 changed files with 17 additions and 4 deletions

View file

@ -11,7 +11,7 @@ from geoalchemy2 import Geometry
from collections import defaultdict
from flask_login import UserMixin
from .database import session, now_utc
from . import wikidata, utils
from . import wikidata, utils, mail
import json
import re
@ -197,8 +197,23 @@ class Item(Base):
def is_tram_stop(self):
return 'Q2175765' in self.get_isa_qids()
def alert_admin_about_bad_time(self, v):
body = ("Wikidata item has an unsupported time precision\n\n"
+ self.wd_url + "\n\n" + "Value:\n\n" + json.dumps(v, indent=2))
mail.send_mail(f"OWL Map: bad time value in {self.qid}", body)
def closed(self):
return [utils.format_wikibase_time(v) for v in self.get_claim("P3999") if v]
ret = []
for v in self.get_claim("P3999"):
if not v:
continue
t = utils.format_wikibase_time(v)
if t:
ret.append(t)
else:
self.alert_admin_about_bad_time(v)
return ret
# class Claim(Base):
# __tablename__ = "claim"

View file

@ -176,8 +176,6 @@ def format_wikibase_time(v):
p = v["precision"]
t = v["time"]
assert p in (7, 9, 10, 11)
# TODO: handle dates with century precision (7)
# example: https://www.wikidata.org/wiki/Q108266998