Function: gnus-summary-import-article
gnus-summary-import-article is an interactive and byte-compiled
function defined in gnus-sum.el.gz.
Signature
(gnus-summary-import-article FILE &optional EDIT)
Documentation
Import an arbitrary file into a mail newsgroup.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-summary-import-article (file &optional edit)
"Import an arbitrary file into a mail newsgroup."
(interactive "fImport file: \nP" gnus-summary-mode)
(let ((group gnus-newsgroup-name)
atts lines group-art)
(unless (gnus-check-backend-function 'request-accept-article group)
(error "%s does not support article importing" group))
(or (file-readable-p file)
(not (file-regular-p file))
(error "Can't read %s" file))
(with-current-buffer (gnus-get-buffer-create " *import file*")
(erase-buffer)
(nnheader-insert-file-contents file)
(goto-char (point-min))
(if (nnheader-article-p)
(save-restriction
(goto-char (point-min))
(search-forward "\n\n" nil t)
(narrow-to-region (point-min) (1- (point)))
(goto-char (point-min))
(unless (re-search-forward "^date:" nil t)
(goto-char (point-max))
(setq atts (file-attributes file))
(insert "Date: " (message-make-date
(file-attribute-modification-time atts))
"\n")))
;; This doesn't look like an article, so we fudge some headers.
(setq atts (file-attributes file)
lines (count-lines (point-min) (point-max)))
(insert "From: " (read-string "From: ") "\n"
"Subject: " (read-string "Subject: ") "\n"
"Date: " (message-make-date
(file-attribute-modification-time atts)) "\n"
"Message-ID: " (message-make-message-id) "\n"
"Lines: " (int-to-string lines) "\n"
"Chars: " (int-to-string (file-attribute-size atts)) "\n\n"))
(setq group-art (gnus-request-accept-article group nil t))
(kill-buffer (current-buffer)))
(setq gnus-newsgroup-active (gnus-activate-group group))
(forward-line 1)
(gnus-summary-goto-article (cdr group-art) nil t)
(when edit
(gnus-summary-edit-article))))