spot_search
by
jigendaddy
2018-12-25 [2018/12/25 13:38:17]
try to take over the world!
@@ -1,48 +1,66 @@
// ==UserScript==
-// @title spot_author_search
-// @name spot_author_search
+// @title twitter2hatena
+// @name twitter2hatena
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
-// @match https://travel.spot-app.jp/*
+// @match https://twitter.com/*/status/*
// @grant none
// ==/UserScript==
-var result6 = document.evaluate('//ul[@class="nav_list"]', document, null, 7, null);
-result6.snapshotItem(0).insertAdjacentHTML('afterbegin', '<input type="text" id="sub_search" value="">');
-document.getElementById("sub_search").addEventListener('change', function () {
- location.href = "https://travel.spot-app.jp/?s=" + document.getElementById("sub_search").value;
-});
-if (!(/\/tag\//g.test(location.href)) && !(/\/category\//g.test(location.href))) {
- var result = document.evaluate('//div[@class="author-name"]/a/text()', document, null, 7, null);
- var result2 = document.evaluate('//div[@class="loop-meta"]/div', document, null, 7, null);
- for (var i = 0; i < result.snapshotLength; i++) {
- var sp = " ";
- var reg2 = new RegExp(sp);
- if (reg2.test(result.snapshotItem(i).nodeValue)) {
- result2.snapshotItem(i).insertAdjacentHTML('beforeend', "<div class=n_author><a></a></div>");
- } else {
- result2.snapshotItem(i).insertAdjacentHTML('beforeend', "<div class=n_author><a href=https://travel.spot-app.jp/tag/" + result.snapshotItem(i).nodeValue + "/#dummy>" + result.snapshotItem(i).nodeValue + "</a></div>");
+var result = document.evaluate('//div[@class="ProfileTweet-actionList js-actions"]', document, null, 7, null);
+result.snapshotItem(0).insertAdjacentHTML('beforeend', '<input type="button" value="登録" id="regist2">');
+var result2 = document.evaluate('id("regist2")', document, null, 7, null);
+result2.snapshotItem(0).addEventListener('click', sample, false);
+
+function sample() {
+ for (var i = 0; i < 128; i++) {
+ if (!('tweet' + (i + 1) in localStorage)) {
+ if (i == 127) {
+ alert("保存できるURLの数は128までに制限しています。\nローカルストレージから登録したキーを削除してください");
+ break;
+ }
+ var cb = list_check(i + 1, location.href);
+ if (cb != 1) {
+ localStorage.setItem('tweet' + (i + 1), location.href);
+ alert("登録しました");
+ break;
+ } else {
+ break;
+ }
}
}
- var result3 = document.evaluate('//div[@class="cover"]', document, null, 7, null);
- for (var j = 0; j < result3.snapshotLength; j++) {
- result3.snapshotItem(j).remove();
- }
-} else if (/#dummy/g.test(location.href)) {
- var result5 = document.evaluate('//span[@class="title"]/text()', document, null, 7, null);
- var t1 = result5.snapshotItem(0).nodeValue;
- var er = "ERROR"
- var reg = new RegExp(er);
- if (reg.test(t1)) {
- alert("authorページが確認できません。\n元のページに戻ります");
- history.back();
- } else {
- var result4 = document.evaluate('//div[@class="author-name"]/a', document, null, 7, null);
- for (var k = 0; k < result4.snapshotLength; k++) {
- if (result4.snapshotItem(k).href == result4.snapshotItem(k + 1).href) {
- location.replace(result4.snapshotItem(k).href);
+ //重複削除
+ function list_check(lp, n_name) {
+ var flag = 0;
+ for (var i = 0; i < lp; i++) {
+ if (localStorage.getItem('tweet' + (i + 1)) == n_name) {
+ alert("このツイートは既に登録されています");
+ flag = 1;
+ break;
}
}
+ return flag;
+ }
+}
+//リスト表示処理
+var result4 = document.evaluate('//div[@class="ProfileTweet-actionList js-actions"]', document, null, 7, null);
+result4.snapshotItem(0).insertAdjacentHTML('beforeend', '<input type="button" value="リスト" id="list2">');
+var result5 = document.evaluate('id("list2")', 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_naidesuyo3");
+ document.body.innerHTML = "";
+ for (var i = 0; i < 128; i++) {
+ if ('tweet' + (i + 1) in localStorage) {
+ document.body.insertAdjacentHTML('beforeend', '<div>[' + localStorage.getItem('tweet' + (i + 1)) + ':embed]</div>');
+ } else {
+ break;
+ }
}
+ window.addEventListener('popstate', function (event) {
+ location.href = localStorage.getItem("n_url");
+ });
}
// ==UserScript==
// @title twitter2hatena
// @name twitter2hatena
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://twitter.com/*/status/*
// @grant none
// ==/UserScript==
var result = document.evaluate('//div[@class="ProfileTweet-actionList js-actions"]', document, null, 7, null);
result.snapshotItem(0).insertAdjacentHTML('beforeend', '<input type="button" value="登録" id="regist2">');
var result2 = document.evaluate('id("regist2")', document, null, 7, null);
result2.snapshotItem(0).addEventListener('click', sample, false);
function sample() {
for (var i = 0; i < 128; i++) {
if (!('tweet' + (i + 1) in localStorage)) {
if (i == 127) {
alert("保存できるURLの数は128までに制限しています。\nローカルストレージから登録したキーを削除してください");
break;
}
var cb = list_check(i + 1, location.href);
if (cb != 1) {
localStorage.setItem('tweet' + (i + 1), location.href);
alert("登録しました");
break;
} else {
break;
}
}
}
//重複削除
function list_check(lp, n_name) {
var flag = 0;
for (var i = 0; i < lp; i++) {
if (localStorage.getItem('tweet' + (i + 1)) == n_name) {
alert("このツイートは既に登録されています");
flag = 1;
break;
}
}
return flag;
}
}
//リスト表示処理
var result4 = document.evaluate('//div[@class="ProfileTweet-actionList js-actions"]', document, null, 7, null);
result4.snapshotItem(0).insertAdjacentHTML('beforeend', '<input type="button" value="リスト" id="list2">');
var result5 = document.evaluate('id("list2")', 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_naidesuyo3");
document.body.innerHTML = "";
for (var i = 0; i < 128; i++) {
if ('tweet' + (i + 1) in localStorage) {
document.body.insertAdjacentHTML('beforeend', '<div>[' + localStorage.getItem('tweet' + (i + 1)) + ':embed]</div>');
} else {
break;
}
}
window.addEventListener('popstate', function (event) {
location.href = localStorage.getItem("n_url");
});
}
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。