~migadu/alps-devel

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch
3 2

[PATCH alps] plugins/base: sort search results by date

Details
Message ID
<169141904472.31507.2469629148576570774-0@git.sr.ht>
DKIM signature
missing
Download raw message
Patch: +21 -5
From: Konstantinos Koukas <contact@koukas.org>

Implement server-side sorting of search results using the SORT
extension to IMAP, if the server supports it. Otherwise, fall back to
the unordered SEARCH command.

Sort messages by sent date, in descending order.
---
 plugins/base/imap.go | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/plugins/base/imap.go b/plugins/base/imap.go
index 8ea88e9..efa1de3 100644
--- a/plugins/base/imap.go
+++ b/plugins/base/imap.go
@@ -471,12 +471,28 @@ func searchMessages(conn *imapclient.Client, mboxName, query string, page, messa
		return nil, 0, err
	}

	criteria := PrepareSearch(query)
	data, err := conn.Search(criteria, nil).Wait()
	if err != nil {
		return nil, 0, fmt.Errorf("UID SEARCH failed: %v", err)
	searchCriteria := PrepareSearch(query)
	var nums []uint32

	if !conn.Caps().Has(imap.CapSort) {
		data, err := conn.Search(searchCriteria, nil).Wait()
		if err != nil {
			return nil, 0, fmt.Errorf("UID SEARCH failed: %v", err)
		}
		nums = data.AllNums()
	} else {
		sortOptions := &imapclient.SortOptions{
			SearchCriteria: searchCriteria,
			SortCriteria: []imapclient.SortCriterion{
				{Key: imapclient.SortKeyDate, Reverse: true},
			},
		}
		nums, err = conn.Sort(sortOptions).Wait()
		if err != nil {
			return nil, 0, fmt.Errorf("SORT failed: %v", err)
		}
	}
	nums := data.AllNums()

	total = len(nums)

	from := page * messagesPerPage
-- 
2.38.5

[alps/patches/.build.yml] build success

builds.sr.ht <builds@sr.ht>
Details
Message ID
<CUME1EA9XDAA.11EGGG4EZ9JR2@cirno2>
In-Reply-To
<169141904472.31507.2469629148576570774-0@git.sr.ht> (view parent)
DKIM signature
missing
Download raw message
alps/patches/.build.yml: SUCCESS in 1m17s

[plugins/base: sort search results by date][0] from [~koukas][1]

[0]: https://lists.sr.ht/~migadu/alps-devel/patches/43402
[1]: contact@koukas.org

✓ #1036875 SUCCESS alps/patches/.build.yml https://builds.sr.ht/~migadu/job/1036875
Details
Message ID
<oQcYYR27zwvR50lxaWP5dzVExy2EHdatc1AoJQfJ6xPpArAAtQHLZ5NJxZR9OtUMTb2LZO9AqkKTakEQaH6DwjC2eFwg7hGGl16lMaKChSk=@emersion.fr>
In-Reply-To
<169141904472.31507.2469629148576570774-0@git.sr.ht> (view parent)
DKIM signature
missing
Download raw message
Shouldn't we use UIDSort instead of Sort?

Apart from this, sounds good.
Details
Message ID
<NGpIxTEEptnk0qHQs2zOAL2YaNIMOMGUQnNPK_sAgOkSYw7BIgHvqThJzTX8sgEZYqqeWFNfwHRWFQWcEawnkP5vIxYNXfw0siCNO0aJznI=@emersion.fr>
In-Reply-To
<oQcYYR27zwvR50lxaWP5dzVExy2EHdatc1AoJQfJ6xPpArAAtQHLZ5NJxZR9OtUMTb2LZO9AqkKTakEQaH6DwjC2eFwg7hGGl16lMaKChSk=@emersion.fr> (view parent)
DKIM signature
missing
Download raw message
On Wednesday, August 9th, 2023 at 23:15, Simon Ser <contact@emersion.fr> wrote:

> Shouldn't we use UIDSort instead of Sort?

Ah, no, my bad. I got confused due to the error message.

Pushed, thanks!
Reply to thread Export thread (mbox)