emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 9bcdebd 3/3: Remove gmane search engine


From: Eric Abrahamsen
Subject: master 9bcdebd 3/3: Remove gmane search engine
Date: Wed, 4 Nov 2020 00:22:26 -0500 (EST)

branch: master
commit 9bcdebd9b7432dbdc826579c9a9ec725bbd70d53
Author: Eric Abrahamsen <eric@ericabrahamsen.net>
Commit: Eric Abrahamsen <eric@ericabrahamsen.net>

    Remove gmane search engine
    
    Remove the gnus-search-gmane class and all associated methods.  If
    search functionality is ever resurrected, then revert this commit.
    
    * lisp/gnus/gnus-search.el: Delete code, and remove from default value
    of `gnus-search-default-engines'.
---
 lisp/gnus/gnus-search.el | 77 +-----------------------------------------------
 1 file changed, 1 insertion(+), 76 deletions(-)

diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el
index 3ca81f3..81be7c5 100644
--- a/lisp/gnus/gnus-search.el
+++ b/lisp/gnus/gnus-search.el
@@ -825,9 +825,6 @@ quirks.")
                                 gnus-search-grep)
   nil)
 
-(defclass gnus-search-gmane (gnus-search-engine gnus-search-process)
-  nil)
-
 ;;; The "indexed" search engine.  These are engines that use an
 ;;; external program, with indexes kept on disk, to search messages
 ;;; usually kept in some local directory.  The three common slots are
@@ -970,8 +967,7 @@ quirks.")
 (define-obsolete-variable-alias 'nnir-method-default-engines
   'gnus-search-default-engines "28.1")
 
-(defcustom gnus-search-default-engines '((nnimap gnus-search-imap)
-                                        (nntp  gnus-search-gmane))
+(defcustom gnus-search-default-engines '((nnimap gnus-search-imap))
   "Alist of default search engines keyed by server method."
   :version "26.1"
   :group 'gnus-search
@@ -1921,77 +1917,6 @@ Assume \"size\" key is equal to \"larger\"."
                   artlist)))
             grouplist))))
 
-(declare-function mm-url-insert "mm-url" (url &optional follow-refresh))
-(declare-function mm-url-encode-www-form-urlencoded "mm-url" (pairs))
-
-;; gmane interface
-(cl-defmethod gnus-search-run-search ((engine gnus-search-gmane)
-                                     srv query &optional groups)
-  "Run a search against a gmane back-end server."
-  (let* ((case-fold-search t)
-        (groupspec (mapconcat
-                    (lambda (x)
-                      (if (string-match-p "gmane" x)
-                          (format "group:%s" (gnus-group-short-name x))
-                        (error "Can't search non-gmane groups: %s" x)))
-                    groups " "))
-        (buffer (slot-value engine 'proc-buffer))
-        (search (concat (gnus-search-make-query-string engine query)
-                        " "
-                        groupspec))
-        (gnus-inhibit-demon t)
-        artlist)
-    (require 'mm-url)
-    (with-current-buffer buffer
-      (erase-buffer)
-      (mm-url-insert
-       (concat
-       "http://search.gmane.org/nov.php";
-       "?"
-       (mm-url-encode-www-form-urlencoded
-        `(("query" . ,search)
-          ("HITSPERPAGE" . "999")))))
-      (set-buffer-multibyte t)
-      (decode-coding-region (point-min) (point-max) 'utf-8)
-      (goto-char (point-min))
-      (forward-line 1)
-      (while (not (eobp))
-       (unless (or (eolp) (looking-at "\x0d"))
-         (let ((header (nnheader-parse-nov)))
-           (let ((xref (mail-header-xref header))
-                 (xscore (string-to-number (cdr (assoc 'X-Score
-                                                       (mail-header-extra 
header))))))
-             (when (string-match " \\([^:]+\\)[:/]\\([0-9]+\\)" xref)
-               (push
-                (vector
-                 (gnus-group-prefixed-name (match-string 1 xref) srv)
-                 (string-to-number (match-string 2 xref)) xscore)
-                artlist)))))
-       (forward-line 1)))
-    (apply #'vector (nreverse (delete-dups artlist)))))
-
-(cl-defmethod gnus-search-transform-expression ((_e gnus-search-gmane)
-                                               (_expr (head near)))
-  nil)
-
-;; Can Gmane handle OR or NOT keywords?
-(cl-defmethod gnus-search-transform-expression ((_e gnus-search-gmane)
-                                               (_expr (head or)))
-  nil)
-
-(cl-defmethod gnus-search-transform-expression ((_e gnus-search-gmane)
-                                               (_expr (head not)))
-  nil)
-
-(cl-defmethod gnus-search-transform-expression ((_e gnus-search-gmane)
-                                               (expr list))
-  "The only keyword value gmane can handle is author, ie from."
-  (cond
-   ((memq (car expr) '(from sender author address))
-    (format "author:%s" (cdr expr)))
-   ((eql (car expr) 'body)
-    (cdr expr))))
-
 ;;; Util Code:
 
 (defun gnus-search-run-query (specs)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]