なげやりろぐ

フテイキコウシン

test版でマルチスレッドONの時に広告消しをしたい

2chの本スレでいち早く新機能を試して見たいユーザーのために公開されているtest版では各々のタブを別スレッドで動作させるというマルチスレッド機能が利用出来るのですが、これを有効にすると既存のプラグインの一部が使えなくなってしまいます。
特にWebページの見た目を自分好みにいじれるStyle Editorが使えなくなってしまうのは痛い。
ただ、代替手段としてサイトがクラックされる前にSUECで配布されていたUser Style Sheetスクリプトを持っていればCSS解析など多少の手間はかかりますけど同様のことが出来ます。
しかし現状では手に入らないので、これからSleipnirを使い倒してやろうと思っているかたにはちと残念な状態。*1

そこで、これまたちょいと手はかかりますがSeahorseスクリプトを使って特定のサイトへCSSを適用させる方法などをエントリーしてみようかと。
ただし、Seahorseもtest版に対応したものを導入していないといけません。

Style Editorと連携

test版であってもマルチスレッドがOFFであればStyle Editorは利用可能です。そこで、見た目を弄りたいサイトをStyle Editorで編集して、デザインが確定したら左のペインからCSS形式でコピーしてテキストエディタへと貼り付けます。
以下の例ではTwitterの右上にある広告部分とユーザーの下にあるプロモーション、並びにトレンドを非表示にして、ついでに背景画像も変更しています。*2

div#side_ad_base {
display:none;
}

p.promotion.round {
display:none;
}

div#trends.collapsible.collapsed {
display:none;
}

body#home.timeline.ie.ie8.asian.ja{
background:#fff url("http://img.f.hatena.ne.jp/images/fotolife/K/Kei_9/20100411/20100411185839_original.png") fixed repeat;
}

さらにこれを一行へと整形し直します。bodyはidやclassを省略しています。

div#side_ad_base,p.promotion.round,div#trends.collapsible {display: none;}body{background:#fff url("http://img.f.hatena.ne.jp/images/fotolife/K/Kei_9/20100411/20100411185839_original.png") fixed repeat;}

ここまでできたらこれをSeahorseスクリプトの中へ組み込んでやります。*3

// ==UserScript==
// @name           Twitter Ad Killer and more...
// @description     Twitterの広告消しとか
// @include        http://twitter.com/*
// @include        https://twitter.com/*
// ==/UserScript==

    var css = 'div#side_ad_base,p.promotion.round,div#trends.collapsible {display: none;}body{background:#fff url("http://img.f.hatena.ne.jp/images/fotolife/K/Kei_9/20100411/20100411185839_original.png") fixed repeat;}';

    document.createStyleSheet().cssText = css;

こうして出来たスクリプトをSeahorseフォルダへ移動してスクリプトの再読込をしたのちにTwitterのページを開くとマルチスレッドがONであってもStyle Editorで編集したときと同様な表示になっていることが確認出来るとおもいます。
同じような手順でサイトごとのスクリプトを作成してやればUser Style Sheetのようにスマートではありませんが同様の効果が期待できますので一時凌ぎにでもどうぞ♪

  • スクリプト適用前

  • スクリプト適用後

*1:いずれSAHKにてSUECにあったものを代理公開する予定です。

*2:ちなみに背景変更はTwitterの設定からでも可能です。

*3:cssのなかにダブルクオートが存在する場合を考え、css全体はシングルクオートで括り、最後にセミコロンを付加することを忘れないように。