summaryrefslogtreecommitdiffhomepage
path: root/lib/org/jao-org-gnus.el
diff options
context:
space:
mode:
Diffstat (limited to 'lib/org/jao-org-gnus.el')
-rw-r--r--lib/org/jao-org-gnus.el72
1 files changed, 0 insertions, 72 deletions
diff --git a/lib/org/jao-org-gnus.el b/lib/org/jao-org-gnus.el
deleted file mode 100644
index cdeec65..0000000
--- a/lib/org/jao-org-gnus.el
+++ /dev/null
@@ -1,72 +0,0 @@
-;; Support for saving Gnus messages by Message-ID
-(defun mde-org-gnus-save-by-mid ()
- (when (memq major-mode '(gnus-summary-mode gnus-article-mode))
- (when (eq major-mode 'gnus-article-mode)
- (gnus-article-show-summary))
- (let* ((group gnus-newsgroup-name)
- (method (gnus-find-method-for-group group)))
- (when (memq (car method) '(nnml nntp))
- (let* ((article (gnus-summary-article-number))
- (header (gnus-summary-article-header article))
- (from (mail-header-from header))
- (message-id
- (save-match-data
- (let ((mid (mail-header-id header)))
- (if (string-match "<\\(.*\\)>" mid)
- (match-string 1 mid)
- (error "Malformed message ID header %s" mid)))))
- (date (mail-header-date header))
- (subject (gnus-summary-subject-string)))
- (org-store-link-props :type "mid" :from from :subject subject
- :message-id message-id :group group
- :link (org-make-link "mid:" message-id))
- (apply 'org-store-link-props
- :description (org-email-link-description)
- org-store-link-plist)
- t)))))
-
-(defvar mde-mid-resolve-methods '()
- "List of methods to try when resolving message ID's. For Gnus,
-it is a cons of 'gnus and the select (type and name).")
-(setq mde-mid-resolve-methods
- '((gnus nnml "")))
-
-(defvar mde-org-gnus-open-level 1
- "Level at which Gnus is started when opening a link")
-(defun mde-org-gnus-open-message-link (msgid)
- "Open a message link with Gnus"
- (require 'gnus)
- (require 'org-table)
- (catch 'method-found
- (message "[MID linker] Resolving %s" msgid)
- (dolist (method mde-mid-resolve-methods)
- (cond
- ((and (eq (car method) 'gnus)
- (eq (cadr method) 'nnml))
- (funcall (cdr (assq 'gnus org-link-frame-setup))
- mde-org-gnus-open-level)
- (when gnus-other-frame-object
- (select-frame gnus-other-frame-object))
- (let* ((msg-info (nnml-find-group-number
- (concat "<" msgid ">")
- (cdr method)))
- (group (and msg-info (car msg-info)))
- (message (and msg-info (cdr msg-info)))
- (qname (and group
- (if (gnus-methods-equal-p
- (cdr method)
- gnus-select-method)
- group
- (gnus-group-full-name group (cdr method))))))
- (when msg-info
- (gnus-summary-read-group qname nil t)
- (gnus-summary-goto-article message nil t))
- (throw 'method-found t)))
- (t (error "Unknown link type"))))))
-
-(eval-after-load 'org-gnus
- '(progn
- (add-to-list 'org-store-link-functions 'mde-org-gnus-save-by-mid)
- (org-add-link-type "mid" 'mde-org-gnus-open-message-link)))
-
-(provide 'jao-org-gnus)