Twitter follow message

By azu_re Last update Sep 18, 2009 — Installed 67 times. Daily Installs: 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

There are 4 previous versions of this script.

// ==UserScript==
// @name           Twitter follow message
// @namespace      http://web.zgo.jp/
// @include        http://twitter.com/*
// @include        https://twitter.com/*
// @exclude        http://twitter.com/home
// @exclude        https://twitter.com/home
// @description    When press follow button, send out update
// ==/UserScript==

var prefix = ".";          // prefix
var postfix = " をフォローしました。";// suffix
var alwaysUseTemplate = true;// コメントを入力した時もsuffix(接尾辞)を使う
// falseの場合 ".@username コメント内容" となる。

// prefix @username postfix
    function post(status) {
      GM_xmlhttpRequest({
        method : 'post',
        url    : 'http://twitter.com/statuses/update.json',
        headers: {
          'Content-type': 'application/x-www-form-urlencoded',
        },
        data   : 'status=' + encodeURIComponent(status),
        onload : function(res) {
          //if (useAlert) alert('twittered!')
          debug('Loaded - ' + status + ' - ' + res.status + ': ' + res.statusText)
        },
        onerror: function(res) {
          if (useAlert) alert('post failed!')
          error('Failed - ' + status + ' - ' + res.status + ': ' + res.statusText)
        },
      })
    }
   function init(comment) {
      var m = document.getElementsByName("page-user-screen_name")[0].content;
      if (m == null) return
      if(!alwaysUseTemplate){//コメントがあった場合は接尾辞を抜く
        if(comment){
          var s = prefix + "@" + m + " " + comment;
        }else{
          var s = prefix + "@" + m + postfix;
        }
      }else{
          var s = prefix + "@" + m + postfix + comment;
      }
      post(s);
    }
var isFollowing = document.getElementsByClassName("user following ")[0];
if(isFollowing)
  return;
var fl_button = document.getElementsByClassName("follow-action")[0];
if(!fl_button)
  return;
var comment = document.createElement("input");
  	comment.type = "text";
  	comment.value = "";
    comment.setAttribute("class", "follow_button_message");
    comment.size = 30;
var input1 = document.createElement("input");
    input1.setAttribute('name','follow_button_check');
    input1.setAttribute('type','checkbox');
    input1.checked = true;
var txt1 =document.createTextNode('通知する');
fl_button.addEventListener('click',function(){
  fl_button.removeEventListener('click', arguments.callee, false);
  if(input1.checked)
    init(comment.value);
}, false);
var kara = document.createElement("li");
kara.id = "GM_Twitter_follow_message"
kara.appendChild(input1);
kara.appendChild(txt1);
kara.appendChild(comment);
insertAfter(kara, fl_button);
GM_addStyle(<><![CDATA[
  .follow_button_message{
      font-size:large !important;
      margin: 1px 3px;
  }
  #GM_Twitter_follow_message{
	  margin: 1px auto;
	  height: auto;
  }
]]></>); 

function insertAfter(newNode, node) {
	return node.parentNode.insertBefore(newNode, node.nextSibling);
}