diff options
-rw-r--r-- | _libly.js | 10 | ||||
-rw-r--r-- | notifier/observer_growl.js | 36 | ||||
-rw-r--r-- | notifier/subject_hatena_message.js | 21 | ||||
-rw-r--r--[-rwxr-xr-x] | notifier/subject_liberator_echomsg.js | 4 | ||||
-rw-r--r--[-rwxr-xr-x] | notifier/subject_twitter_scraper.js | 17 | ||||
-rw-r--r--[-rwxr-xr-x] | notifier/subject_wassr.js | 15 | ||||
-rw-r--r--[-rwxr-xr-x] | notifier/subject_weather_yahoo.js | 5 |
7 files changed, 47 insertions, 61 deletions
@@ -522,8 +522,6 @@ libly.Wedata.prototype = { var STORE_KEY = 'plugins-libly-wedata-' + this.dbname + '-items'; var store = storage.newMap(STORE_KEY, true); - expire = expire || 0; - if (store && store.get('data') && new Date(store.get('expire')) > new Date()) { logger.log('return cache. '); store.get('data').forEach(function(item) { if (typeof itemCallback == 'function') itemCallback(item); }); @@ -532,6 +530,8 @@ libly.Wedata.prototype = { return; } + expire = expire || 0; + function errDispatcher(msg, cache) { if (cache) { logger.log('return cache. -> ' + msg); @@ -550,12 +550,12 @@ libly.Wedata.prototype = { if (!text) { errDispatcher('respons is null.', store.get('data')); return; - }; + } var json = libly.$U.evalJson(text); if (!json) { errDispatcher('uailed eval json.', store.get('data')); return; - }; + } store.set('expire', new Date(new Date().getTime() + expire).toString()); store.set('data', json); store.save(); @@ -564,7 +564,7 @@ libly.Wedata.prototype = { finalCallback(true, json); })); req.addEventListener('onFailure', function() errDispatcher('onFailure')); - req.addEventListener('onException', function() errDispatcher('onException') ); + req.addEventListener('onException', function() errDispatcher('onException')); req.get(); } }; diff --git a/notifier/observer_growl.js b/notifier/observer_growl.js index 1c54db3..a10f2e3 100644 --- a/notifier/observer_growl.js +++ b/notifier/observer_growl.js @@ -72,7 +72,7 @@ Growl.prototype = { this.options = $U.extend(this.defaults, (options || {})); this.message = message; var div = node.getElementsByTagName('div'); - div[0].addEventListener("click", $U.bind(this, this.remove), false); + div[0].addEventListener('click', $U.bind(this, this.remove), false); }, remove: function() { // TODO: animation!!!! @@ -104,10 +104,10 @@ notifier.observer.register(notifier.Observer, { update: function(message) { var doc = window.content.document; - var container = doc.getElementById("observer_growl"); + var container = doc.getElementById('observer_growl'); if (!container) { doc.body.appendChild($U.xmlToDom(<div id="observer_growl" class="observer_growl top-right"/>, doc)); - container = doc.getElementById("observer_growl"); + container = doc.getElementById('observer_growl'); window.content.addEventListener('unload', $U.bind(this, function() { if (container.__interval__) { clearInterval(container.__interval__); @@ -115,7 +115,7 @@ notifier.observer.register(notifier.Observer, { } }), false); } - var closer = doc.getElementById("observer_growl_closer"); + var closer = doc.getElementById('observer_growl_closer'); var notification = this.createPopup(message, doc, container); // TODO: animation!!! @@ -124,13 +124,13 @@ notifier.observer.register(notifier.Observer, { if (container.childNodes.length == 1 && !container.__interval__) { let interval = setInterval($U.bind(this, this.checkStatus), 1000); - this.intervalIDs[interval] = true; + this.intervalIDs[interval] = true; container.__interval__ = interval; } else if (container.childNodes.length >= 2) { if (!closer) { closer = $U.xmlToDom(<div id="observer_growl_closer" class="observer_growl_closer center" style="display: block;">[close all]</div>, doc); container.insertBefore(closer, container.firstChild); - closer.addEventListener("click", $U.bind(this, this.removeAll, 'test'), false); + closer.addEventListener('click', $U.bind(this, this.removeAll, 'test'), false); } } @@ -153,10 +153,10 @@ notifier.observer.register(notifier.Observer, { return node; }, checkStatus: function(force) { - force = force == 'EVENT_REMOVE_ALL' ? true : false; + force = force == 'EVENT_REMOVE_ALL'; var doc = window.content.document; - var container = doc.getElementById("observer_growl"); + var container = doc.getElementById('observer_growl'); if (!container) return; var removeNodes = []; @@ -182,23 +182,19 @@ notifier.observer.register(notifier.Observer, { }, canRemove: function(growl) { - var ret = false; + if (!growl || !growl.created || growl.options.sticky) return false; - if (!growl || !growl.created) return ret; - if (growl.options.sticky) return ret; + var text = growl.message.title + ' ' + + growl.message.message.replace(/(?:<[^>]*>)+/g, ''); + if (growl.options.sticky_keywords.some(function(k) text.indexOf(k) > -1) || + growl.created.getTime() + growl.options.life * 1000 > new Date().getTime()) + return false; - var text = growl.message.title + ' ' + growl.message.message.replace(/<.*?>/g, ''); - if (growl.options.sticky_keywords.some(function(k) text.indexOf(k) > -1)) return ret; - - if (growl.created.getTime() + (growl.options.life * 1000) > (new Date()).getTime()) - return ret; - - ret = true; - return ret; + return true; }, removeAll: function(a) { this.checkStatus('EVENT_REMOVE_ALL'); - var closer = window.content.document.getElementById("observer_growl_closer"); + var closer = window.content.document.getElementById('observer_growl_closer'); if (closer) closer.parentNode.removeChild(closer); }, diff --git a/notifier/subject_hatena_message.js b/notifier/subject_hatena_message.js index d14878a..e4d6955 100644 --- a/notifier/subject_hatena_message.js +++ b/notifier/subject_hatena_message.js @@ -30,27 +30,24 @@ notifier.subject.register(notifier.SubjectHttp, { extra: {} }, preInitialize: function() { - [username, password] = $U.getUserAndPassword('https://www.hatena.ne.jp', 'https://www.hatena.ne.jp'); + var [username, password] = $U.getUserAndPassword('https://www.hatena.ne.jp', 'https://www.hatena.ne.jp'); this.options.extra.username = username; this.options.extra.password = password; return (username && password) ? true : false; }, - parse: function(res) { - var doc = res.getHTMLDocument('//table[@class="list"]//tr'); - return doc; - }, + parse: function(res) + res.getHTMLDocument('//table[@class="list"]//tr'), 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) { + buildMessages: function(diff) + diff.map($U.bind(this, function(d) { var anchor = $U.getFirstNodeFromXPath('descendant::a[@class="message-title"]', d); - var permalink = URL + (anchor.href ? anchor.href : ""); - var [title, message, date] = [elm.textContent.replace(/^\s+|\s+$/g,"").replace(/>\s+</g,"><") for ([i,elm] in Iterator(d.cells))]; + var permalink = URL + (anchor.href ? anchor.href : ''); + var [title, message, date] = [elm.textContent.replace(/^\s+|\s+$/g,'').replace(/>\s+</g,'><') for ([i,elm] in Iterator(d.cells))]; var html = title + ' (' + date + ')<br/>' + message; - return new notifier.Message('Hatena::Message', html, permalink) - })); - } + return new notifier.Message('Hatena::Message', html, permalink); + })) }); })(); diff --git a/notifier/subject_liberator_echomsg.js b/notifier/subject_liberator_echomsg.js index 5c963ef..b77f2ab 100755..100644 --- a/notifier/subject_liberator_echomsg.js +++ b/notifier/subject_liberator_echomsg.js @@ -57,10 +57,10 @@ notifier.subject.register(notifier.Subject, { check: function() { try { this.__updating__ = true; - this.messages = this.messages.filter(function(m) !this.filter.some(function(f) (m.indexOf(f) > -1 || m.match(f))), this); + this.messages = this.messages.filter(function(m) !this.filter.some(function(f) m.indexOf(f) > -1 || m.match(f) ? true : false), this); if (!this.messages.length) return; - var msg = '<ul><li>' + this.messages.join('</li><li>') + '</li></ul>'; + let msg = '<ul><li>' + this.messages.join('</li><li>') + '</li></ul>'; this.messages = []; this.notify(new notifier.Message('liberator.echomsg', msg)); diff --git a/notifier/subject_twitter_scraper.js b/notifier/subject_twitter_scraper.js index e23e3e5..d935249 100755..100644 --- a/notifier/subject_twitter_scraper.js +++ b/notifier/subject_twitter_scraper.js @@ -38,22 +38,19 @@ notifier.subject.register(notifier.SubjectHttp, { }, parse: function(res) { // if (this.count == 0) return []; // for debug - var doc = res.getHTMLDocument('id("timeline_body")/tr[@class=contains(concat(" ", @class, " "), " hentry ")]'); - return doc; + return res.getHTMLDocument('id("timeline_body")/tr[@class=contains(concat(" ", @class, " "), " hentry ")]'); }, diff: function(cache, parsed) { var self = this; return parsed.filter(function(element) !cache.some(function(c) self.getContent(c) == self.getContent(element))); }, - getContent: function(element) - $U.getFirstNodeFromXPath('descendant::span[@class="entry-content"]', element).textContent, - buildMessages: function(diff) { - return diff.map($U.bind(this, function(d) { - var permalink = $U.getFirstNodeFromXPath('descendant::a[@class="entry-date"]', d); - return new notifier.Message('Twitter', $U.xmlSerialize(d), permalink) - })); - } + getContent: function(element) + $U.getFirstNodeFromXPath('descendant::span[@class="entry-content"]', element).textContent, + buildMessages: function(diff) + diff.map($U.bind(this, function(d) + new notifier.Message('Twitter', $U.xmlSerialize(d), + $U.getFirstNodeFromXPath('descendant::a[@class="entry-date"]', d)))) }); })(); diff --git a/notifier/subject_wassr.js b/notifier/subject_wassr.js index 88a302a..6664889 100755..100644 --- a/notifier/subject_wassr.js +++ b/notifier/subject_wassr.js @@ -38,7 +38,7 @@ notifier.subject.register(notifier.SubjectHttp, { extra: {} }, preInitialize: function() { - [username, password] = $U.getUserAndPassword('http://wassr.jp', 'http://wassr.jp'); + var [username, password] = $U.getUserAndPassword('http://wassr.jp', 'http://wassr.jp'); this.options.url = URL + username; this.options.extra.username = username; this.options.extra.password = password; @@ -51,19 +51,16 @@ notifier.subject.register(notifier.SubjectHttp, { diff: function(cache, parsed) parsed.filter(function(item) !cache.some(function(c) c.html == item.html)), - buildMessages: function(diff) { - return diff.map($U.bind(this, function(d) { - var html = <div> + buildMessages: function(diff) + diff.map($U.bind(this, function(d) + new notifier.Message('Wassr', <div> {d.reply_status_url ? <p><a href={d.reply_status_url}>{'> ' + d.reply_message + ' by ' + d.reply_user_nick}</a></p> : ''} <p> <img src={d.user.profile_image_url} alt={d.user_login_id} width="16" height="16"/> - {d.photo_thumbnail_url ? <img src={d.photo_thumbnail_url}/> : ''} + {d.photo_thumbnail_url ? <img src={d.photo_thumbnail_url} alt=""/> : ''} {d.html || ''} </p> - </div>.toString(); - return new notifier.Message('Wassr', html, d.link) - })); - } + </div>.toString(), d.link))) }); })(); diff --git a/notifier/subject_weather_yahoo.js b/notifier/subject_weather_yahoo.js index 9f67997..2868140 100755..100644 --- a/notifier/subject_weather_yahoo.js +++ b/notifier/subject_weather_yahoo.js @@ -105,9 +105,8 @@ URLs.forEach(function(url) { } return source; }, - buildMessages: function(diff) { - return new notifier.Message('Weather forecast by Yahoo!', $U.xmlSerialize(diff), url); - } + buildMessages: function(diff) + new notifier.Message('Weather forecast by Yahoo!', $U.xmlSerialize(diff), url) }); }); |