From 90756917aa4ff7f5fa911bdee3e53718a5cd3fd7 Mon Sep 17 00:00:00 2001 From: xenofem Date: Sat, 13 Sep 2025 03:30:36 -0400 Subject: [PATCH] ignore deleted works left in suggestion cache --- dlibrary/dlibrary.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/dlibrary/dlibrary.py b/dlibrary/dlibrary.py index 9b9d304..5d8a172 100755 --- a/dlibrary/dlibrary.py +++ b/dlibrary/dlibrary.py @@ -1269,16 +1269,6 @@ def generate(args): cur = con.cursor() debug('main database open') - debug('opening suggestion cache database') - cache_con = sqlite3.connect(args.destdir / 'cache.db') - cache_cur = cache_con.cursor() - cache_cur.execute("CREATE TABLE IF NOT EXISTS suggestions(work TEXT, suggested TEXT, similarity INT, PRIMARY KEY(work, suggested))") - debug('suggestion cache database open') - cached_suggestions = {} - for (work, suggested, similarity) in cache_cur.execute('SELECT work, suggested, similarity FROM suggestions'): - cached_suggestions.setdefault(work, TopScoreList(SUGGESTED_WORKS_COUNT)).insert(suggested, similarity) - debug('cached suggestions loaded') - site_dir = args.destdir / 'site' collated_work_ids = {p.name for p in (site_dir / 'images').iterdir()} @@ -1315,6 +1305,17 @@ def generate(args): print(f'{ANSI_LINECLEAR}{idx+1} database entries read...', end='') print() + debug('opening suggestion cache database') + cache_con = sqlite3.connect(args.destdir / 'cache.db') + cache_cur = cache_con.cursor() + cache_cur.execute("CREATE TABLE IF NOT EXISTS suggestions(work TEXT, suggested TEXT, similarity INT, PRIMARY KEY(work, suggested))") + debug('suggestion cache database open') + cached_suggestions = {} + for (work, suggested, similarity) in cache_cur.execute('SELECT work, suggested, similarity FROM suggestions'): + if work in works and suggested in works: + cached_suggestions.setdefault(work, TopScoreList(SUGGESTED_WORKS_COUNT)).insert(suggested, similarity) + debug('cached suggestions loaded') + for work in works.values(): if work['id'] in cached_suggestions: continue