// PLUGIN_INFO//{{{
var PLUGIN_INFO =
{NAME}
notifies if hatena bottle was changed.
はてなボトルの変更通知。
suVene
0.1.1
2.0pre
2.0pre
;
//}}}
(function() {
var notifier = liberator.plugins.notifier;
if (!notifier) return;
var libly = notifier.libly;
var $U = libly.$U;
var logger = $U.getLogger('subject_hatelabo_bottle');
var URL = 'http://bottle.hatelabo.jp';
notifier.subject.register(notifier.SubjectHttp, {
interval: 60,
options: {
url: URL,
headers: null,
extra: null
},
preInitialize: function() {
logger.log('preInitialize: ');
},
parse: function(res) {
// 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) {
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)
}));
}
});
})();
// vim: set fdm=marker sw=4 ts=4 sts=0 et:
ugins/about/?h=pixiv/desynchronization'>aboutsummaryrefslogtreecommitdiffstats
|
blob: 780dd39758d48e5759990fd8409d6b2a6c1af8b6 (
plain)