Commit 51dee5ef authored by Katsumi Yamaoka's avatar Katsumi Yamaoka
Browse files

gnus-html.el: Introduce a new variable, gnus-blocked-images, and use that...

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>.
parent a2b2dd84
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
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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment