X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus-notifications.el;h=ee1083d80056b0e1ae83c2b250fd14a5a76d3c42;hb=504bdfe73feca8d0222ca33789120c4ec6c4d1ca;hp=f9c2d309a3513af2bd7e694655732b1c9eae9a35;hpb=c23b137e5e82992f99c3972fe871eaef9fb292a2;p=gnus diff --git a/lisp/gnus-notifications.el b/lisp/gnus-notifications.el index f9c2d309a..ee1083d80 100644 --- a/lisp/gnus-notifications.el +++ b/lisp/gnus-notifications.el @@ -1,6 +1,6 @@ ;; gnus-notifications.el -- Send notification on new message in Gnus -;; Copyright (C) 2012 Free Software Foundation, Inc. +;; Copyright (C) 2012-2014 Free Software Foundation, Inc. ;; Author: Julien Danjou ;; Keywords: news @@ -42,6 +42,7 @@ (defgroup gnus-notifications nil "Send notifications on new message in Gnus." + :version "24.3" :group 'gnus) (defcustom gnus-notifications-use-google-contacts t @@ -63,7 +64,8 @@ not get notifications." (defcustom gnus-notifications-timeout nil "Timeout used for notifications sent via `notifications-notify'." - :type 'integer + :type '(choice (const :tag "Server default" nil) + (integer :tag "Milliseconds")) :group 'gnus-notifications) (defvar gnus-notifications-sent nil @@ -90,16 +92,19 @@ Return a notification id if any, or t on success." :body subject :actions '("read" "Read") :on-action 'gnus-notifications-action - :app-icon (gnus-funcall-no-warning - 'image-search-load-path "gnus/gnus.png") + :app-icon (or photo-file + (gnus-funcall-no-warning + 'image-search-load-path "gnus/gnus.png")) :app-name "Gnus" :category "email.arrived" - :timeout gnus-notifications-timeout - :image-path photo-file) + :timeout gnus-notifications-timeout) (message "New message from %s: %s" from subject) ;; Don't return an id t)) +(declare-function gravatar-retrieve-synchronously "gravatar.el" + (mail-address)) + (defun gnus-notifications-get-photo (mail-address) "Get photo for mail address." (let ((google-photo (when (and gnus-notifications-use-google-contacts @@ -166,8 +171,10 @@ This is typically a function to add in (or (mail-fetch-field "From") ""))) (address (cadr address-components))) ;; Ignore mails from ourselves - (unless (gnus-string-match-p gnus-ignored-from-addresses - address) + (unless (and gnus-ignored-from-addresses + address + (gnus-string-match-p gnus-ignored-from-addresses + address)) (let* ((photo-file (gnus-notifications-get-photo-file address)) (notification-id (gnus-notifications-notify (or (car address-components) address)