aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--subscldr.js35
1 files changed, 27 insertions, 8 deletions
diff --git a/subscldr.js b/subscldr.js
index e868d1b..7fcff99 100644
--- a/subscldr.js
+++ b/subscldr.js
@@ -20,7 +20,7 @@ var PLUGIN_INFO =
<updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/subscldr.js</updateURL>
<author mail="snaka.gml@gmail.com" homepage="http://vimperator.g.hatena.ne.jp/snaka72/">snaka</author>
<license>MIT style license</license>
- <version>0.2</version>
+ <version>0.2.1</version>
<detail><![CDATA[
== Subject ==
Adds subscriptions to livedoor Reader/Fastladder in place.
@@ -195,11 +195,11 @@ liberator.plugins.subscldr = (function() {
feedlinks: []
};
- $LXs('id("feed_candidates")/li', htmldoc).forEach( function(item) {
- var feedlink = $LX('./a[@class="feedlink"]', item);
- var title = $LX('./a[@class="subscribe_list"]', item);
- var users = $LX('./span[@class="subscriber_count"]/a', item);
- var yet = $LX('./input[@name="feedlink"]', item);
+ $LXs('id("feed_candidates")/xhtml:li', htmldoc).forEach( function(item) {
+ var feedlink = $LX('./xhtml:a[@class="feedlink"]', item);
+ var title = $LX('./xhtml:a[@class="subscribe_list"]', item);
+ var users = $LX('./xhtml:span[@class="subscriber_count"]/xhtml:a', item);
+ var yet = $LX('./xhtml:input[@name="feedlink"]', item);
liberator.log("input:" + feedlink.href);
subscribeInfo.feedlinks.push([feedlink.href, (yet != null), (title ? title.textContent : '' ) + ' / ' + (users ? users.textContent : '0 user')]);
});
@@ -235,8 +235,27 @@ liberator.plugins.subscldr = (function() {
}
// For convenience
- function $LXs(a,b) libly.$U.getNodesFromXPath(a,b);
- function $LX(a,b) libly.$U.getFirstNodeFromXPath(a,b);
+ //function $LXs(a,b) libly.$U.getNodesFromXPath(a,b);
+ //function $LX(a,b) libly.$U.getFirstNodeFromXPath(a,b);
+
+ function nsResolver(prefix) {
+ var ns = { 'xhtml': 'http://www.w3.org/1999/xhtml' };
+ return ns[prefix] || null;
+ }
+
+ function $LXs(a, b) {
+ var ret = [];
+ var res = (b.ownerDocument || b).evaluate(a, b, nsResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0; i < res.snapshotLength; i++) {
+ ret.push(res.snapshotItem(i));
+ }
+ return ret;
+ }
+
+ function $LX(a, b) {
+ var res = (b.ownerDocument || b).evaluate(a, b, nsResolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
+ return res.singleNodeValue || null;
+ }
// }}}
return PUBLICS;