mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 10:27:41 +00:00
gnus-html.el: Introduce a new variable, gnus-blocked-images, and use that instead of the w3m variable; by Lars Magne Ingebrigtsen <larsi@gnus.org>.
This commit is contained in:
parent
a2b2dd84f4
commit
51dee5ef43
4 changed files with 43 additions and 22 deletions
|
|
@ -1,5 +1,7 @@
|
|||
2010-08-31 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* gnus.texi (HTML): Document gnus-blocked-images.
|
||||
|
||||
* message.texi (Wide Reply): Document message-prune-recipient-rules.
|
||||
|
||||
2010-08-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
|
|
|||
|
|
@ -12501,10 +12501,22 @@ section only describes the default method.
|
|||
If set to @code{gnus-article-html}, Gnus will use the built-in method,
|
||||
that's based on @code{curl} and @code{w3m}.
|
||||
|
||||
@item gnus-blocked-images
|
||||
@vindex gnus-blocked-images
|
||||
Images that have @acronym{URL}s that match this regexp won't be
|
||||
fetched and displayed. For instance, do block all @acronym{URL}s that
|
||||
have the string ``ads'' in them, do the following:
|
||||
|
||||
@lisp
|
||||
(setq gnus-blocked-images "ads")
|
||||
@end lisp
|
||||
|
||||
The default is to block all external images.
|
||||
|
||||
@item gnus-html-cache-directory
|
||||
@vindex gnus-html-cache-directory
|
||||
Gnus will download and cache images according to how
|
||||
@code{mm-w3m-safe-url-regexp} is set. These images will be stored in
|
||||
@code{gnus-blocked-images} is set. These images will be stored in
|
||||
this directory.
|
||||
|
||||
@item gnus-html-cache-size
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
2010-08-31 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* gnus-html.el (gnus-blocked-images): New variable.
|
||||
|
||||
* message.el (message-prune-recipients): New function.
|
||||
(message-prune-recipient-rules): New variable.
|
||||
|
||||
|
|
|
|||
|
|
@ -47,6 +47,11 @@
|
|||
:group 'gnus-art
|
||||
:type 'integer)
|
||||
|
||||
(defcustom gnus-blocked-images "."
|
||||
"Images that have URLs matching this regexp will be blocked."
|
||||
:group 'gnus-art
|
||||
:type 'regexp)
|
||||
|
||||
;;;###autoload
|
||||
(defun gnus-article-html (handle)
|
||||
(let ((article-buffer (current-buffer)))
|
||||
|
|
@ -94,23 +99,23 @@
|
|||
((equal tag "img_alt")
|
||||
(when (string-match "src=\"\\([^\"]+\\)" parameters)
|
||||
(setq url (match-string 1 parameters))
|
||||
(when (or (null mm-w3m-safe-url-regexp)
|
||||
(string-match mm-w3m-safe-url-regexp url))
|
||||
(if (string-match "^cid:\\(.*\\)" url)
|
||||
;; URLs with cid: have their content stashed in other
|
||||
;; parts of the MIME structure, so just insert them
|
||||
;; immediately.
|
||||
(let ((handle (mm-get-content-id
|
||||
(setq url (match-string 1 url))))
|
||||
image)
|
||||
(when handle
|
||||
(mm-with-part handle
|
||||
(setq image (gnus-create-image (buffer-string)
|
||||
nil t))))
|
||||
(when image
|
||||
(delete-region start end)
|
||||
(gnus-put-image image)))
|
||||
;; Normal, external URL.
|
||||
(if (string-match "^cid:\\(.*\\)" url)
|
||||
;; URLs with cid: have their content stashed in other
|
||||
;; parts of the MIME structure, so just insert them
|
||||
;; immediately.
|
||||
(let ((handle (mm-get-content-id
|
||||
(setq url (match-string 1 url))))
|
||||
image)
|
||||
(when handle
|
||||
(mm-with-part handle
|
||||
(setq image (gnus-create-image (buffer-string)
|
||||
nil t))))
|
||||
(when image
|
||||
(delete-region start end)
|
||||
(gnus-put-image image)))
|
||||
;; Normal, external URL.
|
||||
(when (or (null gnus-blocked-images)
|
||||
(not (string-match gnus-blocked-images url)))
|
||||
(let ((file (gnus-html-image-id url)))
|
||||
(if (file-exists-p file)
|
||||
;; It's already cached, so just insert it.
|
||||
|
|
@ -224,15 +229,15 @@
|
|||
|
||||
;;;###autoload
|
||||
(defun gnus-html-prefetch-images (summary)
|
||||
(let (safe-url-regexp urls)
|
||||
(let (blocked-images urls)
|
||||
(when (buffer-live-p summary)
|
||||
(with-current-buffer summary
|
||||
(setq safe-url-regexp mm-w3m-safe-url-regexp))
|
||||
(setq blocked-images gnus-blocked-images))
|
||||
(save-match-data
|
||||
(while (re-search-forward "<img.*src=[\"']\\([^\"']+\\)" nil t)
|
||||
(let ((url (match-string 1)))
|
||||
(when (or (null safe-url-regexp)
|
||||
(string-match safe-url-regexp url))
|
||||
(when (or (null blocked-images)
|
||||
(not (string-match blocked-images url)))
|
||||
(unless (file-exists-p (gnus-html-image-id url))
|
||||
(push url urls)
|
||||
(push (gnus-html-image-id url) urls)
|
||||
|
|
|
|||
Loading…
Reference in a new issue