From c4aa8850a7fc3178d35e3aac23c84d7dfb03d0f4 Mon Sep 17 00:00:00 2001 From: cage Date: Sat, 15 Jun 2024 14:02:03 +0200 Subject: [PATCH] - prevented inserting a duplicate row into search results folder. --- src/program-events.lisp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/program-events.lisp b/src/program-events.lisp index a153195..8798962 100644 --- a/src/program-events.lisp +++ b/src/program-events.lisp @@ -2034,16 +2034,19 @@ (defmethod process-event ((object fediverse-local-query-event)) (with-accessors ((payload payload)) object - (loop for status-results in (fediverse-post-local-search:parse-search-statuses payload) - do - (let ((status-row (db:find-status-id (db:row-message-status-id status-results)))) - (setf (getf status-row :folder) - (query-results-folder-name)) - (setf (getf status-row :timeline) - db:+home-timeline+) - (multiple-value-bind (query column-values) - (db-utils:insert-query db:+table-status+ status-row) - (db-utils:query-low-level query column-values)))) + (loop for status-results in (fediverse-post-local-search:parse-search-statuses payload) do + (let* ((status-id (db:row-message-status-id status-results)) + (status-row (db:find-status-id status-id))) + (when (not (db::find-status-id-folder-timeline status-id + (query-results-folder-name) + db:+home-timeline+)) + (setf (getf status-row :folder) + (query-results-folder-name)) + (setf (getf status-row :timeline) + db:+home-timeline+) + (multiple-value-bind (query column-values) + (db-utils:insert-query db:+table-status+ status-row) + (db-utils:query-low-level query column-values))))) (let ((refresh-event (make-instance 'refresh-thread-windows-event :new-folder (query-results-folder-name) :new-timeline db:+home-timeline+)))