1300

移行用のテストです

Twitterのツイートをはてなブログに埋め込む形式でリストを表示

このスクリプトFirefoxで動作を保証しないものとします
let.hatelabo.jp

// ==UserScript==
// @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");
  });
}