Hatena Bookmark entrylist from/to bookmarklist

By Yuichirou Last update Mar 13, 2009 — Installed 62 times. Daily Installs: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

There are 3 previous versions of this script.

// ==UserScript==
// @name           Hatena Bookmark entrylist from/to bookmarklist
// @namespace      http://d.hatena.ne.jp/Yuichirou/
// @description    Add a link to bookmark list page from entry list and vice versa.
// @include        http://b.hatena.ne.jp/entrylist*
// @include        http://b.hatena.ne.jp/bookmarklist*
// ==/UserScript==

main: {
  var inputtext = document.getElementsByClassName("inputtext")[0];
  if (!inputtext) break main;
  var url = inputtext.value;

  if (location.href.indexOf("http://b.hatena.ne.jp/entrylist") == 0) {
    var li = document.createElement("li");
    var link = li.appendChild(document.createElement("a"));
    link.href = "/bookmarklist?url=" + encodeURIComponent(url);
    link.textContent = "\u30D6\u30AF\u30DE";

    var selector = document.getElementsByClassName("selector")[0];
    selector.insertBefore(li, selector.getElementsByClassName("url")[0] || null);

  } else {
    var selector = document.createElement("ul");
    selector.className = "selector";

    [ { name: "\u65B0\u7740",       prefix: "/entrylist?sort=eid&url="   },
      { name: "\u6CE8\u76EE",       prefix: "/entrylist?sort=hot&url="   },
      { name: "\u4EBA\u6C17",       prefix: "/entrylist?sort=count&url=" },
      { name: "\u30D6\u30AF\u30DE", prefix: "/bookmarklist?url="         },
    ].forEach(function (type) {
      var link = document.createElement("a");
      link.href = type.prefix + encodeURIComponent(url);
      link.textContent = type.name;
      selector.appendChild(document.createElement("li")).appendChild(link);
    });
    selector.lastChild.className = "selected";

    var url_ul = document.createElement("ul");
    var url_li = url_ul.appendChild(document.createElement("li"));
    url_li.appendChild(document.createTextNode("URL\uFF1A"));
    var link = url_li.appendChild(document.createElement("a"));
    link.href = link.textContent = url;

    var submenu = document.getElementsByClassName("submenu-inner")[0];
    submenu.appendChild(selector);
    submenu.appendChild(url_ul);
  }
}