From 422295f4b044038d04a9a9e7d8b51a2d71292f2e Mon Sep 17 00:00:00 2001
From: suVene
Date: Mon, 29 Dec 2008 15:36:08 +0000
Subject: add subject_twitter.scraper.js
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27570 d0d07461-0603-4401-acd4-de1884942a52
---
_libly.js | 11 ++++---
notifier/subject_hatelabo_bottle.js | 6 ++--
notifier/subject_twitter_scraper.js | 61 +++++++++++++++++++++++++++++++++++++
notifier/subject_wassr.js | 2 +-
4 files changed, 72 insertions(+), 8 deletions(-)
create mode 100755 notifier/subject_twitter_scraper.js
diff --git a/_libly.js b/_libly.js
index 259ec11..f7067e0 100644
--- a/_libly.js
+++ b/_libly.js
@@ -12,7 +12,7 @@ var PLUGIN_INFO =
適当なライブラリっぽいものたち。
suVene
MIT
- 0.1.16
+ 0.1.17
1.2
2.0pre
http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/_libly.js
@@ -223,15 +223,18 @@ libly.$U = {//{{{
if (logins[i].username == username)
return [logins[i].username, logins[i].password]
}
- throw 'username notfound.';
+ liberator.log(this.dateFormat(new Date()) +': [getUserAndPassword] username notfound');
+ //throw 'username notfound.';
+ return [];
} else {
return [logins[0].username, logins[0].password];
}
} else {
- throw 'account notfound.';
+ liberator.log(this.dateFormat(new Date()) + ': [getUserAndPassword] account notfound');
+ return [];
}
} catch (e) {
- liberator.log('[getUserAndPassword] error: ' + e, 0);
+ liberator.log(this.dateFormat(new Date()) + ': [getUserAndPassword] error: ' + e, 0);
return null;
}
},
diff --git a/notifier/subject_hatelabo_bottle.js b/notifier/subject_hatelabo_bottle.js
index 7bd93c6..c74756d 100644
--- a/notifier/subject_hatelabo_bottle.js
+++ b/notifier/subject_hatelabo_bottle.js
@@ -46,9 +46,9 @@ notifier.subject.register(notifier.SubjectHttp, {
!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];
+ var permalink = $U.getFirstNodeFromXPath('descendant::a[@class="hatena-star-uri"]', d);
+ if (permalink)
+ permalink = URL + permalink;
return new notifier.Message('Hatelabo bottle', $U.xmlSerialize(d), permalink)
}));
}
diff --git a/notifier/subject_twitter_scraper.js b/notifier/subject_twitter_scraper.js
new file mode 100755
index 0000000..bc68481
--- /dev/null
+++ b/notifier/subject_twitter_scraper.js
@@ -0,0 +1,61 @@
+/*** BEGIN LICENSE BLOCK {{{
+ Copyright (c) 2008 suVene
+
+ distributable under the terms of an MIT-style license.
+ http://www.opensource.jp/licenses/mit-license.html
+}}} END LICENSE BLOCK ***/
+// PLUGIN_INFO//{{{
+var PLUGIN_INFO =
+
+ {NAME}
+ Twitter change notice(need login).
+ Twitter変更通知(ログイン済みであること)。
+ suVene
+ 0.1.0
+ MIT
+ 2.0pre
+ 2.0pre
+ http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/notifier/subject_twitter.js
+;
+//}}}
+(function() {
+
+var notifier = liberator.plugins.notifier;
+if (!notifier) return;
+
+var libly = notifier.libly;
+var $U = libly.$U;
+var logger = $U.getLogger('subject_twitter_scraper');
+
+var URL = 'http://twitter.com/home';
+
+notifier.subject.register(notifier.SubjectHttp, {
+ interval: 60,
+ options: {
+ url: URL,
+ headers: null,
+ extra: {}
+ },
+ 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;
+ },
+ 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)
+ }));
+ }
+});
+
+})();
+// vim: set fdm=marker sw=4 ts=4 sts=0 et:
+
diff --git a/notifier/subject_wassr.js b/notifier/subject_wassr.js
index a1bf6eb..88a302a 100755
--- a/notifier/subject_wassr.js
+++ b/notifier/subject_wassr.js
@@ -39,7 +39,7 @@ notifier.subject.register(notifier.SubjectHttp, {
},
preInitialize: function() {
[username, password] = $U.getUserAndPassword('http://wassr.jp', 'http://wassr.jp');
- this.options.url = URL + username + '&page=4';
+ this.options.url = URL + username;
this.options.extra.username = username;
this.options.extra.password = password;
return (username && password) ? true : false;
--
cgit v1.2.3