User:Dcoetzee/Followed users.js

/* Followed users is an English Wikipedia tool on Toolserver that allows you to keep a list of users that you follow, similar to a watchlist, and lists the most recent edit by each user. The idea was conceived by User:Quintucket. It requires you to log in with a TUSC account before you can use it at:

http://toolserver.org/~dcoetzee/followedusers/

This has many uses, such as keeping an eye on warned users, collaborating with users in a team, mentoring, following students in a class, or just for learning from the edits of others. All followed user lists are public.

This optional Javascript extension adds "Follow user"/"Unfollow user" options to your toolbox on user/user talk pages and a link to Followed users to the upper-right. To use it, follow this link to edit your common.js and add "importScript("User:Dcoetzee/Followed_users.js");" to the end:

http://en.wikipedia.org/w/index.php?title=Special:MyPage/common.js&action=edit&editintro=User:Dcoetzee/Followed_users_js_notice

function follow_user { $.get(	"https://toolserver.org/~dcoetzee/followedusers/api.php",	{action : 'follow', username: $followee},	function(data) {	   if (data == 'ok') {		document.getElementById('t-followuser').innerHTML =		    "Unfollow user";            } else if (data == 'unauthenticated') {		alert("You are not currently logged into the Followed users tool.");	    }	}    ); }

function unfollow_user { $.get(	"https://toolserver.org/~dcoetzee/followedusers/api.php",	{action : 'unfollow', username: $followee},	function(data) {	   if (data == 'ok') {		document.getElementById('t-followuser').innerHTML =		    "Follow user";            } else if (data == 'unauthenticated') {		alert("You are not currently logged into the Followed users tool.");	    }	}    ); }

function add_portlet_link { if (wgNamespaceNumber === 2 || wgNamespaceNumber === 3) { $.ajaxSetup({	   type: "GET",	    data: {},	    xhrFields: { withCredentials: true },	    crossDomain: true	}); $followee = wgTitle.match(/^([^\/]*)/)[0]; $.get(	   "https://toolserver.org/~dcoetzee/followedusers/api.php",	    {action : 'query', prop : 'iswatching', follower: wgUserName, followee: $followee},	    function(data) {		if (data == 'yes') {		    $( document ).ready( function { mw.util.addPortletLink(			   'p-tb',			    'javascript:(function{unfollow_user;});',			    'Unfollow user',			    't-followuser',			    'Remove this user from your followed users list'			); });		} else if (data == 'no') {		   $( document ).ready( function { mw.util.addPortletLink(			   'p-tb',			    'javascript:(function{follow_user;});',			    'Follow user',			    't-followuser',			    'Add this user to your followed users list'			); });		}	   }	);    } }

followingNode = document.getElementById("pt-mycontris"); mw.util.addPortletLink( "p-personal"	, "//toolserver.org/~dcoetzee/followedusers/list.php"		, "Followed users"		, "pt-followedusers"		, "Lists recent edits by users you are following"		, "d"		, followingNode );

add_portlet_link;