diff options
author | Lars Magne Ingebrigtsen <larsi@gnus.org> | 2010-10-20 00:02:35 +0000 |
---|---|---|
committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2010-10-20 00:02:35 +0000 |
commit | cdf1fca4adb10bc0d2ff09343c74d576b118f699 (patch) | |
tree | 3aec5da011da009d328261d06f771d1c667cca1c /lisp/gnus/shr.el | |
parent | b643306fb0d4335141d289f28238c04744c89629 (diff) | |
download | emacs-cdf1fca4adb10bc0d2ff09343c74d576b118f699.tar.gz emacs-cdf1fca4adb10bc0d2ff09343c74d576b118f699.tar.bz2 emacs-cdf1fca4adb10bc0d2ff09343c74d576b118f699.zip |
shr.el (shr-save-contents): New command and keystroke.
Diffstat (limited to 'lisp/gnus/shr.el')
-rw-r--r-- | lisp/gnus/shr.el | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el index cdb6ea67d1d..98c473c1879 100644 --- a/lisp/gnus/shr.el +++ b/lisp/gnus/shr.el @@ -98,6 +98,7 @@ cid: URL as the argument.") (define-key map "I" 'shr-insert-image) (define-key map "u" 'shr-copy-url) (define-key map "v" 'shr-browse-url) + (define-key map "o" 'shr-save-contents) (define-key map "\r" 'shr-browse-url) map)) @@ -323,6 +324,23 @@ redirects somewhere else." (message "No link under point") (browse-url url)))) +(defun shr-save-contents (directory) + "Save the contents from URL in a file." + (interactive "DSave contents of URL to directory: ") + (let ((url (get-text-property (point) 'shr-url))) + (if (not url) + (message "No link under point") + (url-retrieve (shr-encode-url url) + 'shr-store-contents (list url directory))))) + +(defun shr-store-contents (status url directory) + (unless (plist-get status :error) + (when (or (search-forward "\n\n" nil t) + (search-forward "\r\n\r\n" nil t)) + (write-region (point) (point-max) + (expand-file-name (file-name-nondirectory url) + directory))))) + (defun shr-image-fetched (status buffer start end) (when (and (buffer-name buffer) (not (plist-get status :error))) |