Compare commits
No commits in common. "13ecf4526d1f85a00199c89ccbcaf3ccc50450fa" and "4d32f62dfb0f182d73dfb757be18ea7e66425614" have entirely different histories.
13ecf4526d
...
4d32f62dfb
|
@ -107,7 +107,7 @@ class Item(Base):
|
||||||
aliases = Column(postgresql.JSONB)
|
aliases = Column(postgresql.JSONB)
|
||||||
sitelinks = Column(postgresql.JSONB)
|
sitelinks = Column(postgresql.JSONB)
|
||||||
claims = Column(postgresql.JSONB, nullable=False)
|
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(
|
locations: Mapped[list["ItemLocation"]] = relationship(
|
||||||
"ItemLocation", cascade="all, delete-orphan", backref="item"
|
"ItemLocation", cascade="all, delete-orphan", backref="item"
|
||||||
)
|
)
|
||||||
|
|
18
update.py
18
update.py
|
@ -6,8 +6,6 @@ import json
|
||||||
import typing
|
import typing
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
import requests.exceptions
|
|
||||||
|
|
||||||
from matcher import model, wikidata, wikidata_api
|
from matcher import model, wikidata, wikidata_api
|
||||||
from matcher.database import init_db, session
|
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}")
|
print(f"{ts}: no need to update {qid}")
|
||||||
return
|
return
|
||||||
|
|
||||||
for attempt in range(100):
|
|
||||||
try:
|
|
||||||
entity = wikidata_api.get_entity(qid)
|
entity = wikidata_api.get_entity(qid)
|
||||||
except requests.exceptions.ConnectionError:
|
|
||||||
print("connection error, retrying.")
|
|
||||||
sleep(10)
|
|
||||||
else:
|
|
||||||
break
|
|
||||||
entity_qid = entity.pop("id")
|
entity_qid = entity.pop("id")
|
||||||
if entity_qid != qid:
|
if entity_qid != qid:
|
||||||
print(f"{ts}: item {qid} replaced with redirect")
|
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)
|
r = wikidata_api.get_recent_changes(rcstart=start, rccontinue=rccontinue)
|
||||||
|
|
||||||
reply = r.json()
|
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"]:
|
for change in reply["query"]["recentchanges"]:
|
||||||
rctype = change["type"]
|
rctype = change["type"]
|
||||||
timestamp = change["timestamp"]
|
timestamp = change["timestamp"]
|
||||||
|
|
Loading…
Reference in a new issue