Check feed at the YQL console

  • /*
     * @title Check feed at the YQL console
     * @description フィードらしきものを YQLコンソールで見る(要ログイン)
     * @include http://*
     * @license MIT License
     * @require
     */
    (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 です。

History

  1. 2015/12/08 00:34:09 - 2015-12-08
  2. 2015/12/08 00:22:31 - 2015-12-08