以前書いたTwitter向けスクリプトをユーザスクリプト化した

今日も予定通りには行かずw

Sleipnir 3 RC3 のお気に入りがらみの件についての対応策がデベロッパーズブログにて公開されました。
一昨日のエントリへのアクセスキーワードを見ると結構な数の人に問題が起こっているみたいですね。
是非、確認してみてください。


久しぶりにSleipnir2系のtest版が来ましたね。
http://hibari.2ch.net/test/read.cgi/win/1312360770/929-930
変更点で気になったのは次の点

アドレスバーで長い Bookmarklet を実行できなかった不具合を修正した。

多分、LastPassブックマークレットが動くようになったらしい件なのかな。
少し複雑なBookmarkletを作るとSleipnirでは動かないことが間々ありますんで、嬉しい限りです。

というわけで以前書いて動かなかったものを試してみました。
以下のエントリで公開したBookmarkletです。
ニコニコ動画以外もnico.msで短縮できると今更になって知ったのでブックマークレット書いた
適当な動画ページで実行させて見ました。
で、結果はというと……残念ながら動かず(ノд-)
IE9では動作するんでスクリプト自体に問題があるわけでは無いはずなんですけどね。

スクリプトのアップデート

Twitterのハッシュをセレクトボックスから選択し挿入するスクリプトを書いては見たものの
Twitterのタイムラインで特定のユーザのツイートを非表示にするスクリプト
上記2エントリで晒したスクリプトを改良しただけです。
といってもタイマー処理はさんだだけですがw


TwitterHashSelectBoxInserter.user.js

// ==UserScript==
// @name         Twitter Hash SelectBox Inserter
// @namespace    http*://d.hatena.ne.jp/barrackdo/
// @include      http*://twitter.com/
// @include      http*://twitter.com/#
// @include      http*://twitter.com/#!/
// @include      http*://twitter.com/#!/mentions
// @include      http*://twitter.com/#!/retweets_by_others
// @include      http*://twitter.com/#!/retweets
// @include      http*://twitter.com/#!/retweeted_of_mine
// @include      http*://twitter.com/#!/saved-search/*
// @include      http*://twitter.com/#!/list/*/*
// ==/UserScript==

(function(){
	
	var opts = new Array(
		new Array("#2ch", "2ちゃんねる"),
		new Array("#nicovideo", "ニコニコ動画"),
		new Array("#日本語ハッシュ", "日本語ハッシュ")
	);
	
	var timer = setInterval(function(){
		if(document.getElementsByTagName("textarea").length > 0) {
			var d = document.getElementsByTagName("div");
			for(var i = 0; i < d.length; i++) {
				if(d[i].className == "tweet-box-title") {
					d = d[i];
					break;
				}
			}
			
			var sel = document.createElement("select");
			sel.name = "hashTags";
			sel.style.float = "right";
			for(var i = 0; i < opts.length; i++) {
				var opt = document.createElement("option");
				opt.value = opts[i][0];
				opt.innerText = opts[i][0] + " " + opts[i][1];
				sel.appendChild(opt);
			}
			d.appendChild(sel);
			
			var ins = document.createElement("a");
			ins.style.float = "right";
			ins.style.display = "block";
			ins.style.border = "1px solid #cccccc";
			ins.style.backgroundColor = "#f0f0f0";
			ins.style.color = "#000000";
			ins.style.marginRight = "0.5em";
			ins.style.padding = "0 0.5em";
			ins.innerText = "Ins.";
			ins.href = "javascript:(function(){document.getElementsByTagName('textarea')[0].value += ' ' + document.getElementsByTagName('option')[document.getElementsByName('hashTags')[0].options.selectedIndex].value;})();";
			d.appendChild(ins);
			
			clear(timer);
		}
	},5000);
	
})();

@includeはもうちょっとどうにかした方が良い気もするなw


TwitterInvisibleSpecificUser.user.js

// ==UserScript==
// @name         Twitter Invisible Specific User
// @namespace    http://d.hatena.ne.jp/barrackdo/
// @include      http://twitter.com/
// @include      http://twitter.com/#!/*
// ==/UserScript==

(function(){
	var rm = "\t" + new Array("barrackdo", "Slipnir_bot").join("\t") + "\t";
	
	var d = document.getElementsByTagName("div");
	
	setInterval(function(){
		for(var i = 0; i < d.length; i++) {
			if(rm.match("\t" + new String(d[i].getAttribute("data-screen-name")) + "\t") != null) {
				d[i].parentNode.parentNode.removeChild(d[i].parentNode);
				i=0;
				d = document.getElementsByTagName("div");
			}
		}
	},1000);
	
})();