aboutsummaryrefslogtreecommitdiffstats
path: root/notifier
diff options
context:
space:
mode:
authorsuVene2008-12-15 16:51:03 +0000
committersuVene2008-12-15 16:51:03 +0000
commit8860ec5b9f362284b66a2abbefe7071bf756c768 (patch)
tree604bf1c039220b333621c107518b1c83f15a4f0f /notifier
parent28f7f11fdca052b4cfd8fb3d6628dd9b5e95b201 (diff)
downloadvimperator-plugins-8860ec5b9f362284b66a2abbefe7071bf756c768.tar.bz2
* growl.css - add head link style.
* observer_growl.js - add hyperlink.mod default life 10 seconds. * subject_hatelabo_bottle.js - parse permalink. * notifier.js - follow pluginManager.etc. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26822 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'notifier')
-rw-r--r--notifier/growl.css11
-rw-r--r--notifier/observer_growl.js21
-rw-r--r--notifier/subject_hatelabo_bottle.js21
3 files changed, 34 insertions, 19 deletions
diff --git a/notifier/growl.css b/notifier/growl.css
index 5cbd9ed..0912af4 100644
--- a/notifier/growl.css
+++ b/notifier/growl.css
@@ -45,8 +45,6 @@ div.observer_growl div.observer_growl_notification, div.observer_growl div.obser
background-color: #000;
color: #fff;
opacity: .85;
- filter: alpha(opacity = 85);
- zoom: 1;
width: 235px;
padding: 10px;
margin-top: 5px;
@@ -56,7 +54,6 @@ div.observer_growl div.observer_growl_notification, div.observer_growl div.obser
text-align: left;
display: none;
-moz-border-radius: 5px;
- -webkit-border-radius: 5px;
}
div.observer_growl div.observer_growl_notification {
@@ -68,6 +65,14 @@ div.observer_growl div.observer_growl_notification div.header {
font-size: 10px;
}
+div.observer_growl div.observer_growl_notification div.header a:link {
+ color: #EF6D29;
+}
+
+div.observer_growl div.observer_growl_notification div.header a:hover {
+ color: #A50000;
+}
+
div.observer_growl div.observer_growl_notification div.close {
float: right;
font-weight: bold;
diff --git a/notifier/observer_growl.js b/notifier/observer_growl.js
index 8f973c6..9fb8f88 100644
--- a/notifier/observer_growl.js
+++ b/notifier/observer_growl.js
@@ -1,11 +1,11 @@
// PLUGIN_INFO//{{{
var PLUGIN_INFO =
<VimperatorPlugin>
- <name>{name}</name>
+ <name>{NAME}</name>
<description>notification from the subjects is notified to you by the Growl style.</description>
<description lang="ja">Growl風通知。</description>
<author mail="suvene@zeromemory.info" homepage="http://zeromemory.sblo.jp/">suVene</author>
- <version>0.1.0</version>
+ <version>0.1.1</version>
<minVersion>2.0pre</minVersion>
<maxVersion>2.0pre</maxVersion>
</VimperatorPlugin>;
@@ -24,7 +24,7 @@ var Growl = function() {//{{{
};
Growl.prototype = {
defaults: {
- life: 5000
+ life: 10000
},
initialize: function(dom, container, options) {
this.dom = dom;
@@ -62,12 +62,13 @@ notifier.observer.register(notifier.Observer, {
var doc = window.content.document;
var container = doc.getElementById("observer_growl");
if (!container) {
- doc.body.appendChild(util.xmlToDom(<div id="observer_growl" class="observer_growl top-right"/>, doc));
+ doc.body.appendChild($U.xmlToDom(<div id="observer_growl" class="observer_growl top-right"/>, doc));
container = doc.getElementById("observer_growl");
}
var notification = this.createPopup(message, doc, container);
// TODO: animation!!!
+ var node = doc.importNode(notification, true);
container.appendChild(notification);
if (container.childNodes.length == 1) {
@@ -82,11 +83,17 @@ notifier.observer.register(notifier.Observer, {
var html =
<div class="observer_growl_notification" style="display: block;">
<div class="close">&#215;</div>
- <div class="header">{new XMLList(this.count + ': ' + message.title)}</div>
+ <div class="header">{new XMLList(
+ (message.link ? '<a href="' + message.link + '">' : '') +
+ this.count + ': ' + message.title +
+ (message.link ? '</a>' : '')
+ )}</div>
<div class="message">{new XMLList(message.message || '')}</div>
</div>;
- dom = util.xmlToDom(html, doc, nodes);
- dom.__data__ = new Growl(dom, nodes, message.options.growl);
+ dom = $U.xmlToDom(html, doc, nodes);
+ // TODO: get settings
+ var options = {};
+ dom.__data__ = new Growl(dom, nodes, {});
return dom;
},
checkStatus: function() {
diff --git a/notifier/subject_hatelabo_bottle.js b/notifier/subject_hatelabo_bottle.js
index 2335cad..71a5a27 100644
--- a/notifier/subject_hatelabo_bottle.js
+++ b/notifier/subject_hatelabo_bottle.js
@@ -1,7 +1,7 @@
// PLUGIN_INFO//{{{
var PLUGIN_INFO =
<VimperatorPlugin>
- <name>{name}</name>
+ <name>{NAME}</name>
<description>notifies if hatena bottle was changed.</description>
<description lang="ja">はてなボトルの変更通知。</description>
<author mail="suvene@zeromemory.info" homepage="http://zeromemory.sblo.jp/">suVene</author>
@@ -32,18 +32,21 @@ notifier.subject.register(notifier.SubjectHttp, {
logger.log('preInitialize: ');
},
parse: function(res) {
- // if (this.count == 0) return []; for debug
- if (!res.isSuccess() || res.responseText == '') return null;
- return res.getHTMLDocument('id("body")//div[contains(concat(" ", @class, " "), " entry ")]');
+ // if (this.count == 0) return []; // for debug
+ var doc = res.getHTMLDocument('id("body")//div[contains(concat(" ", @class, " "), " entry ")]');
+ return doc;
},
diff: function(cache, parsed)
parsed.filter(function(element)
!cache.some(function(c) c.textContent == element.textContent)),
- buildMessages: function(diff)
- diff.map(function(d)
- new notifier.Message('Hatelab bottle', $U.xmlSerialize(d), {
- growl: { life: 7000 }
- }))
+ buildMessages: function(diff) {
+ return diff.map($U.bind(this, function(d) {
+ var permalink = $U.getNodesFromXPath('descendant::a[@class="hatena-star-uri"]', d);
+ if (permalink.length > 0)
+ permalink = URL + permalink[0];
+ return new notifier.Message('Hatelab bottle', $U.xmlSerialize(d), permalink)
+ }));
+ }
});
})();