読者です 読者をやめる 読者になる 読者になる

webネタ

技術系ブログ。web系SE。1988。♂。@rhong_

たった21行の一括フォロースクリプト

2012/4/20 一括アンフォロー。使い方は同じです。

javascript:(function(){var $followElem=$('.js-action-unfollow');var followElemCount=$followElem.length;var currentNum=0;var manager=function(){if(currentNum


世の中では邪道?とされているtwitterの一括フォローだが、フォロー数を増やしたい場合はやっぱり一つ一つフォローボタンを押すのはめんどう。さっきtwitter本家のサイトを見ててふと思いついたので一括フォローできるスクリプトを書いた。ブックマークレットにすればボタン一発で実行できるょ。

使い方

1、下記のプログラムをURLの代わりにブックマークする。 (トリプルクリックすると一気に選択できます) (※1)

javascript:(function(){var $followElem=$('.js-action-follow');var followElemCount=$followElem.length;var currentNum=0;var manager=function(){if(currentNum

2、https://twitter.com/#!/who_to_follow に移動。検索などする。
3、登録したブックマークレットを押す。
4、自動フォローがはじまる。

このとき自動でフォローされるのは、表示された20件だけです。もっと一度にしたい場合は、下にいっぱいスクロールして実行するといいですw

技術的な仕組み

発想自体は至極簡単で、クリックを動的に行うだけ。jQueryでtrigger()って関数があるから、引数にclickを渡すとクリックをスクリプトから発動させれる。
だから実際は

$('.follow-button').trigger('click');

だけで一括でフォローできてしまう。
だけど、一気にフォローするとなんだがスクリプトくさいので一個ずつ時間バラしたw

スクリプトの説明

managerさんとperformerさんを関数で用意。
managerさんがperformerさんに処理を依頼し、完了したらmanagerに報告。managerは次のフォローをperformerに依頼する。(繰り替し)
うさんくさいデザインパターンっぽいな、、、

ソースコード

(function() {
	var $followElem = $('.follow-button');
	var followElemCount = $followElem.length;
	var currentNum = 0;

	/**
	 * Manager
	 * マネージャーはパフォーマーに処理を依頼します。
	 */
	var manager = function() {
		if (currentNum < followElemCount) {
			performer($followElem.eq(currentNum));
			currentNum += 1;
		} else {
			alert('complete');
		}
	};

	/**
	 * Performer
	 * パフォーマーは処理を実行し、完了したらマネージャーに報告します。
	 */
	var performer = function($elem) {
		var rand = (Math.floor(Math.random() * 3000)) + 100;
		setTimeout(function() {
			$elem.trigger('click');
			manager();
		}, rand);
	};
	manager();
})();

まとめ

OAuthしてユーザーひっぱって頑張って一括フォローしてるとこもあるけど、ブックマークレットなら簡単にできたというお話^^

備考

※1 はてなダイアリーブックマークレットを貼る方法が分からなかった;ω;