From 6fb292680b31f871cf1ff0af58d94622c0f2025d Mon Sep 17 00:00:00 2001 From: =?utf-8?q?C=C3=A9lestin=20Matte?= Date: Wed, 22 Mar 2023 16:04:12 +0100 Subject: [PATCH] loader: attempt to handle message in multiple lists loader: check if message already exists in another list, and that message is linked to a parent in the right list. This patch is not sufficient as such a case will cause the import script to crash later (in storage.py line 234) --- loader/lib/storage.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/loader/lib/storage.py b/loader/lib/storage.py index 5fbdc6f..8331524 100644 --- a/loader/lib/storage.py +++ b/loader/lib/storage.py @@ -29,7 +29,7 @@ class ArchivesParserStorage(ArchivesParser): 'month': self.date.month, }) - curs.execute("SELECT threadid, EXISTS(SELECT threadid FROM list_threads lt WHERE lt.listid=%(listid)s AND lt.threadid=m.threadid), id FROM messages m WHERE m.messageid=%(messageid)s", { + curs.execute("SELECT m.threadid, EXISTS(SELECT threadid FROM list_threads lt WHERE lt.listid=%(listid)s AND lt.threadid=m.threadid), id FROM messages m INNER JOIN list_threads l ON l.threadid = m.threadid WHERE m.messageid=%(messageid)s AND listid=%(listid)s", { 'messageid': self.msgid, 'listid': listid, }) @@ -110,8 +110,9 @@ class ArchivesParserStorage(ArchivesParser): self.purge_list(listid, self.date.year, self.date.month) # Resolve own thread - curs.execute("SELECT id, messageid, threadid FROM messages WHERE messageid=ANY(%(parents)s)", { + curs.execute("SELECT id, messageid, messages.threadid FROM messages INNER JOIN list_threads ON messages.threadid = list_threads.threadid WHERE messageid=ANY(%(parents)s) AND listid=%(listid)s", { 'parents': self.parents, + 'listid': listid, }) all_parents = curs.fetchall() if len(all_parents): -- 2.39.2