From 7f4e2617ee48b7e08164b050ceefab5717280ddf Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Wed, 27 Nov 2024 21:42:54 -0500 Subject: [PATCH] ssb: Try harder to replicate profile images, even if they were set before our blob replication cutoff. --- src/ssb.db.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/ssb.db.c b/src/ssb.db.c index 9456d22c..332218e3 100644 --- a/src/ssb.db.c +++ b/src/ssb.db.c @@ -233,13 +233,28 @@ void tf_ssb_db_init(tf_ssb_t* ssb) _tf_ssb_db_exec(db, "DROP VIEW IF EXISTS blob_wants_view"); _tf_ssb_db_exec(db, "CREATE VIEW IF NOT EXISTS blob_wants_view (id, timestamp) AS " - " SELECT messages_refs.ref AS id, messages.timestamp AS timestamp " - " FROM messages_refs " - " JOIN messages ON messages.id = messages_refs.message " - " LEFT OUTER JOIN blobs ON messages_refs.ref = blobs.id " + " WITH wanted AS ( " + " SELECT messages_refs.ref AS id, messages.timestamp AS timestamp " + " FROM messages_refs " + " JOIN messages ON messages.id = messages_refs.message " + " UNION " + " SELECT image as id, unixepoch() AS timestamp " + " FROM (" + " SELECT " + " messages.author, " + " RANK() OVER (PARTITION BY messages.author ORDER BY messages.sequence DESC) AS author_rank, " + " COALESCE(messages.content ->> '$.image.link', messages.content ->> 'image') AS image " + " FROM messages " + " WHERE " + " json_extract(messages.content, '$.type') = 'about' AND " + " content ->> 'about' = messages.author AND image IS NOT NULL " + " ) WHERE author_rank = 1 " + " ) " + " SELECT wanted.id, wanted.timestamp FROM wanted " + " LEFT OUTER JOIN blobs ON wanted.id = blobs.id " " WHERE blobs.id IS NULL " - " AND LENGTH(messages_refs.ref) = 52 " - " AND messages_refs.ref LIKE '&%.sha256'"); + " AND LENGTH(wanted.id) = 52 " + " AND wanted.id LIKE '&%.sha256'"); bool need_add_flags = true; bool need_convert_timestamp_to_real = false;