2009/09/03(Thu)
ふぁぼったーの<censored>を突破するGreasemonkeyスクリプト書いた
Greasemonkey | |
昨夜未明から、卑猥なワードが含まれるつぶやきがふぁぼったーに取り上げられると、<censored>に置き換えられるという仕様が実装されたようです。
ふぁぼったーにフィルターがかかったようです - ウサギは走り、カラスは空を飛ぶ
というわけで、規制を突破して、<censored>の文字列を可視化するGreasemonkeyを書いてみた。
↓
↓
こういう風になるらしい。まあ、なんて卑猥なのかしら。
インストール
userscript.orgからどうぞ。
ふぁぼったーの規制回避するグリモン for Greasemonkey
Greasemonkeyでしか動かないと思います。
また、Autopagerizeなどには対応していません。というか、対応の方法がわかりません。
仕組み
<censored>を含むつぶやきを探してきて、twitterへのパーマリンクを生成して、本文を差し替えているだけです。
本当は、おっぱいみたいな感じで、卑猥な用語に取消線が入るとよかったのでしょうが、元の文章と、フィルター後の文章の差分を取るのが大変だったのでやめました。
今のままだと、スクリプトが動いてるかどうかわかりにくいなー。
誰か技術のある方、作ってください。
開発中に気づいたこと【追記】
パーマリンクのタイトルにはフィルタが反映されていないみたい。
ソースコード
// ==UserScript== // @name visiable censored // @namespace http://gigi-net.net // @include http://favotter.matope.com/* // ==/UserScript== (function(){ //発言を拾ってきて配列に格納 var span = document.getElementsByTagName("span"); var anchor =document.getElementsByTagName("a"); var div =document.getElementsByTagName("div"); var twitters =new Array; var id = new Array; var userid =new Array; for(var i=0;i<span.length;i++){ if(span[i].getAttribute("class")==" status_text description"){ twitters.push(span[i]); } } for(var i=0;i<anchor.length;i++){ if(anchor[i].getAttribute("class")=="taggedlink"){ id.push(anchor[i]); } } for(var i=0;i<div.length;i++){ if(div[i].getAttribute("class")=="info"){ anchor2 = div[i].getElementsByTagName("a"); userid.push(anchor2[0].innerHTML); } } //全ての要素から規制部分を検索 var censored =new Array; var a =new Array; var id2 = new Array; var userid2 = new Array; for(i=0;i<twitters.length;i++){ a =twitters[i].getElementsByTagName("span"); for(var j=0;j<a.length;j++){ if(a[j].getAttribute("class")=="censored"){ censored.push(twitters[i]); //alert("a"); id2.push(id[i]); userid2.push(userid[i]); } } } function getTitle(x){ original = x.responseText.match(/\<span class="entry-content"\>.*?\<\/span\>/); original+=""; original = original.replace(/\<span class="entry-content"\>/,""); original = original.replace("</span>",""); if(original !="null"){ censored[count].innerHTML = original; } count++; if(count<id2.length){ getLink(); } } var count =0; function getLink(){ id3 =id2[count]+""; id3 =id3.replace("http://favotter.matope.com/status.php?id=",""); r_url ="http://twitter.com/"+userid2[count]+"/status/"+id3+""; GM_xmlhttpRequest({ method:"GET", url:r_url, onload:getTitle }); } getLink(); })();
トラックバック - http://d.hatena.ne.jp/gigi-net/20090903/1251957990
リンク元
- 1898 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/gigi-net/20090903/1251957990
- 405 http://www.attrip.net/2113/
- 294 http://newsing.jp/entry?url=d.hatena.ne.jp/gigi-net/20090903/1251957990
- 283 http://www.google.co.jp/search?q=ふぁぼったー 規制突破&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 233 http://twitter.com/
- 206 http://search.yahoo.co.jp/search?p=<censored> Twitter&rs=1&tid=top_ga1_sa&ei=UTF-8&fr=top_ga1_sa
- 130 http://www.google.co.jp/search?hl=ja&source=hp&q=ふぁぼったー&btnG=Google+検索&lr=&aq=f&oq=
- 106 http://twitter.g.hatena.ne.jp/maname/
- 103 http://b.hatena.ne.jp/entrymobile/15766572
- 99 http://www.google.co.jp/search?hl=ja&q=ふぁぼったー&sourceid=navclient-ff&rlz=1B3GGGL_jaJP262JP267&ie=UTF-8






ちょうど GreaseMonkey スクリプトを勉強中だったので、
こちらのスクリプトをベースに、censored された単語を
strike するようにしたスクリプトを書いてみました。
http://seaoak.cocolog-nifty.com/read/2009/09/uncensored-favo.html
おもしろいアイディアをありがとうございます m_(v_v)_m