From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tassilo Horn Subject: Fixing slowness of following Gnus links to IMAP articles (was: Behavior of Gnus when called from an hyperlink) Date: Tue, 27 Jul 2010 08:45:41 +0200 Message-ID: <87aapdzalm.fsf_-_@thinkpad.tsdh.de> References: <87r5jrcx9g.fsf@mundaneum.com> <87ocev5pn3.fsf@mundaneum.com> <87fx071fsg.fsf@mundaneum.com> <23582.1277735944@gamaville.dokosmarshall.org> <87vd936wiq.fsf@mundaneum.com> <87eifr3t52.fsf@thinkpad.tsdh.de> <87vd8gcu6k.fsf@mundaneum.com> <87oce7j26i.fsf@thinkpad.tsdh.de> <87fwzjfyf8.fsf@mundaneum.com> <878w5bkxx7.fsf@mundaneum.com> <87hbjyzicz.fsf@thinkpad.tsdh.de> <13292.1279382554@gamaville.dokosmarshall.org> <87zkxpanh1.fsf@mundaneum.com> <23154.1279399784@gamaville.dokosmarshall.org> <87zkxpg5cg.fsf@mundaneum.com> <87wrstn4a9.fsf@mundaneum.com> <87fwzf51t1.fsf@thinkpad.tsdh.de> <87d3ujbrwt.wl%dmaus@ictsoc.de> <87wrsrmcnf.fsf@mundaneum.com> <87lj96k6xn.wl%dmaus@ictsoc.de> <87wrsoy5b2.fsf@mundaneum.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from [140.186.70.92] (port=47048 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OddvG-0004Xr-Ki for emacs-orgmode@gnu.org; Tue, 27 Jul 2010 02:45:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OddvF-0003Mo-7n for emacs-orgmode@gnu.org; Tue, 27 Jul 2010 02:45:54 -0400 Received: from lo.gmane.org ([80.91.229.12]:46679) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OddvE-0003MB-UV for emacs-orgmode@gnu.org; Tue, 27 Jul 2010 02:45:53 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1OddvB-0002r7-2Z for emacs-orgmode@gnu.org; Tue, 27 Jul 2010 08:45:49 +0200 Received: from tsdh.uni-koblenz.de ([141.26.67.142]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 27 Jul 2010 08:45:49 +0200 Received: from tassilo by tsdh.uni-koblenz.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 27 Jul 2010 08:45:49 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Hi Sébastien, I'm trying to add a workaround to org-gnus.el which should save the slowness of querying the IMAP server by looking up the article number in the group's .overview file. But since I don't have nnimap groups, we have to play some question & answer game. ;-) Please apply this patch and set `org-gnus-nnimap-query-article-no-from-file' to t. --8<---------------cut here---------------start------------->8--- diff --git a/lisp/org-gnus.el b/lisp/org-gnus.el index 7ec305b..118f088 100644 --- a/lisp/org-gnus.el +++ b/lisp/org-gnus.el @@ -55,6 +55,16 @@ negates this setting for the duration of the command." :group 'org-link-store :type 'boolean) +(defcustom org-gnus-nnimap-query-article-no-from-file nil + "If non-nil, `org-gnus-follow-link' will try to translate +Message-Ids to article numbers by querying the .overview file. +Normally, this translation is done by querying the IMAP server, +which is usually very fast. Unfortunately, some (maybe badly +configured) IMAP servers don't support this operation quickly. +So if following a link to a Gnus article takes ages, try setting +this variable to `t'." + :group 'org-link-store + :type 'boolean) ;; Install the link type (org-add-link-type "gnus" 'org-gnus-open) @@ -173,7 +183,11 @@ If `org-store-link' was called with a prefix arg the meaning of (cond ((and group article) (gnus-activate-group group t) (condition-case nil - (let ((backend (car (gnus-find-method-for-group group)))) + (let* ((method (gnus-find-method-for-group group)) + (backend (car method)) + (server (cadr method))) + (message "method = %s\ngroup = %s\nbackend = %s\nserver = %s" + method group backend server) (cond ((eq backend 'nndoc) (if (gnus-group-read-group t nil group) @@ -183,6 +197,12 @@ If `org-store-link' was called with a prefix arg the meaning of (t (let ((articles 1) group-opened) + ;; work arround IMAP servers that perform badly in + ;; SEARCH commands. + (when (and (eq backend 'nnimap) + org-gnus-nnimap-query-article-no-from-file) + (let ((headers (nnimap-retrieve-headers-from-file ))) + (message "headers = %s" headers))) (while (and (not group-opened) ;; stop on integer overflows (> articles 0)) --8<---------------cut here---------------end--------------->8--- Then follow some org link to a message in a nnimap group. This will be slow as usual, but produce some output in *Messages* that I need to go ahead. In that buffer, there should be 4 key-value pairs " = ". Please poste these here. Bye, Tassilo