Greasy Fork is available in English.

SkipAntennaSite

アンテナサイトがうざい

// ==UserScript==
// @name        SkipAntennaSite
// @namespace   https://greasyfork.org/ja/scripts/16465-skipantennasite
// @description アンテナサイトがうざい
// @version     1.39
// @license     MIT License
// @grant       none
// @include     http*://2ch-c.net/*
// @include     http*://get2ch.net/*
// @include     http*://the-3rd.net/*
// @include     http*://matomeantena.com/*
// @include     http*://moudamepo.com/*
// @include     http*://newmofu.doorblog.jp/*
// @include     http*://newota.blog.fc2.com/*
// @include     http*://newresu1.blog.fc2.com/*
// @include     http*://newyaku.blog.fc2.com/*
// @include     http*://newero1.blog.fc2.com/*
// @include     http*://blog-news.doorblog.jp/*
// @include     http*://nullpoantenna.com/*
// @include     http*://newpuru.doorblog.jp/*
// @include     http*://besttrendnews.net/*
// @include     http*://2ch.logpo.jp/*
// @include     http*://s.2ch.logpo.jp/*
// @include     http*://anaguro.yanen.org/*
// @include     http*://a.anipo.jp/*
// @include     http*://katuru.com/*
// @include     http*://news-choice.net/*
// @include     http*://img.favsite.jp/*
// @include     http*://wk-tk.net/*
// @include     http*://newser.cc/*
// @include     http*://kita-kore.com/*
// @include     http*://2channeler.com/*
// @include     http*://matomeja.jp/*
// @include     http*://shimamurakun.net/*
// @include     http*://kateich.net/*
// @include     http*://2ch-2.net/*
// @include     http*://2ch-n.net/*
// @include     http*://nantuka.blog119.fc2.com/*
// @include     http*://lifeantenna.com/*
// @include     http*://giko-news.com/*
// @include     http*://matome-surume.com/*
// @include     http*://blog.livedoor.jp/houkagoguide/*
// @include     http*://blog.livedoor.jp/ind_bikkuri/*
// @include     http*://blog.livedoor.jp/hioaysdnhjlk/*
// @include     http*://blog.livedoor.jp/warota_a_lot/*
// @include     http*://blog.livedoor.jp/kijyonotsudoi/*
// @include     http*://blog.livedoor.jp/magicalnews/*
// @include     http*://blog.livedoor.jp/gndai/*
// @include     http*://blog.livedoor.jp/tokusetsu_news/*
// @include     http*://blog.livedoor.jp/xexnews/*
// @include     http*://blog.livedoor.jp/navippu/*
// @include     http*://blog.livedoor.jp/geisuku/*
// @include     http*://watch2ch.2chblog.jp/*
// @include     http*://2chfinder.com/*
// @include     http*://gurugurulog.com/*
// @include     http*://www.j-antenna.com/*
// @include     http*://headline.mtfj.net/*
// @include     http*://antennachan.com/*
// @include     http*://www.ne.jp/asahi/*
// @include     http*://matometatta-news.net/*
// @include     http*://2ch-matome.com/*
// @include     http*://tokkaban.com/*
// @include     http*://owata.chann.net/*
// @include     http*://newspickup.com/*
// @include     http*://2ch-m.net/*
// @include     http*://baseball-mag.net/*
// @include     http*://new-soku.net/*
// @include     http*://www.2ch-antenna.net/*
// @include     http*://gikotena.net/*
// @include     http*://matonet.info/*
// @include     http*://minkurumato.net/*
// @include     http*://news-three-stars.net/*
// @include     http*://news-select.net/*
// @include     http*://harikonotora.net/*
// @include     http*://rss.harikonotora.net/*
// @include     http*://www.pantena.net/*
// @include     http*://matomeume.com/*
// @include     http*://matomesakura.com/*
// @include     http*://matome-ch.com/*
// @include     http*://0matome.com/*
// @include     http*://www.2chantena.info/*
// @include     http*://rotco.jp/*
// @include     http*://uhouho2ch.com/*
// @include     http*://matomena.jp/*
// @include     http*://nkijo.com/*
// @include     http*://2ch-antenna.com/*
// @include     http*://www.tukuruyoantena.com/*
// @include     http*://www.まとめニュース.com/*
// @include     http*://www.xn--o9j0bk8t7cqhlg.com/*
// @include     http*://2chmatomeru.info/*
// @include     http*://waniantenna.com/*
// @include     http*://gossip2.net/*
// @include     http*://kojikisokuhou.com/*
// @include     http*://multi-media.doorblog.jp/*
// @include     http*://blogtsurugi.blog38.fc2.com/*
// @include     http*://konowaro.net/*
// @include     http*://giko2ch.net/*
// @include     http*://dariusnews.blog11.fc2.com/*
// @include     http*://2ch-a.info/*
// @include     http*://www.matomech.com/*
// @include     http*://www.so9.jp/*
// @include     http*://matonew.doorblog.jp/*
// @include     http*://cawaii2ch.com/*
// @include     http*://killing-time.biz/*
// @include     http*://2ch-spot.com/*
// @include     http*://o-2ch.net/*
// @include     http*://jyouhouya3.net/*
// @include     http*://www.sechigara.net/*
// @include     http*://cyousokuvip.com/*
// @include     http*://*.warotamaker.com/*
// @include     http*://*.warotah.com/*
// @include     http*://*.warotamaker2.com/*
// @include     http*://seiyuu-antena.antena-nijimatome.com/*
// @include     http*://seiyuu.seiyuu-antenna.info/*
// @include     http*://seiyuu.antena-matome-2ch.com/*
// @include     http*://*.antenam.info/*
// @include     http*://*.antenam.biz/*
// @include     http*://*.antenam.jp/*
// @include     http*://*.atna.jp/*
// @include     http*://*.a-antenam.info/*
// @include     http*://voice.lady.jp/*
// @include     http*://koebuta.net/*
// @include     http*://girlsreader.com/*
// @include     http*://kuma-log.net/*
// @include     http*://a-matome.com/*
// @include     http*://antenna.gift/*
// @include     http*://matomatome.com/*
// @include     http*://www.antennash.com/*
// @include     http*://antenna-ga.com/*
// @include     http*://lifech.2-d.jp/*
// @include     http*://katei-matome.com/*
// @include     http*://news-pod.net/*
// @include     http*://2chnavi.net/*
// @include     http*://2ch.anything-navi.net/*
// @include     http*://twobeko.com/*
// @include     http*://girls-antena.2chblog.jp/*
// @include     http*://*.readers.jp/*
// @include     http*://webnew.net/*
// @include     http*://geinou2news.blog.fc2.com/*
// @include     http*://matomea.net/*
// @include     http*://newsoku.jp/*
// @include     http*://*.nantena.pw/*
// @include     http*://oniyomediary.com/*
// @include     http*://1000mg.sblo.jp/*
// @include     http*://netaatoz.blog21.fc2.com/*
// @include     http*://2ch-matome.net/*
// @include     http*://koisoku.net/*
// @include     http*://buromato.com/*
// @include     http*://nyan.eggtree.net/*
// @include     http*://ii-antenna.net/*
// @include     http*://matome-alpha.com/*
// @include     http*://fxmtm.net/*
// @include     http*://merry-news.com/*
// @include     http*://clipch.com/*
// @include     http*://aube0.com/*
// @include     http*://xnews.jp/*
// @include     http*://nanj-of-us.main.jp/*
// @include     http*://nanj-matome.com/*
// @include     http*://yomyo.jp/*
// @include     http*://365dys.com/*
// @include     http*://sta-navi.net/*
// @include     http*://moyashi.me/*
// @include     http*://sp.2chmap.com/*
// @include     http*://2chmap.com/*
// @include     http*://antenna.shinobi.jp/*
// @include     http*://trend-pr.com/*
// @include     http*://uchitome.com/*
// @include     http*://vipper774.blog115.fc2.com/*
// @include     http*://2ch-matomato.com/*
// @include     http*://nanj.matome-ch.com/*
// @include     http*://afo-news.com/*
// @include     http*://nanjallstars.net/*
// @include     http*://nanj.an-matome.com/*
// @include     http*://antennabank.com/*
// @include     http*://newsnow-2ch.com/*
// @include     http*://mh12.info/*
// @include     http*://killmej.com/*
// @include     http*://mt-antenna.info/*
// @include     http*://thebaseball.xyz/*
// @include     http*://bouyomi.jp/*
// @include     http*://digital-mixnews.com/*
// @include     http*://news.cnects.net/*
// @include     http*://athena.sakuratan.com/*
// @include     http*://digital-soccer.net/*
// @include     http*://2chmatome-news.com/*
// @include     http*://nanjheadline.com/*
// @include     http*://alfalfalfa.com/*
// @include     http*://yajiuma-antena.com/*
// @include     http*://owt.io/*
// @include     http*://kyuusai2nd.net/*
// @include     http*://kanasoku.info/*
// @include     http*://rd.app-heaven.net/*
// @include     http*://applinews24.com/*
// @include     http*://*.antenna-3.com/*
// @include     http*://2ch-mma.com/*
// @include     http*://matomenomori.net/*
// @include     http*://pc2.matomenomori.net/*
// @include     http*://newsquo.net/*
// @include     http*://egone.org/*
// @include     http*://hapiyaku.com/*
// @include     http*://yuukoku.net/*
// @include     http*://isekaitraffic.livedoor.biz/*
// @include     http*://www.lifeappli-antenna.com/*
// @include     http*://iwashi.biz/*
// @include     http*://www.news1000000.com/*
// @include     http*://ga-t.net/*
// @include     http*://www.hiroburo.com/*
// @include     http*://newtroc.net/*
// @include     http*://watashe.blog135.fc2.com/*
// @include     http*://hemine.co/*
// @include     http*://esite100.com/*
// @include     http*://imakita.cowhow.net/*
// @include     http*://plasma-antenna.com/*
// @include     http*://www.newposu.com/*
// @include     http*://kijyo-antena.com/*
// @include     http*://kdkjch.com/*
// @include     http*://dietantenna.net/*
// @include     http*://nanteko.com/*
// @include     http*://sepian.org/*
// @include     http*://antenasu.net/*
// @include     http*://rss-seo.click/*
// @include     http*://kaigai-antena.com/*
// @include     http*://2chmm.com/*
// @include     http*://handero.net/*
// @include     http*://blue-a.org/*
// @include     http*://marugoto-antenna.com/*
// @include     http*://poka-n.net/*
// @include     http*://vipick.net/*
// @include     http*://news-channel.doorblog.jp/*
// @include     http*://trtd.info/*
// @include     http*://antennapan.info/*
// @include     http*://*.ozmaker.net/*
// @include     http*://b-news.doorblog.jp/*
// @include     http*://honey-tiger.ldblog.jp/*
// @include     http*://matome-crawler.com/*
// @include     http*://shimasoku.com/*
// @include     http*://news-matome.com/*
// @include     http*://pun6.com/*
// @include     http*://antenow.com/*
// @include     http*://bokuantena.com/*
// @include     http*://mitena.net/*
// @include     http*://ii-net-ii.com/*
// @include     http*://*.kaeru.me/*
// @include     http*://*.nantoka-antenna.com/*
// @include     http*://arumira.com/*
// @include     http*://gayaruantenna.com/*
// @include     http*://nanjmin.net/*
// @include     http*://kanone.biz/*
// @include     http*://*.fantena.net/*
// @include     http*://past2chmatome.blog55.fc2.com/*
// @include     http*://pllp.info/*
// @include     http*://newtopics.info/*
// @include     http*://rankin9.com/*
// @include     http*://news109.com/*
// @include     http*://red-an.com/*
// @include     http*://gossipantenna.com/*
// @include     http*://hapikichi.com/*
// @include     http*://indexmatome.com/*
// @include     http*://newslogfc2.blog.fc2.com/*
// @include     http*://pikupikku.ldblog.jp/*
// @include     http*://matomeofmatomes.net/*
// @include     http*://funger-antena.info/*
// @include     http*://world-best-news.doorblog.jp/*
// @include     http*://www.en-ran.com/*
// @include     http*://*.antenna-2chan.info/*
// @include     http*://otadantenna.com/*
// @include     http*://hello-2ch.net/*
// @include     http*://an48.net/*
// @include     http*://news.favoch.com/*
// @include     http*://bokuwata-ch.com/*
// @include     http*://antch.net/*
// @include     http*://owata-net.com/*
// @include     http*://*.owata-net.com/*
// @include     http*://*.kachoufugetsu.info/*
// @include     http*://ijigen.me/*
// @include     http*://musasabiantenna.com/*
// @include     http*://www.2ch-a.net/*
// @include     http*://lab-matome.com/*
// @include     http*://lovesoku.com/*
// @include     http*://yorozu-yasan.com/*
// @include     http*://antenna-site.net/*
// @include     http*://smart.antenna-site.net/*
// @include     http*://nijigen.antennanijigen.info/*
// @include     http*://timely.blog.jp/*
// @include     http*://lily-app.net/*
// @include     http*://kitimama.net/*
// @include     http*://www.2chmatome2.jp/*
// @include     http*://lifema.net/*
// @include     http*://2ch-matome.link/*
// @include     http*://2ch-mi.net/*
// @include     http*://webnew.blog.jp/*
// @include     http*://blog.livedoor.jp/akio_live1/*
// @include     http*://2ch-matomato.me/*
// @include     http*://musicantenna.wpblog.jp/*
// @include     http*://watoson2.link/*
// @include     http*://newhub.xyz/*
// @include     http*://spohub.xyz/*
// @include     http*://otahub.xyz/*
// @include     http*://yakuhub.xyz/*
// @include     http*://kichihub.xyz/*
// @include     http*://gossiphub.xyz/*
// @include     http*://お借りしますお.xyz/*
// @include     http*://稼ぐちゃんねる.xyz/*
// @include     http*://tqc00031.xyz/*
// @include     http*://wantena.net/*
// @include     http*://ikimonomatometyou.blog40.fc2.com/*
// @include     http*://*.chantenna.net/*
// @include     http*://*.matomeplus.net/*
// @include     http*://ant-ant.net/*
// @include     http*://koyu-iantenna.net/*
// @include     http*://*.2chtena.link/*
// @include     http*://matome.news-edge.com/*
// @include     http*://2chmatome.sakura.ne.jp/*
// @include     http*://アンテナ.xyz/*
// @include     http*://xn--cckvdm6n.xyz/*
// @include     http*://*.antenahaoh.com/*
// @include     http*://yakiu-antenna.net/*
// @include     http*://shogis.com/*
// @include     http*://www.wowumboo.com/*
// @include     http*://kwsk-antena.com/*
// @include     http*://poo-antenna.net/*
// @include     http*://news-pod.com/*
// @include     http*://2ch.teamblog.jp/*
// @include     http*://kojikisokuhou.doorblog.jp/*
// @include     http*://seikatsu-damepo.xyz/*
// @include     http*://quantum.47chambers.com/*
// @include     http*://mamama.asia/*
// @include     http*://geinoujinantena.com/*
// @include     http*://geinouantenna.net/*
// @include     http*://sigasiga.info/*
// @include     http*://2ch-k.net/*
// @include     http*://matomegane.com/*
// @include     http*://vipantena.net/*
// @include     http*://antennapan.dreamlog.jp/*
// @include     http*://5chmm.com/*
// @include     http*://5chmm.jp/*
// @include     http*://min-tenna.com/*
// @include     http*://harusuki.net/*
// @include     http*://matomerry.com/*
// @include     http*://www.2chmatome.jp/*
// @include     http*://gravure-idol-news.dreamlog.jp/*
// @include     http*://blog.livedoor.jp/akinohotate/*
// @include     http*://*.matometa-antenna.com/*
// @include     http*://football-pr.com/*
// @include     http*://nanj-antenna.com/*
// @include     http*://asoku.net/*
// @include     http*://newsweb.blog.jp/*
// @include     http*://torendoimasyun.blog.jp/*
// @include     http*://2ch-mtmm.com/*
// @include     http*://*.antena-mk.com/*
// @include     http*://blog.livedoor.com/matomeportal/*
// @include     http*://blog.livedoor.com/lite/matomeportal/*
// @include     http*://kininaruero7.blog.jp/*
// @include     http*://antenna.wakshin.com/*
// @include     http*://jupiteryakiu.com/*
// @include     http*://ghdnewzealandshopc.com/*
// @include     http*://netagear.net/*
// @include     http*://antenna.i-like-movie.net/*
// @include     http*://pocket-antenna.com/*
// @include     http*://*.5chmap.com/*
// @include     http*://openantena.com/*
// @include     http*://kaigai-antenna.com/*
// @include     http*://mtmx.jp/*
// @include     http*://mtmx18.jp/*
// @include     http*://2chm-1.com/*
// @include     http*://bestofmatome.work/*
// @include     http*://sakarabo-antenna.com/*
// @include     http*://7matome.com/*
// @include     http*://okaetc.blog.jp/*
// @include     http*://rss.rash.jp/*
// @include     http*://soccer-antenna.net/*
// @include     http*://soccer-navi.com/*
// @include     http*://linxwrt.com/*
// @include     http*://giko-antenna.com/*
// @include     http*://trend-news.site/*
// @include     http*://tokotoko.2chblog.jp/*
// @include     http*://5chmatomex.com/*
// @include     http*://kuma-antena01.com/*
// @include     http*://2chnewsflash.dreamlog.jp/*
// @include     http*://hantena.dreamlog.jp/*
// @include     http*://sakamichi46antenna.com/*
// @include     http*://puu-antenna.com/*
// @include     http*://bokunews.com/*
// @include     http*://sakamichi46-days.net/*
// ==/UserScript==

