diff --git a/matcher/model.py b/matcher/model.py index 4f61118..40d56f5 100644 --- a/matcher/model.py +++ b/matcher/model.py @@ -107,7 +107,7 @@ class Item(Base): aliases = Column(postgresql.JSONB) sitelinks = Column(postgresql.JSONB) claims = Column(postgresql.JSONB, nullable=False) - lastrevid = Column(BigInteger, nullable=False, unique=True) + lastrevid = Column(Integer, nullable=False, unique=True) locations: Mapped[list["ItemLocation"]] = relationship( "ItemLocation", cascade="all, delete-orphan", backref="item" ) diff --git a/update.py b/update.py index ee26a3b..f3626a7 100755 --- a/update.py +++ b/update.py @@ -6,8 +6,6 @@ import json import typing from time import sleep -import requests.exceptions - from matcher import model, wikidata, wikidata_api from matcher.database import init_db, session @@ -83,14 +81,7 @@ def handle_edit(change: Change) -> None: print(f"{ts}: no need to update {qid}") return - for attempt in range(100): - try: - entity = wikidata_api.get_entity(qid) - except requests.exceptions.ConnectionError: - print("connection error, retrying.") - sleep(10) - else: - break + entity = wikidata_api.get_entity(qid) entity_qid = entity.pop("id") if entity_qid != qid: print(f"{ts}: item {qid} replaced with redirect") @@ -132,15 +123,6 @@ def update_database() -> None: r = wikidata_api.get_recent_changes(rcstart=start, rccontinue=rccontinue) reply = r.json() - if ( - "error" in reply - and reply["error"]["code"] == "internal_api_error_DBQueryTimeoutError" - ): - print(reply) - sleep(10) - continue - if "query" not in reply: - print(reply) for change in reply["query"]["recentchanges"]: rctype = change["type"] timestamp = change["timestamp"]