for movatwi on pc

// ==UserScript==
// @name movatwitter permalink add
// @namespace http://taizooo.tumblr.com
// @include http://movatwitter.jp/*
// @include http://tw.f-shin.net/*
// @include http://www.movatwi.jp/*
// @require http://gist.github.com/3242.txt
// ==/UserScript==
 
(function(){
  //remove shortcut key
  var shortcut = unsafeWindow.shortcut;
  if(!shortcut) {
    return;
  }
  shortcut.remove("p");
  shortcut.remove("n");
  shortcut.remove("f");
  shortcut.remove("l");

  // direct link to twitter.com
  function mkpmlnk(para){
    $X('.//a[contains(text(), "Re")]', para).forEach(function(a){
      var match = a.href.match(/atuser=(\w+)&reply_id=(\d+)&?/);
      var id = match[1];
      var post = match[2];
      var atw = document.createElement("a");
      var textNode = document.createTextNode(' Permalink');
      pmlnk = "http://twitter.com/" + id + "/status/" + post;
      atw.appendChild(textNode);
      atw.href = 'data:text/html,' +
        <head>
          <meta http-equiv="Refresh" content={"0;url=" + pmlnk} />
        </head>.toXMLString();
      atw.className = "tw";
      atw.rel = "bookmark";
      a.parentNode.insertBefore(atw, a.nextSibling);
    });
  }

  // hAtom
  function f(doc){
    $X('//div[@class="tlGray" or @class="tlWhite"]', doc).forEach(function(para){
      para.className += (para.className.match("tlGray")) ? " gm_ldrize_even hentry" : " hentry";
      mkpmlnk(para);
    });
  }

  f(document);
  function addFilter() {
    window.AutoPagerize.addFilter(function(docs){
      for (var i = 0,l = docs.length;i < l;i++) f(docs[i]);
    });
  }
  if (window.AutoPagerize && window.AutoPagerize.addFilter)
    addFilter();
  else
    window.addEventListener('GM_AutoPagerizeLoaded', addFilter, false);
})()
// ==UserScript==
// @name ReTweetCommandX
// @namespace http://d.hatena.ne.jp/Constellation/
// @description ReTweet Command for LDRize (for Official RT)
// @include http://twitter.com/*
// @include https://twitter.com/*
// @include http://search.twitter.com/*
// @include http://pcod.no-ip.org/*
// ==/UserScript==
 
function boot(ev){
  if(ev) window.removeEventListener('GM_MinibufferLoaded', boot, false);
  var win = unsafeWindow;
  var doc = document;
  var Minibuffer = window.Minibuffer;
  var $X = Minibuffer.$X;
  var D = Minibuffer.D;
 
  var count = 0;
  Minibuffer.addCommand({
    name : 'Twitter::ReTweetX',
    command : function(stdin){
      if(stdin.length){
        var id = "retweet" + count++;
        Minibuffer.status(id, 'ReTweet...');
        // locationとpinned-or-current-linkの違いを吸収
        var data = (stdin[0].href)? stdin.map(function(node){ return node.href }) : stdin;
        with(D()){
          parallel(data.map(function(url){
            //postid = url.match(/.*\/(\d+)$/)[1];
            postid = url.match(/status\/(\d+)/)[1];
            rturl = 'http://twitter.com/statuses/retweet/' +postid + '.json';
            return xhttp.post(rturl);
          })).next(function(){
            Minibuffer.status(id, 'Done', 100);
          });
        }
      }
      return stdin;
    }
  });
  Minibuffer.addShortcutkey({
    key : 'r',
    description : 'ReTweet for Official',
    command : function(){
      try {
        var stdin = Minibuffer.execute((/\/\/twitter\.com\/.*?\/(status|statuses)\/\d+/.test(location.href))? 'location' : 'pinned-or-current-link');
      }catch(e) {
        var stdin = [];
      }
      Minibuffer.execute('Twitter::ReTweetX|clear-pin',stdin);
    }
  })
}
 
if(window.Minibuffer){
  boot();
} else {
  window.addEventListener('GM_MinibufferLoaded', boot, false);
}