// jshint scripturl: true

var siteDefs = {
  // しぃアンテナ(*゚ー゚)
  '2ch-c.net': ['a[style="color:#d14 !important;"]',
                'a.et_title',
                textContent(null, 'table.entry a[target="_blank"]')],

  // 2GET
  'get2ch.net': ['li.pickup a',
                 'a.list-group-item[style="color:#F55;font-weight:bold;"]'],

  // The 3rd
  'the-3rd.net': ['a[style="background-color:rgb(231, 222, 220);"]',
                  'a.ui-link[style^="color:#F33"]',
                  descendantClass('div#l_col a', 'span[style^="color:"]')],

  // ワロタあんてな
  'matomeantena.com': [replaceFeedClick('.current a.feed-click'),
                       replaceFeedClick('.active-feed a.feed-click'),
                       '.rss_link > a'],

  // にゅーれす
  'newresu1.blog.fc2.com': ['#pickupnews .title_link_a', '.title_link a', 'li.pickup a', 'ul.List_Box > li .title_link_a'],
  // にゅーおた
  'newota.blog.fc2.com': ref('newresu1.blog.fc2.com'),
  // にゅーやく
  'newyaku.blog.fc2.com': ref('newresu1.blog.fc2.com'),
  // にゅーえろ
  'newero1.blog.fc2.com': ref('newresu1.blog.fc2.com'),

  // にゅーもふ
  'newmofu.doorblog.jp': [function()
                          {
                            var url = queryString('url');
                            if (!url)
                              return false;
                            // '%2F%'がないパターンに対処
                            url = url.replace(/([^%])(2F%3Aptth)$/, '$1%2F%$2');
                            return openLink(reverse(decodeURIComponent(url)));
                          },
                          ref('newresu1.blog.fc2.com')],

  // だめぽアンテナ
  'moudamepo.com': ['li.ui-btn-up-e a.ui-link-inherit',
                    descendantClass('a.ui-link-inherit', 'span[style="color:#ff0000;"]'),
                    '.headline_pkup a', '.hl_pkup a'],

  // ぶろにゅー
  'blog-news.doorblog.jp': function() {
    var t = queryString('t');
    if (t) {
      t = decodeURIComponent(t);
      if (t.length > 1 && byDescendantTextContent(function(){return t;}, 'li a', 'span.a-title', targetStartsWithTitle))
        return;
    }
    byClass('a.title_link');
  },

  // ぬるぽあんてな
  'nullpoantenna.com': [replaceFeedClick('li.current a.feed-click'),
                        replaceFeedClick('li.active-feed a.feed-click')],

  // にゅーぷる
  'newpuru.doorblog.jp': [
    function(){
      var url = queryString('url');
      if (url)
        url = reverse(decodeURIComponent(url));
      else {
        var match = window.location.href.match(/#url=(.+)/);
        if (!match)
          return false;
        url = match[1];
      }
      return openLink(url);
    },
    '#article-contents a.p.titleLink',
    'a.p.titlelink'],

  // アンテナビルダー
  'antenna-builder': ['#article [data-type="catchy"] .entry-title a',
                      '#article-block [data-type="catchy"] .entry-title a'],
  // BestTrendNews
  'besttrendnews.net': ref('antenna-builder'),

  // ニュース星3つ!
  'news-three-stars.net': ref('antenna-builder'),

  // まとめたった速報
  'matometatta-news.net': ref('antenna-builder'),

  // アフォニュース
  'afo-news.com': ref('antenna-builder'),

  // NEWS CHOICE
  'news-choice.net': ref('antenna-builder'),

  // にゅーすなう!
  'newsnow-2ch.com': ref('antenna-builder'),

  // このワロ
  'konowaro.net': ref('antenna-builder'),

  // ウェブニュー
  'webnew.net': ref('antenna-builder'),

  // アンテナバンク
  'antennabank.com': ref('antenna-builder'),

  // 2chまとめのまとめアンテナ
  '2ch-mma.com': ref('antenna-builder'),

  // 5chまとめサイトのまとめ, みんなのあんてな
  '.matometa-antenna.com': ref('antenna-builder'),

  // おーぷんアンテナ
  'openantena.com': ref('antenna-builder'),

  // さいくろぷすアンテナ!
  '7matome.com': ref('antenna-builder'),

  // 坂道46アンテナ
  'sakamichi46antenna.com': ref('antenna-builder'),

  // LogPo!2ch
  '2ch.logpo.jp': [descendantClass('.ArticleParts a', '.PickArticle'),
                   '.PermaLink a',
                   'div.PickArticle a'],
  's.2ch.logpo.jp': ['h1.PickArticle a', 'h2.ArticleLink a'],

  // アナグロあんてな
  'anaguro.yanen.org': [
    function() {
      var qs = getParameters();
      var pkup = qs.pkup;
      if (pkup) {
        var lvs = ['', '_lv0', '_lv1', '_lv2', '_lv3', '_lv4', '_lv5'];
        for (var i = 0; i < lvs.length; i++) {
          if (byClass('a.title' + lvs[i] + '[href^="./cnt.cgi?' + pkup + '='))
            return true;
        }
      }
      var hint = qs.hint;
      return hint && byClass('a[rel$="/' + pkup + '-' + hint + '.jpg"]');
    },
    'td.title a.title',
    'div[style="padding:4px 2px;background-color:#ffffff;"] a[target="_blank"]'],

  // アンテナ速報
  'a.anipo.jp': ['li[style^="background-color: rgb(255, 255, 85)"] a[title]',
                 '#tbody tr[style^="background-color: rgb(255, 176, 187)"] a[title]'],

  // 勝つるあんてな
  'katuru.com': ['.rssget_red a',
                 '.rss_center_div a'],

  // 2次元と3次元の画像ブログまとめ
  'img.favsite.jp': '.articles li a[style^="font-weight: bold"]',

  // わくてか
  'wk-tk.net': function() {
    var l = queryString('l');
    if (l && openLink(decodeURIComponent(l)))
      return;
    byClass('div.selected a');
  },

  // News人
  'newser.cc': [textContent(null, '.nc .nl a', titleStartsWithTarget),
                textContent(null, '.news-link a', titleStartsWithTarget),
                '.news-link.target a',
                'tr.target a'],

  // キタコレ
  // 'a.link-red' or 'a.link-pink'?
  'kita-kore.com': ['.article.active a',
                    textContent(null, 'div.list[style^="display: block"] a', titleStartsWithTarget)],

  // ねらーアンテナ
  '2channeler.com': ['.ui-btn-up-e a',
                     function() {
                       var qs = getParameters();
                       var n = qs.n, d = qs.d;
                       if (n && d && byClass("a.title[onmouseover^=\"thumb_on('" + n + "','" + d + "'\"]"))
                         return;

                       if (n && (byClass('a.title[href^="http://2channeler.com/out.cgi?n=' + n + '&"]')
                                 || byClass('a.title[href^="http://2channeler.com/out.cgi?' + n + '="]')))
                         return;

                       var targets = queryNodes('div#thumb_box > div');
                       for (var i = 0, len = targets.length; i < len; i++)
                         if (targets[i].querySelector('div label').textContent.trim() == 'Pickup') {
                           var target = targets[i].querySelector('a.ui-link');
                           if (target && openLink(target.getAttribute('href')))
                             return;
                         }

                       byClasses('tr.line4 a', 'tr.line3 a');
                     },
                     'a.pickup'],

  // matomeja
  'matomeja.jp': 'div.active .entry-title a',

  // しまむらアンテナ
  'shimamurakun.net': 'div#main-item a',

  // 家庭ちゃんねる
  'kateich.net': 'li.linktitle a',

  // つーアンテナ
  '2ch-2.net': function() {
    // ページを移動するときにうざいポップアップを出さない
    var e = queryNode('.active .entry-title');
    if (e)
      e.className = '';
    byClass('.entry-item.active a');
  },

  // のーアンテナ
  '2ch-n.net': ['.main-column .feed-list .entry-item.active .entry-title a',
                '.active .feed_title a'],

  // なんか憑かれた速報
  'nantuka.blog119.fc2.com': textContent('h3 > a', 'div.article a'),

  // ライフあんてな
  // UAをPCにする
  'lifeantenna.com': ['.entry-item.active .entry-title a',
                      'tr.active .feed_title a'],

  // ギコにゅー
  'giko-news.com': ['.article.active a', '#article-contents a.link-red', '#article-list-body li.selected a'],

  // するめアンテナ
  'matome-surume.com': 'tr.active .feed_title a',

  // 放課後ガイドライン
  'blog.livedoor.jp/houkagoguide': [textContent('h2.entry-title > a', 'div.article-body-more a'),
                                    textContent(null, 'div#article-contents a', titleStartsWithTarget)],

  // キットカスタネット
  'blog.livedoor.jp/ind_bikkuri': descendantClass('div.article-body a', 'span[style^="color:"]'),

  // わろたあっろと
  'blog.livedoor.jp/warota_a_lot': ['article#Article > h2 > div > div:not([class]) > a',
                                    '.readmore a'],

  // ニュースJAPAN
  'blog.livedoor.jp/hioaysdnhjlk': '.title_link a',

  // NEWS DIJEST
  'blog.livedoor.jp/gndai': textContent(null, '.article-body a', titleStartsWithTarget),

  // 鬼女の集い
  'blog.livedoor.jp/kijyonotsudoi': descendantClass('div.article-body a', 'span[style^="color: rgb(255, 0, 0)"]'),

  // まじかるニュース
  'blog.livedoor.jp/magicalnews': textContent('.article-title', 'div.article-body p a', titleStartsWithTarget),

  // 特設ニュースちゃんねる
  'blog.livedoor.jp/tokusetsu_news': '#title_site a',

  // XEX NEWS
  'blog.livedoor.jp/xexnews': textContent('.article-title', 'div.article-body p a', titleStartsWithTarget),

  // watch@2チャンネル
  'watch2ch.2chblog.jp': descendantTextContent(null, 'div.article-body a', 'span.pickup_link', titleStartsWithTarget),

  // 2chファインダー
  '2chfinder.com': ['li.single a', 'ul.single a'],

  // ぐるぐるログ
  'gurugurulog.com': function() {
    var n = queryString('n');
    return (n ? (byClass('.article .cat-kiji-title.kiji_n-' + n + ' a')
                 || byClass('#basic .kiji-wrap.kiji_n-' + n + ' a'))
            : byClass('.title_link a'));
  },

  // j-antenna
  'www.j-antenna.com': ['.pickup_entry_title a', 'a.pickup_entry_title'],

  // とろたまヘッドライン
  'headline.mtfj.net': ['article#contents_rss.topics li.topics div.rss_article a',
                        'tr.bold td a', 'td.bold a', 'div.rss_article_bold a'],

  // アンテナちゃん
  'antennachan.com': 'div#rline_pu div.netalink a',

  // 朝目新聞
  'www.ne.jp/asahi': 'a.feedtitle',

  // 2chまとめヘッドライン
  '2ch-matome.com': [descendantClass('a.main_content_link', 'p.pickup_article'),
                     descendantClass('a.mainContentLink', 'span.red')],

  // 特価板
  'tokkaban.com': 'li.current a',

  // オワタあんてな
  'owata.chann.net': ['.pickup a.article-link',
                      'div.active .choice a'],

  // NEWS PICK UP
  'newspickup.com': 'p.active a',

  // まとめアンテナ(´∀`)
  '2ch-m.net': textContent(null, 'tr.entry a', titleStartsWithTarget),

  // BaseBall MAG
  'baseball-mag.net': descendantClass('article#content a', 'div.title[style^="color:"]'),

  // ニュー速
  'new-soku.net': [textContent(null, '.headline_normal a', titleEndsWithTarget),
                   'a.target_article',
                   'li.ui-first-child.ui-last-child a',
                   '.headline_normal a'],

  // 2chアンテナ
  'www.2ch-antenna.net': 'a._txt_red',

  // ギコあんてな!
  'gikotena.net': ['.pickup .site_content_title a',
                   'a.label_list_content_title'],

  // まとねっと
  'matonet.info': 'a.pickup',

  // みんくるアンテナ( ゚Д゚)
  'minkurumato.net': 'td.feed_title a[style="color:red"]',

  // NEWS SELECT
  'news-select.net': ['.article.active a',
                      'li.selected a'],

  // harikonotora
  'harikonotora.net': [textContent(null, 'div.headline a.kizi'),
                       '.detailkizi a.detailzenbun',
                       descendantClass('a.kizi', 'span[style="color:#ff0000;"]')],
  'rss.harikonotora.net' : ref('harikonotora.net'),

  // P!アンテナ
  'www.pantena.net': 'article#main-entry a',

  // ニュース速報まとめ梅
  'matomeume.com': ['div.kijis5 a', 'div.kjran3 a'],

  // ニュース速報まとめ桜
  'matomesakura.com': ['div.kijis5 a', 'div.kjran3 a'],

  // 2chまとめちゃんねる
  'matome-ch.com': textContent(null, 'div.entrys_title a', titleStartsWithTarget),

  // おまとめ
  '0matome.com': 'div.pickup a',

  // 2chまとめ
  'www.2chantena.info': textContent(null, 'div.entry-title a', titleStartsWithTarget),

  // Rotco
  'rotco.jp': 'td.articleTitle a[style^="color:"]',

  // ウホウホあんてな
  'uhouho2ch.com': 'li.pickup a',

  // マトメナ
  'matomena.jp': 'div.linked_article a',

  // Bp2アンテナ
  'bp2-antena':  'a.Bp2ATitleKiji',

  // 日刊鬼女通信
  'nkijo.com': ref('bp2-antena'),

  // 2ちゃんてな
  '2ch-antenna.com': 'td.article_title a[style^="color"]',

  // つくるよあんてな
  'www.tukuruyoantena.com': ['table.entrylist a[style^="color"]',
                             'a.ui-link-inherit[style^="color"]'],

  // まとめニュース速報
  'www.まとめニュース.com': 'div.article_box a[style^="color"]',
  'www.xn--o9j0bk8t7cqhlg.com':  'div.article_box a[style^="color"]',

  // 2ちゃんねるまとめるまとめ
  '2chmatomeru.info': 'tr[style^="background-color"] td.tdLink a',

  // ワニアンテナ
  'waniantenna.com': 'a.story-title-link.red',

  // GOSSIP CHANNEL
  'gossip2.net': ['.mainArea .main .topArticle .txtCell h2 a',
                  'div.art-title-sp > div > a',
                  'div.art-rank > div > a:first-child',
                  'div.art-rank > div > a:nth-child(2)',
                  function() {
                    var id = queryString('id');
                    if (id && id.length > 3)
                      byClass('div.art-anchor[data-article-num="' + id.substring(3) + '"] a');
                  }],

  // 乞食速報
  'kojikisokuhou.com': 'div.body > ul.entries > li.entry > span > a',

  // マルチメディアNEWS
  'multi-media.doorblog.jp': [
    textContent('h1.article-title', 'div#article-contents a[target="_blank"]'),
    textContent('h1.article-title', 'div.article-body div.article-body-inner a[target="_blank"]'),
    descendantClass('div#article-contents > b:last-child > a', 'span[style="color: rgb(255, 0, 0);"]'),
    descendantClass('div.article-body > div.article-body-inner > b:last-child > a', 'span[style="color: rgb(255, 0, 0);"]')
  ],

  // エ・ロックオン
  'blogtsurugi.blog38.fc2.com': 'div.postmain a[title]',

  // ギコあんてな
  'giko2ch.net': 'a.post_link.pickup',

  // MEGA NEWS LAUNCHER
  'dariusnews.blog11.fc2.com': textContent(null, 'li a', titleStartsWithTarget),

  // 2chまとめ放送局
  '2ch-a.info': 'tr.danger a',

  // まとめちゃんねる
  'www.matomech.com': textContent(null, 'td.articleListTableTitle a', titleStartsWithTarget),

  // 【速報】アンテナ(*・ω・)ノ゙
  'www.so9.jp': 'article#rsskizi a',

  // まとにゅー!
  'matonew.doorblog.jp': 'div.p_link a',

  // 奥様アンテナ
  'cawaii2ch.com': textContent(null, 'div.entry a', titleEndsWithTarget),

  // 暇つぶしアンテナ
  'killing-time.biz': 'a.titlematch',

  // 2chまとめSPOT
  '2ch-spot.com': function() {
    var f_id = queryString('f_id');
    if (!f_id || !byClass('a.future-entry[data-entry-id="' + f_id + '"]'))
      byClass('a.future-entry[style*="display: block"]');
  },

  // おにちゃんねる
  'o-2ch.net': 'td.article.red a',

  // 情報屋さん。
  'jyouhouya3.net': [checkExists('meta[name="keywords"]'),
                     textContent(null, 'a.link_ra', titleStartsWithTarget),
                     'a.link_ra'],

  // せちがら速報
  'www.sechigara.net': [checkExists('div.t_h'),
                        'div.article-body-inner > a',
                        descendantClass('div.article-body > a', 'b > span[style^="color: rgb(255, 0, 0)"]')],

  // 超速V話題のまとめちゃん
  'cyousokuvip.com': [checkExists('div.t_h'),
                      descendantClass('div.article-body-inner > a', 'span[style^="color: rgb(255, 0, 0)"]'),
                      descendantClass('div.article-body > a', 'span[style^="color: rgb(255, 0, 0)"]')],

  // ウチのトメさまがいちばんカワイイ
  'uchitome.com': [checkExists('div.t_h'),
                   descendantClass('div.article div.main > a', 'span[style^="color: rgb(255, 0, 0)"]'),
                   descendantClass('div.article-body > a', 'span[style^="color: rgb(255, 0, 0)"]')],

  // ワロタめーかー
  '.warotamaker.com': replaceFeedClick('li.active-feed a.feed-click'),
  // ワロタめーかーH
  '.warotah.com': ref('.warotamaker.com'),
  // ワロタめーかー2
  '.warotamaker2.com': ref('.warotamaker.com'),

  // 声優アンテナ~二次元まとめ~(feed)
  'seiyuu-antena.antena-nijimatome.com/feed': ['td.feed_title a[style="color:red"]', 'div.feed_title a[style="color:red"]'],

  // 声優アンテナ~二次元まとめ~(article)
  'seiyuu-antena.antena-nijimatome.com/abs': ['div#articles > div.source > a[target="_blank"]', 'div#articles > a[target="_blank"]'],

  // 二次元アンテナ速報
  'seiyuu.seiyuu-antenna.info/feed': ref('seiyuu-antena.antena-nijimatome.com/feed'),
  'seiyuu.seiyuu-antenna.info/abs': ref('seiyuu-antena.antena-nijimatome.com/abs'),

  // 声優アンテナ~まとめ~
  'seiyuu.antena-matome-2ch.com': 'a.rclick[style="color:red"]',

  // アンテナメーカー
  '.antenam.info': function() {
    if (byClass('span.target_item a'))
      return;
    var path = window.location.pathname;
    var match;
    if ((match = path.match(/\/items\/view\/(\d+)/)))
      byClass('a[href^="/items/click/' + match[1] + '"]');
    else if ((match = path.match(/\/items\/search\/title:(.+)/)))
      byTextContent(function(){return decodeURIComponent(match[1]);}, '.item_title_list a.blog_post');
  },
  '.antenam.biz': ref('.antenam.info'),
  '.antenam.jp': ref('.antenam.info'),
  '.atna.jp': ref('.antenam.info'),
  '.a-antenam.info': ref('.antenam.info'),

  // 【声女】2ch声優速報まとめアンテナ
  'voice.lady.jp': 'div.post > a + a',

  // 声豚あんてな
  'koebuta.net': 'div.pickup a',

  // Girls Reader
  'girlsreader.com': 'h2#single_h2 > a',

  // クマーあんてな
  'kuma-log.net': 'td.article a.rss',

  // キチママまとめアンテナ
  'a-matome.com': function() {
    // urlencodeされている場合は未確認
    var match = window.location.search.match(/\?RSS=\d\d\d\d-\d\d-\d\d([^&]+)/);
    if (match)
      byClass('a[href^="./re.php?URL=' + match[1] + '&"]');
  },

  // アンテナギフト(・∀・)
  'antenna.gift': 'tr.targetItem a[id]',

  // matomatome
  'matomatome.com': ['ul#current a.topictitle', 'div.title a.ui-link'],

  // アンテナシェア
  // ターゲットが複数ある場合は飛ばないようにした
  'www.antennash.com': [textContent(null, 'div.cmain a', targetStartsWithTitle),
                        descendantClass('a', 'span[style*="#1596C1;"]', true)],

  // あんてなガッ!!
  'antenna-ga.com': descendantClass('ul#new-repo-list a', 'strong'),

  // ほのぼのライフあんてな
  'lifech.2-d.jp': 'li.mainitem a',

  // 家庭生活まとめのまとめ
  'katei-matome.com': 'li.item a.featureEntry',

  // 結婚生活 - NewsPod
  'news-pod.net': descendantClass('div#commentlist a', 'span.name[style="color:#E33"]'),

  // 2chnavi
  '2chnavi.net': [textContent('div.content_header_title', 'a.entry_title', titleStartsWithTarget),
                  descendantTextContent('div.content_header .title_text', 'a.entrylistrow_body', 'div.entrylistrow_title', titleStartsWithTarget)],

  // チラアンテナ(つд・ )
  '2ch.anything-navi.net': descendantClass('a[target="_blank"]', 'font[color="RED"]'),

  // つべこアンテナ
  'twobeko.com': 'li.rss_light a',

  // ガールズアンテナ
  'girls-antena.2chblog.jp': ref('bp2-antena'),

  // readers.jp
  '.readers.jp': ['.target_item a', descendantTextContent(null, 'a.ui-link-inherit', 'h3', titleStartsWithTarget)],

  // 芸能ニュース2ch報道
  'geinou2news.blog.fc2.com': [checkExists('div.entry_body div.t_b'),
                               checkExists('div.ently_body div.t_b'),
                               'div.entry_body a[target="_blank"]',
                               'div.ently_body a[target="_blank"]'],

  // まとめあ
  'matomea.net': descendantClass('a.rss_link', 'span.pickup'),

  // ニュー速アンテナ
  'newsoku.jp': [descendantClass('ul#pickup-list a', 'span.red'),
                 '.columnList a.red'],

  // なんJまとめアンテナ
  '.nantena.pw': '.mp-recommend-entry-1 .mp-entry-title a',
  // *攻略まとめアンテナ
  '.matomeplus.net': ref('.nantena.pw'),
  // *まとめ攻略アンテナ
  '.chantenna.net': ref('.nantena.pw'),

  // 鬼嫁日記〜2ch生活まとめ〜
  'oniyomediary.com': [checkExists('.article-body .t_b'),
                       descendantClass('div.article-body a', 'span[style^="color: rgb(255, 0, 0)"]')],

  // センミリG(仮)
  '1000mg.sblo.jp': textContent('h3 .title', 'div.text a'),

  // にゅーすAtoZ
  'netaatoz.blog21.fc2.com': 'div.selected a',

  // VIPあんてな
  '2ch-matome.net': ['div.entries a.title[style^="color:red"]',
                     '.entry_title a[style^="color:red"]'],

  // 恋速~恋愛速報2chまとめ~
  'koisoku.net': 'p.Itemtitle a',

  // ぶろまと
  'buromato.com': '#mainentry .entry_title a',

  // にゃんてな!
  'nyan.eggtree.net': function(){
    var id = queryString('a');
    if (id)
      byClass('li.article[id="' + id + '"] a');
  },

  // いーあんてな(#゚w゚)
  'ii-antenna.net': descendantClass('a.e', 'div.t[style="color:#F22;"]'),

  // まとめアンテナα
  'matome-alpha.com': ['.pickup_entry a',
                       '.entry_title_eid a[style^="color: rgb(255, 0, 0)"]',
                       '.entry_list .entry_list_titleeria a[style*="color: rgb(255, 0, 0)"]',
                       '.entry_list a[style^="color: rgb(255, 0, 0)"]',
                       'a[style="color: rgb(255, 0, 0); font-weight: bold;"]'],

  // フットボール速報まとめ
  'fxmtm.net': 'a.topic',

  // メリーニュース
  'merry-news.com': 'tr.active .feed_title a',

  // クリップちゃんねる
  'clipch.com': 'div.article-body div.source a',

  // おもしろニュース
  'aube0.com': 'div.Single div.Singlebody p.Itemtitle a',

  // XNews
  'xnews.jp': function() {
    var target = queryNode('h1#main-topic + div#main-content-search');
    if (target) {
      target = target.querySelector('h1#main-content-search-title a');
      if (target)
        openLink(target.getAttribute('href'));
    }
  },

  // NANJ of US
  'nanj-of-us.main.jp': '.r_entry a',

  // なんJまとめアンテナ
  'nanj-matome.com': ['a.flink',
                      textContent(null, 'h3 a', titleEndsWithTarget)],

  // YomYo
  'yomyo.jp': function() {
    if (!byClass('a.btn-app-dl', 'data-link'))
      byClass('.blog--list.layout--highlight a');
  },

  // ちゃんねる365
  '365dys.com': ['div.bar.link + table.article .title a',
                 'div.bar.link + table.article .entry a'],

  // STANAVI
  'sta-navi.net': [descendantClass('.rss_pc_td a', 'div.rss_pc_body[style="color:deeppink;"]'),
                   descendantClass('.rss_sp_td a', 'div.rss_sp_body[style="color:deeppink;"]')],

  // もやしアンテナ
  'moyashi.me': descendantClass('table.table a', 'font[color="#fc3939"]'),

  // 2ちゃんマップ
  // とりあえず最初のやつ
  'sp.2chmap.com': 'ul#List a',
  '2chmap.com': 'table.list a',

  // 忍者あんてな(β)
  'antenna.shinobi.jp': ['h2.showcase-title a',
                         descendantClass('.c-showcase a', '.showcase-title')],

  // TREND NEWS24
  'trend-pr.com': 'div.article > a',

  // V速NEWS
  'vipper774.blog115.fc2.com': 'li.selected a',

  // 2chまとまと
  '2ch-matomato.com': {
    nodelay: function(){window.confirm = function(){return false;};},
    default: ['.layout--highlight a', '.blog--highlight a']
  },

  // なんJまとめちゃんねる
  'nanj.matome-ch.com': [textContent(null, 'div.entry_title a', titleStartsWithTarget),
                         textContent(null, '.cont a.cont_ttl', titleStartsWithTarget)],

  // なんJオールスターズ
  'nanjallstars.net': [textContent(null, 'div.entry_title a', titleEndsWithTarget),
                       textContent(null, 'div.entry_title a', titleStartsWithTarget)],

  // プロやきう・なんJまとめアンテナ
  'nanj.an-matome.com': function() {
    var rss = queryString('RSS');
    if (rss && rss.length > 10) {
      var url = decodeURIComponent(rss.substring(10));
      if (byClass('a[href^="./re.php?URL=' + url + '"]') ||
          byClass('a[href="' + url + '"]'))
        return;
    }
  },

  // もくぬふいんふぉ
  'mh12.info': '#main .linkblockspe .rsslink a',

  // キルjアンテナ
  'killmej.com': '#pickup_area a',

  // MeeTreeアンテナ
  'mt-antenna.info': 'div.article_inner.pick a',

  // THE BASEBALL
  'thebaseball.xyz': '#tabs-1 ul li:first-child a',

  // 棒読みあんてな
  'bouyomi.jp': 'a[style="color:red"]',

  // デジタルニュースミックス
  'digital-mixnews.com': textContent('.article-title', '.pickup-news a',
                                     function(target, title) {
                                       return titleEndsWithTarget(target.replace(' ', ' '), title.replace(' ', ' '));
                                     }),

  // コネクツニュース
  'news.cnects.net': '#news-main .btn a',

  // アテナあんてな
  'athena.sakuratan.com': '#hot_article .top a',

  // デジサカ
  'digital-soccer.net': descendantClass('div.entry a', 'h5[style*="color:#F00;"]'),

  // !ANTENNA?
  '2chmatome-news.com': 'a#pickup',

  // なんJ Headline
  'nanjheadline.com': '#detail_title a',

  // アルファルファモザイク
  'alfalfalfa.com': ['.article_bodyfooter .readmore a',
                     descendantTextContent(null, 'a', 'span.sidebody', titleStartsWithTarget)],

  // やじうまあんてな
  'yajiuma-antena.com': '.red a',

  // オワタあんてな
  'owt.io': '.post-content a',

  // ○○的ニュースをお伝え(以下略
  //  (究極最終兵器2ndWeapon)
  'kyuusai2nd.net': textContent(null, 'a[target="_blank"]', titleStartsWithTarget),

  // カナ速
  //'kanasoku.info': function() {
  //  if (!queryNode('div.body span.nnn'))
  //    byClass('div.body div.tt a');
  //},

  // まとめアンテナChaconne.
  'rd.app-heaven.net': [descendantClass('#app_info a', '.btn-primary'),
                        'a.browserlink'],

  // アプリNews24
  'applinews24.com': ['.reco.addin > a',
                      '.item_title_pickup > a'],

  // 2chまとめアンテナ
  '.antenna-3.com': 'a[style="font-weight:700;color:#E27689"]',

  // まとめの杜(壱)
  'matomenomori.net': 'a#top_caption_a',
  // まとめの杜(弐)
  'pc2.matomenomori.net': ref('matomenomori.net'),

  // ニュー速クオリティ@アンテナ
  'newsquo.net': '.entry_title a[style="color:#ff0000;"]',

  // えごん
  'egone.org': textContent(null, '.newsline-news a', titleStartsWithTarget),

  // はぴやく
  'hapiyaku.com': '.danger a',

  // 憂国あんてな
  'yuukoku.net': [descendantClass('a.ui-link-inherit', 'span.rl1'),
                  '.pickup a.hl_title1'],

  // 異世界とらふぃっく!
  'isekaitraffic.livedoor.biz' : ref('bp2-antena'),

  // ライフアプリアンテナ
  'www.lifeappli-antenna.com': ['.articles-contents a.articles-contents-jumpbtn',
                                '.articles-contents a.articles-contents-webviewbtn',
                                descendantClass('.articles-lists a', '.lists-text p.current'),
                                '.articles-contents .article-contents-title a',
                                function() {
                                  [typeof(allowurl) == 'function' && String(allowurl),
                                   typeof(openbtn) == 'function' && String(openbtn)].forEach(function (s) {
                                     if (s) {
                                       var re = /document\.getElementById\("target"\)\.href = '(.+)';/g;
                                       var m;
                                       while ((m = re.exec(s)))
                                         if (openLink(m[1]))
                                           return true;
                                     }
                                   });
                                }],

  // 2chまとめのまとめMM
  'www.2chmatome2.jp': ref('www.lifeappli-antenna.com'),

  // いわしアンテナ >°))))彡
  'iwashi.biz': descendantClass('.article a', 'font[style^="background-color:#FFCCCC"]'),

  // ニュース$ミリオネア
  'www.news1000000.com': '#archive_list a.archive_links.title_archive',

  // ガッてな
  'ga-t.net': ['.sparticle.red a', '.article.red a'],

  // ひろぶろ
  'www.hiroburo.com': '.article-body span[style="color: rgb(255, 0, 0);"]+a',

  // にゅ~とろアンテナ
  'newtroc.net': '#main-contents .antena-content .linkcontent a',

  // 私女だけどw
  'watashe.blog135.fc2.com': textContent(null, 'div.body a', titleStartsWithTarget),

  // ヘミ猫あんてな
  'hemine.co': '.selected .entry-title a',

  // 良いサイト100選
  'esite100.com': ['#mainentry a',
                   descendantClass('.entry_title_pic a', 'b[style="color:#ff0000;"]')],

  // 今北広報
  'imakita.cowhow.net': descendantClass('.entryTitle a', 'em'),

  // プラズマアンテナ
  'plasma-antenna.com': '#articles .feed_title a[style="color:red"]',

  // にゅーぽす
  'www.newposu.com': '.pickup-list .specify a',

  // KIJYO ANTENA
  'kijyo-antena.com': descendantClass('.title a', 'font[color="#ff0000"]'),

  // 気団・鬼女ちゃんねる
  'kdkjch.com': descendantClass('.entry_title_all a', 'p.pagetitle'),

  // ダイエットあんてな
  'dietantenna.net': ref('kdkjch.com'),

  // /(^o^)\ナンテコッタイ
  'nanteko.com': 'a.pickup_title',

  // セピアンテナ
  'sepian.org': '.single_box article a',

  // アンテナっす
  'antenasu.net': 'a[style="font-weight:700;color:#E27689"]',

  // RS2 ANTENNA
  'rss-seo.click': descendantClass('.single-post-detail > a', '.single-post-blanklink'),

  // 海外アンテナ
  'kaigai-antena.com': '.pick_line a',

  // 2chまとめのまとめ
  // よくわからないので転送ページだけを対象にする。
  '2chmm.com/c': '.wrapper a.post',

  // はんでろan
  'handero.net': '.news-link.target a',

  // ブルーアンテナ
  'blue-a.org': descendantClass('.arrow_red a', 'span[style="color:#ff0000;"]'),

  // まるごとアンテナ
  'marugoto-antenna.com': [textContent(null, '.pickup a', titleStartsWithTarget),
                           descendantClass('nav a', 'font[color="red"]')],

  // ポカーンあんてな
  'poka-n.net': 'a.cc[style="font-size:24px;color:red;font-weight:bold;"]',

  // vipick.net
  'vipick.net': '.active .title a',

  // NEWS CHANNEL
  'news-channel.doorblog.jp': [descendantClass('.articles li a', 'span[style="color: red;"]'),
                               descendantClass('.articles li a', 'font[color="RED"]')],

  // とらとどあんてな
  'trtd.info': 'article .mainclass a',

  // あんてなパン
  'antennapan.info': '#article-title a.content-link',

  // オズメーカー
  '.ozmaker.net': ['.danger a', descendantClass('a.list-group-item', '.text-active')],

  // びニュー!
  'b-news.doorblog.jp': 'a.archive_links.title_red',

  // ハニトラフニトラ
  'honey-tiger.ldblog.jp': ['.cat-kiji-title a',
                            function() {
                              var qs = getParameters();
                              var c = qs.c, n = qs.n;
                              if (c && n)
                                byClass('.' + c + '.kiji_n-' + n + ' a');
                            }],

  // まとめクロラ
  'matome-crawler.com': descendantClass('li.entry', 'span[style^="color:#F33;"]'),

  // しま速
  'shimasoku.com': descendantClass('.contents a', 'span[style="color:red;"]'),

  // まとめてニュース
  'news-matome.com': '.notice_kiji_kobetu .kiji_title a',

  // ツイキチ
  'pun6.com': '#mainKiji a.kijiClickMain',

  // アンテなう!
  'antenow.com': 'h4.feedtb2 a',

  // ぼくあんてな
  'bokuantena.com': 'a#pickup',

  // みてなアンテナ
  'mitena.net': ['.entry-titlet a',
                 '.content.single .post .sequel a'],

  // イイネット(・∀・)イイ!!
  'ii-net-ii.com': 'a.pickupentry',

  // カエル.me
  '.kaeru.me': ['.title a[data-pickup]',
                'li a[data-pickup]'],

  // ナントカアンテナ
  '.nantoka-antenna.com': descendantClass('a.entry_anchor', '.entry_title[style$="rgb(255, 204, 204);"]'),

  // ギコにゅー(,,゚Д゚)
  'blog.livedoor.jp/navippu': '.selected a',

  // あるみら!
  'arumira.com': textContent(function(){return documentTitle().replace(/^あるみら! - /, '');},
                             '.rss_category a', targetEndsWithTitle),

  // ガヤるアンテナ( ・∀・)ノ
  'gayaruantenna.com': '#mainentry a',

  // J民あんてな
  'nanjmin.net': ['.pickup a.hl_title1',
                  descendantClass('a.ui-link-inherit', 'span[style="color:red;"]')],

  // キャノンアンテナ
  'kanone.biz': ['.feed_pickup a.title_link',
                 '.feed_pickup a.rss_link'],

  // ファンテナ
  '.fantena.net': function() {
    var match = window.location.pathname.match(/^\/(\d+)$/);
    if (match)
      byClass('a.rssid' + match[1]);
  },

  // 近頃のまとめブログ
  'past2chmatome.blog55.fc2.com': textContent(null, '.e-text a', titleStartsWithTarget),

  // クレイジーアンテナ
  'pllp.info': [descendantClass('#headline_block a', 'font[color="red"]'),
                descendantClass('a.ui-link-inherit', 'font[color="red"]')],

  // まとめのあんてな
  'newtopics.info': textContent(function(){return documentTitle().replace(/ \| まとめのあんてな$/, '');},
                                '.content_item_link a.link_a', titleEndsWithTarget),

  // まとめにゅーアンテナ
  'rankin9.com': function() {
    var target = querySelector(nextElementSibling(parentNode(queryNode('.list_title_entry a.check'))), '.tuduki a');
    return target && openLink(target.getAttribute('href'));
  },

  // にゅーす特報。
  'news109.com': textContent(function(){return documentTitle().replace(' ', '');},
                             '.article-body a', titleStartsWithTarget),

  // レッドアンテナ
  'red-an.com': function() {
    var u = queryString('u');
    if (u)
      openLink(reverse(decodeURIComponent(u)));
  },

  // GossipAntenna
  'gossipantenna.com': textContent(null, 'a.content_title', titleStartsWithTarget),

  // はぴきち
  'hapikichi.com': '.danger a',

  // indexmatome.com
  'indexmatome.com': '#sort > ul > li > a[itemprop="url"]',

  // NewsLog
  'newslogfc2.blog.fc2.com': 'li.selected a',

  // ぴっくんあんてな
  'pikupikku.ldblog.jp': descendantClass('.title a', 'font.fbg1'),

  // まとめのまとめニュース
  'matomeofmatomes.net': textContent(null, 'a.newarticle', titleEndsWithTarget),

  // (っ`ω´c) ふんがーアンテナ
  'funger-antena.info': '.top_option .kiji_link a',

  // World Best News
  'world-best-news.doorblog.jp': [descendantClass('.articles li a', 'span[style="color: red;"]'),
                                  descendantClass('.articles li a', 'font[color="RED"]')],

  // あんらんアンテナ(@_@)
  'www.en-ran.com': '.alert.alert-success a',

  // *まとめアンテナ
  '.antenna-2chan.info': [descendantClass('td a', 'font[color="#ff0000"]'),
                          descendantClass('a.ui-link-inherit', 'span[style="color:#ff0000;"]')],

  // オタク男子アンテナ
  'otadantenna.com': textContent(null, '.ant-content-title a'),

  // はろてな(*^-^)/
  'hello-2ch.net': '.hidden-xs a[style="color:red;"]',

  // AKB NEWS 48
  'an48.net': 'a.entry[style^="color:#F55;"]',

  // Favo★にゅー
  'news.favoch.com': '#main .active .feed_title a',

  // 僕の私のまとめちゃんねる
  'bokuwata-ch.com': descendantClass('a', '.specified'),

  // アンテナch
  // UAをPCにする
  'antch.net': textContent(null, '.feed a', titleStartsWithTarget),

  // オワタあんてな
  'owata-net.com': '.active .title a',
  '.owata-net.com': ref('owata-net.com'),

  // 情報アンテナ
  '.kachoufugetsu.info': '#mainentry .entry_title a',

  // 異次元目
  'ijigen.me': 'main article.cardinal > h1 > a',

  // ムササビあんてな
  'musasabiantenna.com': ['#mailpickup .entry_title_pic a',
                          '#mainentry .entry_title_pic a'],

  // 高澤淳介アンテナ_(:3」∠)_
  'www.2ch-a.net': 'strong a.title',

  // 2chまとめラボ
  'lab-matome.com': '#mainentry a',

  // ラブライブ!速報
  'lovesoku.com': ['li#select_rss a', 'li.select_rss a'],

  // よろず屋さん
  'yorozu-yasan.com': '.entry_title_link a[name="title"]+a',

  // あんてなねっと
  'antenna-site.net': '.archive a.kiji_link',
  'smart.antenna-site.net': ref('antenna-site.net'),

  // 二次元まとめアンテナ
  'nijigen.antennanijigen.info': descendantClass('a[target="_blank"]', 'font[color="#ff0000"]'),

  // Timely
  'timely.blog.jp': ref('bp2-antena'),

  // Lily
  'lily-app.net': '.article-title a',

  // キチママアンテナ
  'kitimama.net': function() {
    var rss = queryString('rss');
    if (rss)
      openLink(decodeURIComponent(rss));
  },

  // ライフまとめアンテナ
  'lifema.net': 'a.active',

  // ウリエルあんてな
  '2ch-matome.link': 'h2.main-title a',

  //  みーアンテナ(´∀`)
  '2ch-mi.net': ['#mainentry a',
                 function(){
                   var target = queryNode('.main a');
                   if (target)
                     target = target.getAttribute('href');
                   if (target === '')
                     target = window.location.href;
                   return openLink(target);
                 }],

  // ウェブニュー@アンテナ
  'webnew.blog.jp': ref('bp2-antena'),

  // 日本視覚文化研究会
  'blog.livedoor.jp/akio_live1': [textContent('.article-header .article-title', '#article-contents a', targetEndsWithTitle),
                                  textContent('h3.title', '.main a', targetEndsWithTitle)],

  // 2chまとまと
  '2ch-matomato.me': ['#article-main .btn a', '#news-main .btn a'],

  // にゅ~Hub
  'newhub.xyz': ['.feedzy-rss .rss_item2 .title a',
                 '.feedzy-rss .rss_item .title2 a'],

  // すぽ~Hub
  'spohub.xyz': ref('newhub.xyz'),

  // ヲタHub
  'otahub.xyz': ref('newhub.xyz'),

  // やくHub
  'yakuhub.xyz': ref('newhub.xyz'),

  // キチHub
  'kichihub.xyz': ref('newhub.xyz'),

  // ごしっぷHub
  'gossiphub.xyz': ref('newhub.xyz'),

  // お借りしますお
  'お借りしますお.xyz': ref('newhub.xyz'),

  // 稼ぐちゃんねる
  '稼ぐちゃんねる.xyz': ref('newhub.xyz'),

  // おんがくあんてな
  'musicantenna.wpblog.jp': ref('newhub.xyz'),

  // まとめアンテナトレンドニュース
  'watoson2.link': ref('newhub.xyz'),

  // 芸能ニュースなび
  'tqc00031.xyz': ref('newhub.xyz'),

  // WANTENA
  'wantena.net': '#top-blogroll-upper .left dd h3 a',

  // なまものまとめ
  'ikimonomatometyou.blog40.fc2.com': [textContent(null, '.ently_text a', titleStartsWithTarget),
                                       textContent(null, '.entry_body a', titleStartsWithTarget)],

  // アンテナアント
  'ant-ant.net': '.arc-document .pick a.lnk',

  // 濃ゆいアンテナ
  'koyu-iantenna.net': '.item a[style^="color:red"]',

  // 2テナ
  '.2chtena.link': function() {
    var path = location.pathname;
    if (path.length > 1)
      byClass('a.rssid' + path.substring(1));
  },

  // ニュースエッジ まとめ
  'matome.news-edge.com': 'li#recent.pickup a.elink',

  // にちゃんねるまとめ
  '2chmatome.sakura.ne.jp': descendantTextContent(null, '.sitebox li a', 'h3',
                                                  function(target, title) {
                                                    return titleEndsWithTarget(target.replace(/w+$/g, ''), title.replace(/w+$/g, ''));
                                                  }),

  // なんテナ
  'アンテナ.xyz': ['.btn a', '.graybtn a'],
  'xn--cckvdm6n.xyz': ref('アンテナ.xyz'),

  // アンテナ覇王
  '.antenahaoh.com': 'span.text a.red',

  // やきうアンテナ彡(゚)(゚)
  'yakiu-antenna.net': descendantClass('a.entry', 'h4[style="color:#F00;"]'),

  // 将棋アンテナ 棒銀くん
  'shogis.com': ref('headline.mtfj.net'),

  // わおぶー
  'www.wowumboo.com': '.listTitle a[style="color:red"]',

  // 詳しくアンテナ
  'kwsk-antena.com': 'a.btn-primary',

  // ぷ~アンテナ
  'poo-antenna.net': descendantClass('a', 'span[style="color:#33a5cB;"]'),

  // ニュースポッド
  'news-pod.com': '#contents article div p a',

  // 【まとめ】スマホ用
  '2ch.teamblog.jp': ['.main_article a',
                      '.article-body a:not([target])'],

  // コジメディア
  'kojikisokuhou.doorblog.jp': '.article-pickup > a.article-link',

  // 生活_だめぽアンテナ
  'seikatsu-damepo.xyz': 'a.btn-default',

  // Quantum Feed
  'quantum.47chambers.com': function() {
    var url = queryString('url');
    return url && openLink(reverse(decodeURIComponent(url)));
  },

  // ままま
  'mamama.asia': descendantClass('.blog_con a', '.entry_title_pu'),

  // 芸能人アンテナ
  'geinoujinantena.com': '.title2 a',

  // 芸能まとめニュース
  'geinouantenna.net': 'span.text a.red',

  // シマシマアンテナ
  'sigasiga.info': '.title2 a',

  // キムチアンテナ
  '2ch-k.net': 'div[style="background-color: rgb(245, 194, 101);"] div.article a',

  // まとめがね
  'matomegane.com': 'a.text-danger',

  // VIPまとめアンテナ
  'vipantena.net': 'a.red.aclick',

  // あんてなぱん
  'antennapan.dreamlog.jp': ref('bp2-antena'),

  // 5chまとめのまとめ
  '5chmm.com': '.antenna-rss-page-feed .feed-item .feed-link a',
  '5chmm.jp': descendantClass('a.post', 'div.title'),

  // みんなのアンテナ
  'min-tenna.com': descendantClass('td.kijitittle a', 'font[color="#ff0000"]'),

  // 春が大好きっ
  'harusuki.net': textContent(function(){var s = getTitle('h3.title'); return s && s.substring(0, s.lastIndexOf(':'));},
                              '.text a', targetStartsWithTitle),

  // MatoMerry
  'matomerry.com': 'main#main a.button.external',

  // 2chまとめ+
  'www.2chmatome.jp': descendantClass('.contents-body a', 'span.current-links'),

  // 2ch News Flash
  'gravure-idol-news.dreamlog.jp': ref('bp2-antena'),

  // まとめ屋アンテナ
  'blog.livedoor.jp/akinohotate': ref('bp2-antena'),

  // プロ野球アンテナ
  'nanj-antenna.com': ['.article-body-continue a',
                       '.article-wrap .article-button-li-2 a'],
  // 蹴球アンテナ
  'football-pr.com': ref('nanj-antenna.com'),

  // アンテナ速報
  'asoku.net': 'li[style="background-color: rgb(255, 255, 85);"] .entry a',

  // News web
  'newsweb.blog.jp': ref('bp2-antena'),

  // 拡散なうなうなーう
  'torendoimasyun.blog.jp': ref('bp2-antena'),

  // FALCON
  '2ch-mtmm.com': function() {
    var e = queryNode('#main_content .article-text h3.feed a.feed-click');
    return e && openLink(e.getAttribute('data-url'));
  },

  // アンテナサイトメーカー
  '.antena-mk.com': 'a.click-detail',

  // まとめポータル
  'blog.livedoor.com/matomeportal': descendantClass('li a', 'span.active'),
  'blog.livedoor.com/lite/matomeportal': ref('blog.livedoor.com/matomeportal'),

  // 芸能スクープ最前線
  'blog.livedoor.jp/geisuku': ref('bp2-antena'),

  // 気になるエロちゃんねる
  'kininaruero7.blog.jp': ref('bp2-antena'),

  // Antenna
  'antenna.wakshin.com': 'li.yellow a',

  // なんJポータル
  'jupiteryakiu.com': descendantClass('a[href^="link.php"]', 'span[style^="color:#f00;"]'),

  // 草アンテナ
  'ghdnewzealandshopc.com': '.title2 a',

  // NetaGear
  'netagear.net': '.check td:nth-child(2) a',

  // 動画ナビあんてな
  'antenna.i-like-movie.net': 'a.text-danger',

  //  Pocketアンテナ
  'pocket-antenna.com': '.article_lists .article_list.active a',

  // 5chアンテナMAP
  '.5chmap.com': textContent(null, 'a.list-group-item'),

  // 海外の反応アンテナ
  'kaigai-antenna.com': '.posts .post.target a',

  // まとめくすアンテナ
  'mtmx.jp': '.posts .post.target a',
  // まとめくすアンテナR18
  'mtmx18.jp': ref('mtmx.jp'),

  // 2chまとめあんてな1
  '2chm-1.com': 'a.sptitle[style$="font-weight: bold;"]',

  // まとめのベストオブまとめ
  'bestofmatome.work': 'a#Detail_Link',

  // サッカーラボアンテナ
  'sakarabo-antenna.com': [textContent(function(){return '続きを読む';}, '#post-entry .post-content a'),
                           '.moreBtn a'],

  // オカルト・パチンコ・不思議 etc まとめ
  'okaetc.blog.jp': 'div[style^="padding:5px;border-left:6px solid #440000;"] a',

  // ラッシュ速報!!まとめアンテナ
  'rss.rash.jp': descendantClass('a.l_b000b', 'font[color="#ff0000"]'),

  // サッカーまとめアンテナ11
  'soccer-antenna.net': '.title2 a',

  // サカナビ
  'soccer-navi.com': descendantClass('a', 'span[style="color:#f00;font-weight:bold;"]'),

  // Amuse Linx
  'linxwrt.com': function() {
    var archive = queryString('archive');
    return archive && byClass('a[value="' + archive + '"]');
  },

  // ギコあんてな(,,゚Д゚)
  'giko-antenna.com': function() {
    var match = window.location.pathname.match(/archives\/(\d+).html/);
    if (match)
      byClass('a[article_id="' + match[1] + '"]');
  },

  // 気になるニュースまとめアンテナ
  'trend-news.site': '.bs a.button',

  // とことこのいろいろ速報
  'tokotoko.2chblog.jp': ref('bp2-antena'),

  // 5chまとめのまとめX
  '5chmatomex.com': 'a.ab_link',

  // ハスキーアンテナ
  'kuma-antena01.com': '.title2 a',

  // 5ch News Flash
  '2chnewsflash.dreamlog.jp': ref('bp2-antena'),

  // ハンテナ
  'hantena.dreamlog.jp': ref('bp2-antena'),

  // ぷぅアンテナ
  'puu-antenna.com': '.box2 a.button',

  // 僕のニュースHeadline
  'bokunews.com': descendantClass('a.item_link', 'span[style="color:#f00;"]'),

  // 坂道46days
  'sakamichi46-days.net': descendantClass('a.item_link', 'span[style^="color:#f00;"]')
};

function toAction(action) {
  if (!action)
    return null;

  var type = typeof action;
  if (type == 'function')
    return action;
  if (type == 'string')
    return function() {byClass(action);};
  if (isArray(action))
    return function() {
      for (var i = 0, len = action.length; i < len; i++) {
        var fn = toAction(action[i]);
        if (fn && fn())
          return true;
      }
      return false;
    };
  return null;
}

function getAction() {
  var host = location.host;
  var action = siteDefs[host];
  var arr, i, len;

  if (!action) {
    arr = location.pathname.split('/');
    for (i = 1, len = arr.length; i < len && !action; i++) {
      host += '/' + arr[i];
      action = siteDefs[host];
    }
  }

  if (!action) {
    host = '';
    arr = location.host.split('.');
    for (i = arr.length - 1; i >= 0 && !action; i--) {
      host = '.' + arr[i] + host;
      action = siteDefs[host];
    }
  }

  if (isObject(action) && !isArray(action)) {
    var nodelay = action.nodelay;
    if (nodelay)
      nodelay();
    action = action.default;
  }

  return toAction(action);
}

function queryNode(selector) {
  return document.querySelector(selector);
}

function queryNodes(selector) {
  return document.querySelectorAll(selector);
}

function parentNode(e) {
  return e && e.parentNode;
}

function nextElementSibling(e) {
  if (!e)
    return null;
  if (e.nextElementSibling)
    return e.nextElementSibling;
  do
    e = e.nextSibling;
  while (e && e.nodeType !== 1);
  return e;
}

function documentTitle() {
  var title = queryNode('title');
  return title ? title.textContent : '';
}

function querySelector(e, selector) {
  return e && e.querySelector(selector);
}

function checkExists(selector) {
  return function() {return queryNode(selector);};
}

function ref(site) {
  return function() {
    var action = toAction(siteDefs[site]);
    return action && action();
  };
}

// querystringを取得する。
function getParameters() {
  var r = {};
  var p = window.location.search.substring(1).split('&');
  for (var i = 0; i < p.length; i++) {
    var e = p[i].split('=');
    r[e[0]] = e[1];
  }
  return r;
}

function queryString(name) {
  return getParameters()[name];
}

function isArray(obj) {
  return Object.prototype.toString.call(obj) === '[object Array]';
}

function isObject(obj) {
  return typeof obj  === "object";
}

function reverse(s) {
  return s.split('').reverse().join('');
}

var targetFound = false;

function openLink(target) {
  if (!targetFound) {
    if (!target || startsWith(target, 'https://play.google.com/') || startsWith(target, 'javascript' + ':'))
      return false;
    targetFound = true;
    window.open(target, '_self').focus();
  }
  return true;
}

// ターゲットを直接特定できるサイト
function byClass(targetQuery, ref) {
  var target = queryNode(targetQuery);
  if (target)
    return openLink(target.getAttribute(ref || 'href'));
  return false;
}

// ターゲットの配列で特定できるサイト
function byClasses() {
  for (var i = 0, len = arguments.length; i < len; i++)
    if (byClass(arguments[i]))
      return true;
  return false;
}

function classes() {
  var args = arguments;
  return function() {return byClasses.apply(null, args);};
}

// ターゲットの子孫から特定できるサイト
function byDescendantClass(targetQuery, descendantQuery, singleOnly) {
  var targets = queryNodes(targetQuery);
  var found = null;
  for (var i = 0, len = targets.length; i < len; i++)
    if (targets[i].querySelector(descendantQuery)) {
      if (singleOnly) {
        if (found)
          return false;
        found = targets[i];
      }
      else if (openLink(targets[i].getAttribute('href')))
        return true;
    }
  return found && openLink(found.getAttribute('href'));
}

function descendantClass(targetQuery, descendantQuery, singleOnly) {
  return function() {return byDescendantClass(targetQuery, descendantQuery, singleOnly);};
}

function startsWith(str, prefix) {
  return str.lastIndexOf(prefix, 0) === 0;
}

function endsWith(str, suffix) {
  return str.indexOf(suffix, str.length - suffix.length) !== -1;
}

// titleがtarget+anyのとき
function titleStartsWithTarget(target, title) {
  return startsWith(title, target);
}

// titleがany+targetのとき
function titleEndsWithTarget(target, title) {
  return endsWith(title, target);
}

// targetがtitle+anyのとき
function targetStartsWithTitle(target, title) {
  return startsWith(target, title);
}

// targetがany+titleのとき
function targetEndsWithTitle(target, title) {
  return endsWith(target, title);
}

function initMatcher(matcher) {
  return matcher ? matcher : function(target, title) {return target == title;};
}

// タイトルを取得する。
// titleQueryがfunction: 関数が返す文字列
// titleQueryがnull: ドキュメントのタイトル
// titleQueryがCSSセレクタ: セレクタに一致するノードの内容
function getTitle(titleQuery) {
  var title;
  if (typeof titleQuery == 'function')
    title = titleQuery();
  else {
    title = queryNode(titleQuery || 'title');
    if (!title)
      return null;
    title = title.textContent;
  }

  if (!title)
    return null;
  title = title.trim();
  if (!title.length)
    return null;
  return title;
}

// ターゲットをタイトル文字列から特定できるサイト
function byTextContent(titleQuery, targetQuery, matcher) {
  matcher = initMatcher(matcher);
  var title = getTitle(titleQuery);
  if (!title)
    return false;

  var targets = queryNodes(targetQuery);
  for (var i = 0, len = targets.length; i < len; i++) {
    var text = targets[i].getAttribute('title');
    if (text && matcher(text.trim(), title) && openLink(targets[i].getAttribute('href')))
      return true;
    text = targets[i].textContent;
    if (text && matcher(text.trim(), title) && openLink(targets[i].getAttribute('href')))
      return true;
  }
  return false;
}

function textContent(titleQuery, targetQuery, matcher) {
  return function() {return byTextContent(titleQuery, targetQuery, matcher);};
}

// ターゲットの子孫のテキストとタイトル文字列から特定できるサイト
function byDescendantTextContent(titleQuery, targetQuery, descendantQuery, matcher) {
  matcher = initMatcher(matcher);
  var title = getTitle(titleQuery);
  if (!title)
    return false;

  var targets = queryNodes(targetQuery);
  for (var i = 0, len = targets.length; i < len; i++) {
    var descendant = targets[i].querySelector(descendantQuery);
    if (descendant) {
      var text = descendant.textContent;
      if (text && matcher(text.trim(), title) && openLink(targets[i].getAttribute('href')))
        return true;
    }
  }
  return false;
}

function descendantTextContent(titleQuery, targetQuery, descendantQuery, matcher) {
  return function() {return byDescendantTextContent(titleQuery, targetQuery, descendantQuery, matcher);};
}

// リンクをリプレースするサイト
function byReplaceHref(targetQuery, oldValue, newValue) {
  var target = queryNode(targetQuery);
  if (target)
    return openLink(target.getAttribute('href').replace(oldValue, newValue));
  return false;
}

// リンクの'/feed/'を'/feed-click/'にリプレースするサイト
function byReplaceFeedClick(targetQuery) {
  return byReplaceHref(targetQuery, '/feed/', '/feed-click/');
}

function replaceFeedClick(targetQuery) {
  return function() {return byReplaceFeedClick(targetQuery);};
}

var action = getAction();
if (action) {
  var timeouts = [500, 1000, 2000];
  var index = -1;
  var runAction = function() {
    if ((index < 0 || !action ()) && ++index < timeouts.length)
      setTimeout (runAction, timeouts[index]);
  };
  runAction();
}