From d8800c095a67010a0dbaea59b74e9ffe300a9fa6 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Tue, 16 Feb 2010 17:32:19 -0500 Subject: [PATCH] NotificationDaemon: add rewriteRules infrastructure, use it for xchat Changes notifications like: XChat: Private message from: danw (GimpNet) blah... to danw: blah blah blah blah (the "XChat" being unnecessary since there's already an xchat icon there anyway.) https://bugzilla.gnome.org/show_bug.cgi?id=608915 --- js/ui/notificationDaemon.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/js/ui/notificationDaemon.js b/js/ui/notificationDaemon.js index de747141e..6e53f1a7d 100644 --- a/js/ui/notificationDaemon.js +++ b/js/ui/notificationDaemon.js @@ -69,6 +69,16 @@ const Urgency = { CRITICAL: 2 }; +const rewriteRules = { + 'XChat': [ + { pattern: /^XChat: Private message from: (\S*) \(.*\)$/, + replacement: '<$1>' }, + { pattern: /^XChat: New public message from: (\S*) \((.*)\)$/, + replacement: '$2 <$1>' }, + { pattern: /^XChat: Highlighted message from: (\S*) \((.*)\)$/, + replacement: '$2 <$1>' } + ] +}; function NotificationDaemon() { this._init(); } @@ -150,6 +160,15 @@ NotificationDaemon.prototype = { summary = GLib.markup_escape_text(summary, -1); + let rewrites = rewriteRules[appName]; + if (rewrites) { + for (let i = 0; i < rewrites.length; i++) { + let rule = rewrites[i]; + if (summary.search(rule.pattern) != -1) + summary = summary.replace(rule.pattern, rule.replacement); + } + } + let notification = new MessageTray.Notification(source, summary, body, true); if (actions.length) { for (let i = 0; i < actions.length - 1; i += 2)