Count Feedly subscribers
by
efcl
2013-07-29 [2013/07/29 17:16:52]
Count Feedly subscribers
@@ -1,31 +1,29 @@
-/*
- * @title Count Feedly Subscribers
- * @description count Feedly Subscribers
- * @include http://*
- * @license MIT License
- * @require
- */
-// http://daisukeblog.com/?p=2129
-
-
-var xhr = new XMLHttpRequest();
-var FeedlyAPI = "http://cloud.feedly.com/v3/feeds/feed";
-var targetURL = getRssURLFromDocument();
-var jsonEndPoint = FeedlyAPI + encodeURIComponent("/" + targetURL);
-var yqlAsURL = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from json where url="' + jsonEndPoint + '"') + '&format=json';
-xhr.onload = function () {
- if (xhr.status === 200) {
- var json = JSON.parse(xhr.responseText);
- var results = json.query.results.json;
- /* API Result */
- var siteTitle = results["title"],
- subscribers = results["subscribers"];
- alert(siteTitle + "の購読者: " + subscribers);
+(function main() {
+ var targetURL = getRssURLFromDocument();
+ if(targetURL == null) {
+ alert("Not Found RSS URL");
+ return
}
-};
-xhr.open("get", yqlAsURL, true);
-xhr.send();
-
+ var xhr = new XMLHttpRequest();
+ xhr.onload = function () {
+ if (xhr.status === 200) {
+ var json = JSON.parse(xhr.responseText);
+ var results = json.query.results.json;
+ /* API Result */
+ var siteTitle = results["title"],
+ subscribers = results["subscribers"];
+ alert(siteTitle + "の購読者: " + subscribers);
+ }
+ };
+ xhr.open("get", getYQLAsURL(targetURL), true);
+ xhr.send();
+})();
+function getYQLAsURL(targetURL) {
+ var FeedlyAPI = "http://cloud.feedly.com/v3/feeds/feed";
+ var jsonEndPoint = FeedlyAPI + encodeURIComponent("/" + targetURL);
+ var yqlAsURL = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from json where url="' + jsonEndPoint + '"') + '&format=json';
+ return yqlAsURL;
+}
function getRssURLFromDocument() {
var linkTags = document.getElementsByTagName("link");
for (var i = 0; i < linkTags.length; i++) {
(function main() {
var targetURL = getRssURLFromDocument();
if(targetURL == null) {
alert("Not Found RSS URL");
return
}
var xhr = new XMLHttpRequest();
xhr.onload = function () {
if (xhr.status === 200) {
var json = JSON.parse(xhr.responseText);
var results = json.query.results.json;
/* API Result */
var siteTitle = results["title"],
subscribers = results["subscribers"];
alert(siteTitle + "の購読者: " + subscribers);
}
};
xhr.open("get", getYQLAsURL(targetURL), true);
xhr.send();
})();
function getYQLAsURL(targetURL) {
var FeedlyAPI = "http://cloud.feedly.com/v3/feeds/feed";
var jsonEndPoint = FeedlyAPI + encodeURIComponent("/" + targetURL);
var yqlAsURL = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from json where url="' + jsonEndPoint + '"') + '&format=json';
return yqlAsURL;
}
function getRssURLFromDocument() {
var linkTags = document.getElementsByTagName("link");
for (var i = 0; i < linkTags.length; i++) {
var elem = linkTags[i];
if (elem.getAttribute("rel") == "alternate" && /(xml|rss)/.test(elem.getAttribute("type"))) {
return elem.href;
}
}
}
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。