spot_search

    @@ -1,5 +1,5 @@ // ==UserScript== -// @title twitter2hatena +// @title twitter2hatena // @name twitter2hatena // @namespace http://tampermonkey.net/ // @version 0.1
  • // ==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 です。

History

  1. 2018/12/25 13:38:17 - 2018-12-25
  2. 2018/12/25 13:29:47 - 2018-12-25
  3. 2018/12/10 21:54:23 - 2018-12-10
  4. 2018/12/10 21:53:59 - 2018-12-10
  5. 2018/12/05 15:16:44 - 2018-12-05
  6. 2018/12/05 15:15:20 - 2018-12-05
  7. 2018/12/01 14:38:55 - 2018-12-01
  8. 2018/12/01 14:36:46 - 2018-12-01
  9. 2018/12/01 14:36:29 - 2018-12-01
  10. 2018/11/30 12:57:45 - 2018-11-30