From: Julien Danjou Date: Thu, 4 Oct 2012 13:11:49 +0000 (+0200) Subject: Rename erc-notifications.el to erc-desktop-notifications.el X-Git-Tag: emacs-24.2.90~241^2~20 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6938736c79bf1d14fcd10a4235da861b661eebb5;p=emacs.git Rename erc-notifications.el to erc-desktop-notifications.el * erc-desktop-notifications.el: Rename from erc-notifications to avoid clash with 8+3 filename format and erc-notify.el. --- diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 348765036ea..3558a8a90b5 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-04 Julien Danjou + + * erc-desktop-notifications.el: Rename from erc-notifications to + avoid clash with 8+3 filename format and erc-notify.el. + 2012-09-25 Chong Yidong * erc.el (erc-send-command): Use define-obsolete-function-alias. diff --git a/lisp/erc/erc-desktop-notifications.el b/lisp/erc/erc-desktop-notifications.el new file mode 100644 index 00000000000..57b93f43219 --- /dev/null +++ b/lisp/erc/erc-desktop-notifications.el @@ -0,0 +1,90 @@ +;; erc-desktop-notifications.el -- Send notification on PRIVMSG or mentions + +;; Copyright (C) 2012 Free Software Foundation, Inc. + +;; Author: Julien Danjou +;; Keywords: comm + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;; This implements notifications using `notifications-notify' on +;; PRIVMSG received and on public nickname mentions. + +;;; Code: + +(require 'erc) +(require 'xml) +(require 'notifications) +(require 'erc-match) +(require 'dbus) + +(defgroup erc-notifications nil + "Send notifications on PRIVMSG or mentions." + :group 'erc) + +(defvar erc-notifications-last-notification nil + "Last notification id.") + +(defcustom erc-notifications-icon nil + "Icon to use for notification." + :group 'erc-notifications + :type 'file) + +(defun erc-notifications-notify (nick msg) + "Notify that NICK send some MSG. +This will replace the last notification sent with this function." + (dbus-ignore-errors + (setq erc-notifications-last-notification + (notifications-notify :title (xml-escape-string nick) + :body (xml-escape-string msg) + :replaces-id erc-notifications-last-notification + :app-icon erc-notifications-icon)))) + +(defun erc-notifications-PRIVMSG (proc parsed) + (let ((nick (car (erc-parse-user (erc-response.sender parsed)))) + (target (car (erc-response.command-args parsed))) + (msg (erc-response.contents parsed))) + (when (and (erc-current-nick-p target) + (not (and (boundp 'erc-track-exclude) + (member nick erc-track-exclude))) + (not (erc-is-message-ctcp-and-not-action-p msg))) + (erc-notifications-notify nick msg))) + ;; Return nil to continue processing by ERC + nil) + +(defun erc-notifications-notify-on-match (match-type nickuserhost msg) + (when (eq match-type 'current-nick) + (let ((nick (nth 0 (erc-parse-user nickuserhost)))) + (unless (or (string-match-p "^Server:" nick) + (when (boundp 'erc-track-exclude) + (member nick erc-track-exclude))) + (erc-notifications-notify nick msg))))) + +;;;###autoload(autoload 'erc-notifications-mode "erc-desktop-notifications" "" t) +(define-erc-module notifications nil + "Send notifications on private message reception and mentions." + ;; Enable + ((add-hook 'erc-server-PRIVMSG-functions 'erc-notifications-PRIVMSG) + (add-hook 'erc-text-matched-hook 'erc-notifications-notify-on-match)) + ;; Disable + ((remove-hook 'erc-server-PRIVMSG-functions 'erc-notifications-PRIVMSG) + (remove-hook 'erc-text-matched-hook 'erc-notifications-notify-on-match))) + +(provide 'erc-desktop-notifications) + +;;; erc-desktop-notifications.el ends here diff --git a/lisp/erc/erc-notifications.el b/lisp/erc/erc-notifications.el deleted file mode 100644 index 4faffc913c5..00000000000 --- a/lisp/erc/erc-notifications.el +++ /dev/null @@ -1,90 +0,0 @@ -;; erc-notifications.el -- Send notification on PRIVMSG or mentions - -;; Copyright (C) 2012 Free Software Foundation, Inc. - -;; Author: Julien Danjou -;; Keywords: comm - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs. If not, see . - -;;; Commentary: - -;; This implements notifications using `notifications-notify' on -;; PRIVMSG received and on public nickname mentions. - -;;; Code: - -(require 'erc) -(require 'xml) -(require 'notifications) -(require 'erc-match) -(require 'dbus) - -(defgroup erc-notifications nil - "Send notifications on PRIVMSG or mentions." - :group 'erc) - -(defvar erc-notifications-last-notification nil - "Last notification id.") - -(defcustom erc-notifications-icon nil - "Icon to use for notification." - :group 'erc-notifications - :type 'file) - -(defun erc-notifications-notify (nick msg) - "Notify that NICK send some MSG. -This will replace the last notification sent with this function." - (dbus-ignore-errors - (setq erc-notifications-last-notification - (notifications-notify :title (xml-escape-string nick) - :body (xml-escape-string msg) - :replaces-id erc-notifications-last-notification - :app-icon erc-notifications-icon)))) - -(defun erc-notifications-PRIVMSG (proc parsed) - (let ((nick (car (erc-parse-user (erc-response.sender parsed)))) - (target (car (erc-response.command-args parsed))) - (msg (erc-response.contents parsed))) - (when (and (erc-current-nick-p target) - (not (and (boundp 'erc-track-exclude) - (member nick erc-track-exclude))) - (not (erc-is-message-ctcp-and-not-action-p msg))) - (erc-notifications-notify nick msg))) - ;; Return nil to continue processing by ERC - nil) - -(defun erc-notifications-notify-on-match (match-type nickuserhost msg) - (when (eq match-type 'current-nick) - (let ((nick (nth 0 (erc-parse-user nickuserhost)))) - (unless (or (string-match-p "^Server:" nick) - (when (boundp 'erc-track-exclude) - (member nick erc-track-exclude))) - (erc-notifications-notify nick msg))))) - -;;;###autoload(autoload 'erc-notifications-mode "erc-notifications" "" t) -(define-erc-module notifications nil - "Send notifications on private message reception and mentions." - ;; Enable - ((add-hook 'erc-server-PRIVMSG-functions 'erc-notifications-PRIVMSG) - (add-hook 'erc-text-matched-hook 'erc-notifications-notify-on-match)) - ;; Disable - ((remove-hook 'erc-server-PRIVMSG-functions 'erc-notifications-PRIVMSG) - (remove-hook 'erc-text-matched-hook 'erc-notifications-notify-on-match))) - -(provide 'erc-notifications) - -;;; erc-notifications.el ends here