Check feed at the YQL console
by
maRk
2015-12-08 [2015/12/08 00:34:09]
フィードらしきものを YQLコンソールで見る(要ログイン)
/*
* @title Check feed at the YQL console
* @description フィードらしきものを YQLコンソールで見る(要ログイン)
* @include http://*
* @license MIT License
* @require
* @javascript_url
*/
(function () {
var link = document.querySelectorAll('link[rel="alternate"]');
var this_feed = getFeed(link);
if (this_feed[0] && !document.getElementById('show-YQL-link')) {
var YQL = 'https://developer.yahoo.com/yql/console/#h=select+*+from+feed+where+url%3D\'';
var html = '';
html += '<a href="#"> × </a><ul style="margin:1em;">';
for (var i = 0; i < this_feed.length; i++) {
html += '<li><a target="_blank" href="' + YQL + encodeURIComponent(this_feed[i]) + '\'">' + this_feed[i] + '</a></li>';
}
html += '</ul></div>';
var div = document.createElement('DIV');
div.innerHTML = html;
div.id = 'show-YQL-link';
div.style.margin = '1em';
div.style.zIndex = '2147483647';
div.setAttribute('onclick', 'remove(this)');
return document.body.insertBefore(div, document.body.firstChild);
} else {
return;
}
function getFeed(f) {
var feeds = [];
Array.prototype.forEach.call(f, function (feed) {
if (feed.type.match(/^application\/(rss\+xml|atom\+xml|rdf\+xml|xml)$/)) {
feeds.push(feed.href);
}
});
if (!feeds[0]) {
feeds = '';
}
// console.log(feeds);
return feeds;
}
function remove(e) {
return e.removeChild(e.parentNode.firstChild);
}
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。