This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git


The following commit(s) were added to refs/heads/master by this push:
     new 1a4c717  Allow for mixed public/private lists
1a4c717 is described below

commit 1a4c717334ffadcad22367514c379ca6c5065a61
Author: Sebb <[email protected]>
AuthorDate: Mon Dec 13 15:24:40 2021 +0000

    Allow for mixed public/private lists
    
    This fixes #175
---
 server/plugins/background.py | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/server/plugins/background.py b/server/plugins/background.py
index 8ebd351..1fefdff 100644
--- a/server/plugins/background.py
+++ b/server/plugins/background.py
@@ -61,9 +61,10 @@ async def get_lists(database: 
plugins.configuration.DBConfig) -> dict:
     db = plugins.database.Database(database)
     limit = database.max_lists
 
-    # Fetch aggregations of all public emails
+    # Fetch aggregations of all private emails
+    # Do this first, so mixed lists are not marked private
     s = Search(using=db.client, index=db.dbs.mbox).filter(
-        "term", private=False
+        "term", private=True
     )
     s.aggs.bucket("per_list", "terms", field="list_raw", size=limit)
 
@@ -74,13 +75,13 @@ async def get_lists(database: 
plugins.configuration.DBConfig) -> dict:
     for ml in res["aggregations"]["per_list"]["buckets"]:
         list_name = ml["key"].strip("<>").replace(".", "@", 1)
         lists[list_name] = {
-            "count": 0,   # We'll sort this later
-            "private": False,
+            "count": 0,  # Sorting later
+            "private": True,
         }
 
-    # Ditto, for private emails
+    # Fetch aggregations of all public emails
     s = Search(using=db.client, index=db.dbs.mbox).filter(
-        "term", private=True
+        "term", private=False
     )
     s.aggs.bucket("per_list", "terms", field="list_raw", size=limit)
 
@@ -91,8 +92,8 @@ async def get_lists(database: plugins.configuration.DBConfig) 
-> dict:
     for ml in res["aggregations"]["per_list"]["buckets"]:
         list_name = ml["key"].strip("<>").replace(".", "@", 1)
         lists[list_name] = {
-            "count": 0,  # Sorting later
-            "private": True,
+            "count": 0,   # We'll sort this later
+            "private": False,
         }
 
     # Get 90 day activity, if any

Reply via email to