登録したTwitterのアカウントをリストで表示
このスクリプトはFirefoxで動作を保証しないものとします
let.hatelabo.jp
// ==UserScript== // @name twitter_acc_list // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://twitter.com/* // @grant none // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js // ==/UserScript== //登録処理 var result2 = document.evaluate('id("global-new-tweet-button")', document, null, 7, null); result2.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" value="登録" id="regist">'); var result3 = document.evaluate('id("regist")', document, null, 7, null); result3.snapshotItem(0).addEventListener('click', sample, false); function sample() { var result = document.evaluate('//link[@rel="canonical"]', document, null, 7, null); var n_str = result.snapshotItem(0).href + "/"; var n_arr = n_str.split("/"); var acc = n_arr[3]; if (acc.length == 0) { acc = "home_kokokara_hajimaruyo"; } for (var i = 0; i < 128; i++) { if (!('user' + (i + 1) in localStorage)) { if (i == 127) { alert("保存できるURLの数は128までに制限しています。\nローカルストレージから登録したキーを削除してください"); break; } var cb = list_check(i + 1, acc); if (cb != 1) { localStorage.setItem('user' + (i + 1), acc); var memo_ran = window.prompt("コメントは何かありますか?", ""); localStorage.setItem(acc, memo_ran); alert("登録しました"); break; } else { break; } } } //重複チェック function list_check(lp, n_name) { var flag = 0; for (var i = 0; i < lp; i++) { if (localStorage.getItem('user' + (i + 1)) == n_name) { alert("このページは既に登録されています"); flag = 1; break; } } return flag; } } //リスト表示処理 var result4 = document.evaluate('id("global-new-tweet-button")', document, null, 7, null); result4.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" value="リスト" id="list">'); var result5 = document.evaluate('id("list")', document, null, 7, null); result5.snapshotItem(0).addEventListener('click', sample2, false); function sample2() { localStorage.setItem("n_url", location.href); history.pushState(null, null, "/koko_nanimo_naidesuyo2"); document.body.innerHTML = "<ol type=1></ol>"; var result6 = document.evaluate('//ol', document, null, 7, null); for (var i = 0; i < 128; i++) { if ('user' + (i + 1) in localStorage) { if (localStorage.getItem('user' + (i + 1)) != "home_kokokara_hajimaruyo") { if (localStorage.getItem(localStorage.getItem('user' + (i + 1))) != null) { result6.snapshotItem(0).insertAdjacentHTML('beforeend', '<li class=line' + (i + 1) + '><img src=https://twitter.com/' + localStorage.getItem('user' + (i + 1)) + '/profile_image?size=mini><a href=https://twitter.com/' + localStorage.getItem('user' + (i + 1)) + '>@' + localStorage.getItem('user' + (i + 1)) + '</a><div>' + localStorage.getItem(localStorage.getItem('user' + (i + 1))) + '</div></li>'); } else { result6.snapshotItem(0).insertAdjacentHTML('beforeend', '<li class=line' + (i + 1) + '><img src=https://twitter.com/' + localStorage.getItem('user' + (i + 1)) + '/profile_image?size=mini><a href=https://twitter.com/' + localStorage.getItem('user' + (i + 1)) + '>@' + localStorage.getItem('user' + (i + 1)) + '</a></li>'); } } else { result6.snapshotItem(0).insertAdjacentHTML('beforeend', '<li class=line' + (i + 1) + '>home</li><br>'); } } else { document.body.insertAdjacentHTML('beforeend', '<input type=button id=remove value=削除>'); break; } } var listArray = document.querySelectorAll('li+li'); for (var a = 0; a < listArray.length; a++) { listArray[a].style.marginTop = "1em"; } $(function () { $('#remove').click(function () { var j = window.prompt("何番目のアカウントを削除しますか?\n半角英数で入力してください。\n入力例は1番から3番を消す場合です", "1-3"); if (/\-/g.test(j)) { var j_sp = j.split("-"); var j_begin = j_sp[0]; var j_end = j_sp[1]; while (j_begin <= j_end) { $('.line' + j_begin).css({ "display": "none" }); j_begin++; } } else { $('.line' + j).css({ "display": "none" }); } }, ); }); window.addEventListener('popstate', function (event) { location.href = localStorage.getItem("n_url"); }); }