[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/gnorb 6174d5a 410/449: [gnorb] More little tweaks to re
From: |
Stefan Monnier |
Subject: |
[elpa] externals/gnorb 6174d5a 410/449: [gnorb] More little tweaks to registry searching, bump to 1.5.2 |
Date: |
Fri, 27 Nov 2020 23:16:22 -0500 (EST) |
branch: externals/gnorb
commit 6174d5a7a3689dc09367e53b67c55de5a904d93e
Author: Eric Abrahamsen <eric@ericabrahamsen.net>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
[gnorb] More little tweaks to registry searching, bump to 1.5.2
* packages/gnorb/gnorb-gnus.el (gnorb-gnus-search-registry): Use
case-fold-search, better parsing regexp, and be more careful about
returning valid results.
* packages/gnorb/gnorb-helm.el (gnorb-helm-gnus-registry-candidates):
Be more careful about checking gnus-ignored-from-addresses.
* packages/gnorb/gnorb.el: Bump to 1.5.2
---
gnorb-gnus.el | 79 +++++++++++++++++++++++++++++++----------------------------
gnorb-helm.el | 24 ++++++++++++------
gnorb.el | 2 +-
3 files changed, 60 insertions(+), 45 deletions(-)
diff --git a/gnorb-gnus.el b/gnorb-gnus.el
index 2bbe19f..96d660e 100644
--- a/gnorb-gnus.el
+++ b/gnorb-gnus.el
@@ -703,50 +703,55 @@ sender:google.com subject:\"your search results\""
(interactive
(list (read-string "Registry search terms: " nil
gnorb-registry-search-history)))
- (let (parsed found this-pass term)
+ (let ((case-fold-search t)
+ parsed found this-pass term)
(with-temp-buffer
(insert search-string)
(goto-char (point-min))
(while (re-search-forward
- "\\([[:alpha:]]+\\):\\(\\(?:\\w+\\|\"[[:alpha:] ]+\"\\)\\)"
+ "\\([[:alpha:]]+\\):\\(\\(?:[^\"[:blank:]]+\\|\"[^\"]+\"\\)\\)"
(point-at-eol) t)
(push (cons (intern (match-string 1))
(string-trim (match-string 2) "\"" "\""))
- parsed))
- (dolist (sym (slot-value gnus-registry-db 'tracked))
- (when (setq term (cdr-safe (assoc sym parsed)))
- (maphash
- (lambda (k v)
- (when (string-match-p term k)
- (setq this-pass (append v this-pass))))
- (gethash sym (slot-value gnus-registry-db 'tracker)))
- (setq found (if found
- (seq-intersection found this-pass)
- this-pass)
- this-pass nil)))
- (if found
- (let* ((server (gnorb-gnus-find-gnorb-server))
- (artlist
- (mapcar
- (lambda (msg)
- (pcase-let ((`(,group . ,artno) (gnorb-msg-id-request-head
- msg)))
- (when (and artno (integerp artno) (> artno 0))
- (vector group artno 100))))
- (delq nil (delete-dups found))))
- (name (make-temp-name "registry messages"))
- (spec (list
- (cons 'nnir-specs (list (cons 'nnir-query-spec
- `((query . "dummy")
- (articles . ,artlist)))
- (cons 'nnir-group-spec
- `((,server ,(list
name))))))
- (cons 'nnir-artlist nil))))
- (switch-to-buffer gnus-group-buffer)
- (gnus-group-read-ephemeral-group
- name `(nnir ,server) nil `(switch-to-buffer ,gnus-group-buffer)
- nil nil spec))
- (message "No results found")))))
+ parsed)))
+ (dolist (sym (slot-value gnus-registry-db 'tracked))
+ (when (setq term (cdr-safe (assoc sym parsed)))
+ (maphash
+ (lambda (k v)
+ (when (string-match-p term k)
+ (setq this-pass (append v this-pass))))
+ (gethash sym (slot-value gnus-registry-db 'tracker)))
+ (setq found (if found
+ (seq-intersection found this-pass)
+ this-pass)
+ this-pass nil)))
+ (if found
+ (let* ((server (gnorb-gnus-find-gnorb-server))
+ (artlist
+ (delq
+ nil
+ (mapcar
+ (lambda (msg)
+ (pcase-let ((`(,group . ,artno)
+ (gnorb-msg-id-request-head
+ msg (car-safe
+ (gnus-registry-get-id-key msg 'group)))))
+ (when (and group artno (integerp artno) (> artno 0))
+ (vector group artno 100))))
+ (delq nil (delete-dups found)))))
+ (name (make-temp-name "registry messages"))
+ (spec (list
+ (cons 'nnir-specs (list (cons 'nnir-query-spec
+ `((query . "dummy")
+ (articles . ,artlist)))
+ (cons 'nnir-group-spec
+ `((,server ,(list name))))))
+ (cons 'nnir-artlist nil))))
+ (switch-to-buffer gnus-group-buffer)
+ (gnus-group-read-ephemeral-group
+ name `(nnir ,server) nil `(switch-to-buffer ,gnus-group-buffer)
+ nil nil spec))
+ (message "No results found"))))
;;;###autoload
(defun gnorb-gnus-tag-message (arg &optional tags)
diff --git a/gnorb-helm.el b/gnorb-helm.el
index e9eae46..bcae4f9 100644
--- a/gnorb-helm.el
+++ b/gnorb-helm.el
@@ -33,18 +33,28 @@
(defun gnorb-helm-gnus-registry-candidates ()
"Return a list of candidates from the Gnus registry."
- (let (ret from recipient subject group)
+ (let ((check
+ (when gnus-ignored-from-addresses
+ (cond ((functionp gnus-ignored-from-addresses)
+ (lambda (adr) (funcall gnus-ignored-from-addresses adr)))
+ ((stringp gnus-ignored-from-addresses)
+ (lambda (adr)
+ (string-match-p
+ gnus-ignored-from-addresses adr))))))
+ ret from recipient subject group)
(maphash
(lambda (msg-id data)
(when (setq group (car-safe (cdr (assoc 'group data)))
from (car-safe (cdr (assoc 'sender data)))
subject (car-safe (cdr (assoc 'subject data)))
- recipient (car-safe (cdr (assoc 'recipient data))))
- (push (cons (format "%s: %s"
- (if (string-match-p gnus-ignored-from-addresses
from)
- recipient
- from)
- subject) ; display
+ recipient (cdr (assoc 'recipient data)))
+ (push (cons (format
+ "%s: %s" ; display
+ (if (and check
+ (funcall check from))
+ (mapconcat #'identity recipient " ")
+ from)
+ subject)
(cons msg-id group)) ; real
ret)))
(slot-value gnus-registry-db 'data))
diff --git a/gnorb.el b/gnorb.el
index ebed9da..4b0b840 100644
--- a/gnorb.el
+++ b/gnorb.el
@@ -2,7 +2,7 @@
;; Copyright (C) 2018 Free Software Foundation, Inc.
-;; Version: 1.5.1
+;; Version: 1.5.2
;; Package-Requires: ((cl-lib "0.5"))
;; Maintainer: Eric Abrahamsen <eric@ericabrahamsen.net>
- [elpa] externals/gnorb 2ca09f4 421/449: gnorb: Fix link following, bump to 1.5.6, (continued)
- [elpa] externals/gnorb 2ca09f4 421/449: gnorb: Fix link following, bump to 1.5.6, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 86b870f 429/449: [gnorb] Replace gnus-buffer-exists-p with gnus-buffer-live-p, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 4bb8cd2 413/449: [gnorb] Check message-alternative-emails in helm registry search, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 840093b 411/449: [gnorb] Don't use string-trim with optional args, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 5e8b0c2 414/449: [gnorb] Fix handling of region-bounds return value, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 183cf9c 435/449: [gnorb] Fix dumb typo in 07214d9e4, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb f383a7e 416/449: [gnorb] Require gnorb-org within gnorb-trigger-todo-action, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 9adc9dd 427/449: [gnorb] Add nnselect method of getting an article's "real" group, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 3fb0aed 438/449: [gnorb] Fixes to link scanning, bump to 1.6.6, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 5692b47 448/449: [gnorb] Finish refactoring for nnselect, bump to 1.6.9, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 6174d5a 410/449: [gnorb] More little tweaks to registry searching, bump to 1.5.2,
Stefan Monnier <=
- [elpa] externals/gnorb 46b72b2 415/449: [gnorb] Bump version to 1.5.3, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb c4aa1d5 441/449: [gnorb] Improve customization type for gnorb-gnus-sent-groups, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 056a767 442/449: [gnorb] Improvements to gnorb-org-setup-message, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb b2138dd 437/449: [gnorb] Update to use org-link-any-re, bump to 1.6.5, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb a0f32ad 444/449: [gnorb] Don't allow creation of new headings for incoming trigger, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 78fe298 426/449: [gnorb] Move location of gnorb-gnus-summary-mode-hook, bump to 1.6.1, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 3940f46 431/449: [gnorb] Fix to previous commit, bump to 1.6.3, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 5f9611b 449/449: Fix some quoting problems in doc strings, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 15726f0 419/449: [gnorb] Missing quote in nested `eval-after-load', bump to 1.5.5, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb d5aafc5 445/449: [gnorb] Bump version to 1.6.8, Stefan Monnier, 2020/11/27