Greasy Fork

Greasy Fork is available in English.

Google検索結果に時期指定、再生時間指定、画像サイズ指定、日本語のみボタンを設置する

画面解像度が高い人向き ニコ動検索結果にも並べ替えボタンを設置(実験的 Google検索結果にGoogle NewsへのRSSリンクとRSS Autodiscoveryを埋め込む

当前为 2018-11-29 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        Google検索結果に時期指定、再生時間指定、画像サイズ指定、日本語のみボタンを設置する
// @description 画面解像度が高い人向き ニコ動検索結果にも並べ替えボタンを設置(実験的 Google検索結果にGoogle NewsへのRSSリンクとRSS Autodiscoveryを埋め込む
// @include     *://www.google.tld/search?*
// @include     *://www.nicovideo.jp/search/*
// @include     *://www.nicovideo.jp/tag/*
// @include     *://www.nicovideo.jp/mylist_search/*
// @version     0.4.2
// @grant       none
// @namespace http://greasyfork.icu/users/181558
// ==/UserScript==

(function() {
  addLink("google", "//div[@id='hdtbSum']", "none", "", "全て", "|", /&tbs=qdr:[hdwmy]/, "");
  addLink("google", "//div[@id='hdtbSum']", "", "", "1時間以内", "|", /&tbs=qdr:[hdwmy]/, "&tbs=qdr:h");
  addLink("google", "//div[@id='hdtbSum']", "", "", "24時間以内", "|", /&tbs=qdr:[hdwmy]/, "&tbs=qdr:d");
  addLink("google", "//div[@id='hdtbSum']", "", "", "1週間以内", "|", /&tbs=qdr:[hdwmy]/, "&tbs=qdr:w");
  addLink("google", "//div[@id='hdtbSum']", "", "", "1ヶ月以内", "|", /&tbs=qdr:[hdwmy]/, "&tbs=qdr:m");
  addLink("google", "//div[@id='hdtbSum']", "", "", "1年以内", "<DIV></DIV>", /&tbs=qdr:[hdwmy]/, "&tbs=qdr:y");
  addLink("google", "//div[@id='hdtbSum']", "&tbm=vid", "", "動画", "|", /&tbs=qdr:[hdwmy]/, "");
  addLink("google", "//div[@id='hdtbSum']", "&tbm=vid", "", "4分未満", "|", /&tbs=dur:[sml]/, "&tbs=dur:s");
  addLink("google", "//div[@id='hdtbSum']", "&tbm=vid", "", "4~20分", "|", /&tbs=dur:[sml]/, "&tbs=dur:m");
  addLink("google", "//div[@id='hdtbSum']", "&tbm=vid", "", "20分以上", "<DIV></DIV>", /&tbs=dur:[sml]/, "&tbs=dur:l");
  addLink("google", "//div[@id='hdtbSum']", "&tbm=isch", "", "画像", "|", /&tbs=isz:[iml]/, "");
  addLink("google", "//div[@id='hdtbSum']", "&tbm=isch", "", "アイコンサイズ", "|", /&tbs=isz:[iml]/, "&tbs=isz:i");
  addLink("google", "//div[@id='hdtbSum']", "&tbm=isch", "", "中", "|", /&tbs=isz:[iml]/, "&tbs=isz:m");
  addLink("google", "//div[@id='hdtbSum']", "&tbm=isch", "", "大", " ", /&tbs=isz:[iml]/, "&tbs=isz:l");
  addLink("google", "//div[@id='hdtbSum']", "", "", "日本語のみ", "", /&lr=lang_ja/, "&lr=lang_ja");

  var nicoPlace = '//div[@class="message"]|//div[@class="contentBody"]';
  var nicodeleteOpt = /[\?&]f_range=.|[\?&]l_range=.|[\?&]opt_md=.*|[\?&]start=.*|[\?&]end=.*|[\?&]ref=[^&]*|[\?&]sort=.|[\?&]order=.|[\?&]page=\d*|[\?&]track=[^&]*/g;
  addLink("nico", nicoPlace, "", "", "人気高", "|", nicodeleteOpt, "?sort=h&order=d");
  addLink("nico", nicoPlace, "", "", "おすすめ", " ", nicodeleteOpt, "?sort=p&order=d");
  addLink("nico", nicoPlace, "", "", "投稿新", "|", nicodeleteOpt, "?sort=f&order=d");
  addLink("nico", nicoPlace, "", "", "投稿古", " ", nicodeleteOpt, "?sort=f&order=a");
  addLink("nico", nicoPlace, "", "", "コメ新", "|", nicodeleteOpt, "?sort=n&order=d");
  addLink("nico", nicoPlace, "", "", "コメ古", " ", nicodeleteOpt, "?sort=n&order=a");
  addLink("nico", nicoPlace, "", "", "コメ多", "|", nicodeleteOpt, "?sort=r&order=d");
  addLink("nico", nicoPlace, "", "", "コメ少", " ", nicodeleteOpt, "?sort=r&order=a");
  addLink("nico", nicoPlace, "", "", "再生多", "|", nicodeleteOpt, "?sort=v&order=d");
  addLink("nico", nicoPlace, "", "", "再生少", " ", nicodeleteOpt, "?sort=v&order=a");
  addLink("nico", nicoPlace, "", "", "マイリス多", "|", nicodeleteOpt, "?sort=m&order=d");
  addLink("nico", nicoPlace, "", "", "マイリス少", " ", nicodeleteOpt, "?sort=m&order=a");
  addLink("nico", nicoPlace, "", "", "時間長", "|", nicodeleteOpt, "?sort=l&order=d");
  addLink("nico", nicoPlace, "", "", "時間短", " ", nicodeleteOpt, "?sort=l&order=a");

  addLink("nicovideo.jp/mylist_search/", '//p[@class="font12"]', "", " <BR>", "人気", " ", nicodeleteOpt, "?sort=p&order=d");
  addLink("nicovideo.jp/mylist_search/", '//p[@class="font12"]', "", "", "動画多", "|", nicodeleteOpt, "?sort=n&order=d");
  addLink("nicovideo.jp/mylist_search/", '//p[@class="font12"]', "", "", "動画少", " ", nicodeleteOpt, "?sort=n&order=a");
  addLink("nicovideo.jp/mylist_search/", '//p[@class="font12"]', "", "", "更新新", " ", nicodeleteOpt, "?sort=u&order=d");
  addLink("nicovideo.jp/mylist_search/", '//p[@class="font12"]', "", "", "適合率", " ", nicodeleteOpt, "?sort=r&order=d");
  addLink("nicovideo.jp/mylist_search/", '//p[@class="font12"]', "", "", "作成新", "|", nicodeleteOpt, "?sort=c&order=d");
  addLink("nicovideo.jp/mylist_search/", '//p[@class="font12"]', "", "", "作成古", " ", nicodeleteOpt, "?sort=c&order=a");
  addLink("nicovideo.jp/mylist_search/", '//p[@class="font12"]', "", "", "フォロー多", " ", nicodeleteOpt, "?sort=f&order=d");
  //addLink("","" , "", "", "", " ", , "?");

  addAutoDiscovery();

  return;

  function addAutoDiscovery() { // Google検索結果に同じ検索ワードでGoogle NewsへのRSSリンクとRSS Autodiscoveryを埋め込む
    if (location.href.indexOf("google") == -1) return
    let word = eleget0('//input[@aria-label="検索"]|//input[@aria-label="Search"]').value;
    var place = eleget0("//div[@id='hdtbSum']");
    var link = place.parentNode.insertBefore(document.createElement("link"), place);
    var url2 = "https://news.google.com/news/rss/search/section/q/" + encodeURI(word) + "?ned=jp&hl=ja&gl=JP";
    //    var url2 = "https://news.google.com/news/rss/search/section/q/" + encodeURI(word); //  + "/" + encodeURI(word) + "?ned=jp&hl=ja&gl=JP";
    link.rel = "alternate"
    link.type = "application/rss+xml"
    link.title = document.title;
    link.href = url2;

    var place = eleget0("//div[@id='hdtbSum']");
    //    var place = eleget0("//div[text()='ニュース']|//a[text()='ニュース']");
    if (!place) return;
    var url = url2;
    var ele = document.createElement('span');
    ele.setAttribute("style", "font-weight:normal;");
    let rssICON = '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABdUlEQVQ4ja3TL2iWURTH8c+VJwwxjjeMBQUxGRdkGESHBothw3CDwfTaFiwDm1MQViyiQRG8iviCYBAGKg60GEwm/2AZQ8bixIXxXsNzH717dSLiKYdzOHzv+Z17TsjJcdzEOBrs0VrnOxtWfhsb6IecfMBB/2Yfm/IyPMXbAjuKyb8A9JrSNqyE6BrkBKZxEWf+AGhCTr5iL+7hDt6FaL2ryMkM7mLiN4CtkJNvGKuSQ7zBEgYhkpNJPMehUUA96VuYw3XsxyMs52Q8RKs4gbXRFmrApxANQjSPA7iMGaxUkHOjgFrCSzzEkxDbl3Iyiwd4gVNFzmM/B7tDwjHcwOecLOREiAa4gpOYLXVLu0kYYoBnWMRCyV/FF8yX+BVWa0C3ordDNBei09qlupSTiRBt4T6O5KQX4g/IL4DNqpvNMpdO6+tSe7jE77uuG+1hwIWygWOV3rM52af9FTifkylMlXj7vxxTXzv9np3nvJt157yO/nf0A3GlIF+BggAAAABJRU5ErkJggg==">';
    ele.innerHTML = " <a href=" + url + " rel=\"noopener noreferrer nofollow\">" + rssICON + "</a>";
    //    ele.innerHTML = "<a href=" + url + " rel=\"noopener noreferrer nofollow\" style='position:absolute; z-index:1;'>" + rssICON + "</a>";
    place.appendChild(ele);
  }

  function addLink(site, placexpath, terms, beforetitle, title, append, deleteoption, option) {
    if (location.href.indexOf(site) == -1) return;
    var place = eleget0(placexpath);
    if (!place) return;
    var url = window.location.href;
    if (terms !== "") url = url.replace(/&tbm=.*/, "");
    if (terms !== "none") url = url + terms;
    url = url.replace(deleteoption, '') + option;
    var ele = document.createElement('span');
    ele.setAttribute("style", "font-weight:normal;");
    ele.innerHTML = beforetitle + "<a href=" + url + " rel=\"noopener noreferrer nofollow\">" + title + "</a>" + append;
    place.appendChild(ele);
    return;
  }

  function eleget0(xpath) {
    var ele = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
    return ele.snapshotLength > 0 ? ele.snapshotItem(0) : "";
  }

})();