インスタグラムでURLリストを作成
http://let.hatelabo.jp/jigendaddy/let/hJmd5b-10_Ne.js
// ==UserScript== // @name insta_url_list // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://www.instagram.com/* // @grant none // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js // ==/UserScript== function k_set() { var d_url = window.prompt("URLを入力してください", ""); var d_title = window.prompt("タイトルを入力してください", ""); if (window.confirm("タイトルは" + d_title + "\nURLは" + d_url + "でよろしいですか?\n一つでも違う場合はキャンセルを押してください")) { for (var i = 0; i < 128; i++) { if (!("v_url" + (i + 1) in localStorage)) { localStorage.setItem("v_url" + (i + 1), "v_" + d_title); localStorage.setItem("v_" + d_title, d_url); var flag = i + 1; break; } } } else { flag = 0; } return flag; } var result = document.evaluate('//nav//a[./button[@type]]', document, null, 7, null); result.snapshotItem(0).insertAdjacentHTML('beforebegin', '<input type="button" value="保存" id="save">'); result.snapshotItem(0).insertAdjacentHTML('beforebegin', '<input type="button" value="開く" id="open">'); result.snapshotItem(0).insertAdjacentHTML('beforebegin', '<input type="button" value="削除" id="remove">'); var result2 = document.evaluate('id("save")', document, null, 7, null); result2.snapshotItem(0).addEventListener('click', function () { var f_lp = 0; f_lp = k_set(); if (f_lp != 0) { if ("v_null" in localStorage || "v_" in localStorage) { alert("登録処理を中断します"); localStorage.removeItem("v_null"); localStorage.removeItem("v_"); localStorage.removeItem("v_url" + f_lp); } else { alert("保存しました"); } } }); var result3 = document.evaluate('id("open")', document, null, 7, null); result3.snapshotItem(0).addEventListener('click', function () { if (document.getElementById("select01") == null) { result2.snapshotItem(0).insertAdjacentHTML("beforebegin", "<select id='select01'><option value='none'>選択してください</option></select>"); } var result5 = document.evaluate('id("select01")', document, null, 7, null); for (var i = 0; i < 128; i++) { if ("v_url" + (i + 1) in localStorage) { var d_title = localStorage.getItem("v_url" + (i + 1)) var d_url = localStorage.getItem(d_title); d_title = d_title.replace("v_", ""); result5.snapshotItem(0).insertAdjacentHTML("beforeend", "<option value='" + d_url + "'>" + d_title + "</option>"); } else { break; } } result5.snapshotItem(0).addEventListener('change', function () { var selectedValue = $("#select01").val(); location.href = selectedValue; }); }); var result4 = document.evaluate('id("remove")', document, null, 7, null); result4.snapshotItem(0).addEventListener('click', function () { for (var j = 0; j < 128; j++) { if (localStorage.getItem("v_url" + (j + 1)) in localStorage) { localStorage.removeItem(localStorage.getItem("v_url" + (j + 1))); localStorage.removeItem("v_url" + (j + 1)); alert("削除しました"); break; } } });
ニュートピ!の情報を削る
// ==UserScript== // @name newtopi_subback // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://newstopics.jp/* // @exclude https://newstopics.jp/url/* // @grant none // ==/UserScript== var result = document.evaluate('//a[@class="title"]', document, null, 7, null); var result2 = document.evaluate('//a[@class="title"]/text()', document, null, 7, null); var result3 = document.evaluate('//span[@class="cnt"]/text()', document, null, 7, null); document.body.innerHTML = ""; for (var i = 0; i < result.snapshotLength; i++) { document.body.insertAdjacentHTML("beforeend", "<a href='" + result.snapshotItem(i).href + "'>" + (i + 1) + ": " + result2.snapshotItem(i).nodeValue + "(" + result3.snapshotItem(i).nodeValue + ")</a><br>"); }
a:link { color: #0000EE; text-decoration: underline; } a:visited { color: #551A8B; text-decoration: underline; } a:active { color: #FF0000; text-decoration: underline; }
インスタグラムで黒背景の段階を飛ばす
// ==UserScript== // @name insta_open_blackout_curtain // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://www.instagram.com/* // @exclude https://www.instagram.com/p/* // @grant none // ==/UserScript== var result = document.evaluate('//article//a', document, null, 7, null); for (var i = 0; i < result.snapshotLength; i++) { result.snapshotItem(i).addEventListener('click', sample, false); result.snapshotItem(i).dataset.href = result.snapshotItem(i).href; result.snapshotItem(i).href = "javascript:void(0);"; } function sample() { //ダミーの履歴を追加 history.pushState(null, null, "#"); location.href = this.dataset.href; }
Youtube履歴ページで指定したチャンネルの動画を表示
// ==UserScript== // @name youtube_history_abema // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://www.youtube.com/feed/history // @grant none // ==/UserScript== var result2 = document.evaluate('//input[@id="search"]', document, null, 7, null); result2.snapshotItem(0).addEventListener('change', function () { if (result2.snapshotItem(0).value == "acc") { var sign = window.prompt("検索するチャンネル名を入力してください", "AbemaTV"); var reg = new RegExp(sign); var result = document.evaluate('//ytd-video-renderer[.//yt-formatted-string[@id="byline"]]', document, null, 7, null); var result4 = document.evaluate('//ytd-video-renderer//yt-formatted-string[@id="byline"]', document, null, 7, null); for (var i = 0; i < result.snapshotLength; i++) { if (reg.test(result4.snapshotItem(i).title)) { result.snapshotItem(i).classList.add("kore"); } } var result3 = document.evaluate('//ytd-video-renderer[not(contains(@class,"kore"))]', document, null, 7, null); for (var j = 0; j < result3.snapshotLength; j++) { result3.snapshotItem(j).style.display = 'none'; } } else if (result2.snapshotItem(0).value == "copy") { var result5 = document.evaluate('//ytd-video-renderer[contains(@class,"kore")]//a[@id="video-title"]', document, null, 7, null); var buf = ""; for (var k = 0; k < result5.snapshotLength; k++) { buf = buf + " " + result5.snapshotItem(k).href; } var sign2 = window.prompt("url_list", buf); } });
ニュートピ!で画像付きツイートのクリック時に画像のみを表示
このスクリプトはTwitter 原寸びゅーとの併用を前提とします。ブラウザ拡張版のインストールをお勧めします
// ==UserScript== // @name newtopi_img2twitter // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://twitter.com/*/status/*/photo/*?ref_src=*newstopics.jp* // @grant none // ==/UserScript== var result = document.evaluate('//div[@class="permalink-inner permalink-tweet-container"]//img[@class="twOpenOriginalImage_touched"]', document, null, 7, null); var tmp = []; for (var i = 0; i < result.snapshotLength; i++) { tmp[i] = result.snapshotItem(i).src; } if (result.snapshotLength > 0) { if (window.confirm("このツイートには画像が含まれています。\n画像のみを表示してよろしいですか?")) { var now1 = (new Date).getTime(); history.pushState(null, null, "/gazou_" + now1); document.body.innerHTML = ""; for (i = 0; i < result.snapshotLength; i++) { document.body.insertAdjacentHTML("beforeend", "<img src=" + tmp[i] + ">"); } } } window.addEventListener('popstate', function (event) { var n_url = location.href; n_url = n_url.replace(/\/photo\/(\d).+/g, "/photo/$1"); location.href = n_url; });
インスタグラムで動画再生時に長さと音量調整用スライダーを表示
このスクリプトは一つの投稿に複数の画像または動画が存在する場合正しく機能しません。またインスタグラムで黒背景の段階を飛ばすgreasemonkeyスクリプトと併用することをお勧めします
// ==UserScript== // @name insta_movie // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://www.instagram.com/* // @grant none // ==/UserScript== var result = document.evaluate('//video', document, null, 7, null); var video = result.snapshotItem(0); video.addEventListener('loadedmetadata', function () { var result2 = document.evaluate('//time', document, null, 7, null); result2.snapshotItem(0).insertAdjacentHTML("afterbegin", Math.floor(this.duration) + "秒 "); result2.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="range" name="example" step="5" max="100" id="hoge">'); document.getElementById("hoge").addEventListener('change', function () { for (var i = 0; i < result.snapshotLength; i++) { result.snapshotItem(i).volume = document.getElementById("hoge").value / 100; this.title = document.getElementById("hoge").value + "%"; } }, false); }); var result3 = document.evaluate('//a[./time]', document, null, 7, null); result3.snapshotItem(0).insertAdjacentHTML('afterend', '<form name="form1"><input type="button" id="v_open" value="動画を別のタブで開く"></form>'); document.getElementById("v_open").addEventListener('click', function () { window.open(video.src); });
Togetterにコメント欄へ飛ぶリンクを追加
// ==UserScript== // @name togetter_simple // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://togetter.com/li/* // @grant none // ==/UserScript== var result = document.evaluate('//div[@class="feedback_box"]', document, null, 7, null); result.snapshotItem(0).insertAdjacentHTML('afterbegin', '<a href="#comment_box" id="j_come">コメント欄に飛ぶ</a>'); var result2 = document.evaluate('//div[@class="title_box"]/h2', document, null, 7, null); result2.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" class="simple" value="簡易版">'); var result3 = document.evaluate('id("j_come")', document, null, 7, null); result3.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" class="simple" value="簡易版">'); $(function () { $('.simple').click(function () { for (var j = 10; j <= 20; j++) { $('.f' + j).css({ "font-size": "108%", "line-height": "1.4em", "color": "#000", "font-weight": "normal", }); } }, ); });
.simple { font-size: 100%; } .list_tweet_box .user_link, .list_tweet_box .user_link a { color: #333 !important; }