Twitter Add Message Link To Profiles

By Erik Vold Last update Oct 15, 2009 — Installed 104 times.

There are 2 previous versions of this script.

// ==UserScript==
// @name			Twitter Add Message Link To Profiles
// @author			Erik Vold
// @namespace		twitterAddMsgLinkToProfiles
// @include			http*://twitter.com/*
// @include			http*://*.twitter.com/*
// @version			0.1
// @license			GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html
// @datecreated		2009-09-04
// @lastupdated		2009-10-15
// @description		This userscripts adds a link to message a user from their profile page.
// ==/UserScript==

var twitterAddMsgLinkToProfiles={};
twitterAddMsgLinkToProfiles.user='';
twitterAddMsgLinkToProfiles.tryOne=function(){
	var actionsList=document.evaluate("//div[@id='profile_actions']/ul[contains(@class,'sidebar-actions')]",document,null,9,null).singleNodeValue;
	if(!actionsList) return false;
	var msgAct=document.evaluate("./li[contains(@class,'message-sidebar-action')]/a[1]",actionsList,null,9,null).singleNodeValue;
	if(msgAct){
		msgAct.innerHTML="direct msg";
	}

	var user=document.evaluate("//head/meta[@name='page-user-screen_name']",document,null,9,null).singleNodeValue;
	if(!user) return false;
	user=user.getAttribute("content");
	var tempLi=document.createElement('li');
	tempLi.setAttribute('class','message-sidebar-action');
	tempLi.innerHTML='<a href="/?status=@'+user+'%20">message</a> '+user;
	actionsList.insertBefore(tempLi,actionsList.childNodes[0]);

	twitterAddMsgLinkToProfiles.user=user;
	return true;
}
twitterAddMsgLinkToProfiles.tryTwo=function(){
	var user=twitterAddMsgLinkToProfiles.user;
	var icon="http://www.nextcat.com/images/icons/send_message.gif";
	var in2=document.evaluate("//div[contains(@class,'screen-name') and contains(text(),'"+user+"')]",document,null,9,null).singleNodeValue;
	if(!in2) return;
	in2=in2.parentNode;
	var newDiv=document.createElement('div');
	newDiv.setAttribute('style','line-height:15px;font-size:12px;');
	newDiv.innerHTML='<a title="Send Message" href="/?status=@'+user+'%20"><img src="'+icon+'" style="margin-right:1px;" />&nbsp;Send Message</a>';
	in2.appendChild(newDiv);
}
twitterAddMsgLinkToProfiles.run=function(){
	if(twitterAddMsgLinkToProfiles.tryOne()){
		twitterAddMsgLinkToProfiles.tryTwo();
	}
	return;
}
twitterAddMsgLinkToProfiles.run();