store: обновлять тело записи при повторной отдаче того же url (панели теряли актуальный free_count); tools/push_top.py — топ находок в бота
This commit is contained in:
@@ -110,7 +110,15 @@ def add(items):
|
||||
dup += 1
|
||||
continue
|
||||
u = (getattr(it, "url", "") or "").strip()
|
||||
if u and c.execute("SELECT 1 FROM items WHERE url = ? LIMIT 1", (u,)).fetchone():
|
||||
row = c.execute("SELECT id FROM items WHERE url = ? LIMIT 1", (u,)).fetchone() if u else None
|
||||
if row:
|
||||
# Источник переотдал тот же url с новым телом (пост отредактировали,
|
||||
# у панели изменилось число бесплатных моделей) — обновляем текст,
|
||||
# иначе в выдаче висят устаревшие цифры. FTS правим вручную:
|
||||
# триггеров на UPDATE в схеме нет.
|
||||
c.execute("UPDATE items SET title=?, text=?, extra=?, score=?, seen=? WHERE id=?", (
|
||||
it.title, it.text, json.dumps(it.extra, ensure_ascii=False)[:2000], it.score, ts, row[0]))
|
||||
c.execute("UPDATE items_fts SET title=?, text=? WHERE rowid=?", (it.title, it.text, row[0]))
|
||||
dup += 1
|
||||
continue
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user