Trixie+mgsで隠密mixiをちょっとだけ弄るの巻
ようするに上司とかの目を盗んで mixi するやつだね!
[mgs] Trixie+mgsで隠密mixi :: ぼくはまちちゃん!
せっかくはまちちゃんが作ってくれたのに、mixiの仕様が変わって広告がウザイことになってて、目的を達成できないので、スクリプトなんて全くわからないおいらが頑張って広告を表示しないようにしたよ。
あと、おいらは技術畑の人間じゃないので、MSDNを開いているのが逆に不自然なので、せっかく入れてくれたはまちちゃんには申し訳ないけどそれもけしちゃったよ。
とりあえずSleipnir+Seahorseでしか確認してないので、Trixieの人は自己責任でね。もちろんSleipnirの人も自己責任で。
弄ったとこ
- insetRuleでiframeを表示させないようにした。(display:none)
とりあえずタイトルとお知らせの右側の広告が表示されないようになったよ。どっか別のところも表示されなくなってたらごめんね。
- ページの上部にMSDNのヘッダを表示してるのをごそっと削除
せっかくはまちちゃんがいれてくれたのに!ごめんねはまちちゃん。
- 対象ページにnews.mixi.jpも追加。
- 日記の画像を表示させるページ(http://mixi.jp/show_diary_picture.pl〜)を対象外にした。
せっかく開いてもこのスクリプトで消えちゃうからね。
だめでした。
と思ったら、mixiのURLをクリップボードから開くと、なぜかSleipnirが落ちちゃいます。同じURLでもリンクから開くと普通に表示されるよ。
元のスクリプトではエラー出ないから、たぶんおいらが弄った何かが悪いのだろうと思うけどよくわかりません!
おいらは「なぜか」と思っているけど、たぶん「なぜか」じゃないと思うので、知ってる人がいたら教えてね。
2/27追記
普通にF5で更新しても落ちた。なにがなんだか。
どっかがおかしいのはわかるけどどこがおかしいのかわかりません。
クリップボードからURLを開くとSleipnirが落ちるスクリプト
それでも使いたいならテキトウな名前.user.jsでSeahorseフォルダに保存するといいよ。
ちなみに、スクリプト内の注釈は全部はまちちゃんだよ。
改造とか再配布とか適当にやっちゃってくださいって書いてたから、とくに承諾とってないよ。
// mgs ver.0.4 by Hamachiya2. [ http://hamachiya.com/ ] // mgs ver.0.4s by sawara. [ http://d.hatena.ne.jp/sajiwo/ ] // // ==UserScript== // @name MGS [v0.4s] // @namespace http://hamachiya.com/ // @description mixiをこっそりみるやつ(はまちちゃんのスクリプトをちょっと弄ったよ) // @include http://mixi.jp/* // @include http://news.mixi.jp/* // @exclude http://mixi.jp/show_diary_picture.pl* // ==/UserScript== // // Discussion forum: http://mixi.jp/view_diary.pl?id=51284108&owner_id=609805 // (function() { var body = document.getElementsByTagName('body')[0]; // title変更 document.title = 'mixi'; // 外部cssを無効化 if (document.getElementsByTagName('LINK')[0]) { document.getElementsByTagName('LINK')[0].setAttribute('href', null); } // bodyタグの色がらみの要素を削除 body.setAttribute('link', null, false); body.setAttribute('vlink', null, false); body.setAttribute('alink', null, false); body.setAttribute('text', null, false); // 久々にワロタ // これでdisableしちゃうと // 自分あとであてたいstyleもdisableになってるから困る /* var s = document.styleSheets; for (var i=0; i<s.length; i++) { s[i].disabled = true; } */ with(body)innerHTML = innerHTML //タグについてる属性を消す…のはやめて、ここは非エレガントにxxxにする .replace(/(<[^>]*)style([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)bgcolor([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)background([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)color([^>]*?>)/igm, '$1xxx$2') // .replace(/(<[^>]*)nowrap([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)v*align([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)align([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)class([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)width([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)height([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)cellspacing([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)cellpadding([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)border([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)[vh]space([^>]*?>)/igm, '$1xxx$2') // ↓なんか効かない。どこ間違ってるんだろ .replace(/(<[^>]*)onmouse([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)onclick([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)onfocus([^>]*?>)/igm, '$1xxx$2') .replace(/(<[^>]*)onblur([^>]*?>)/igm, '$1xxx$2') // ↓だからこうしたよ。日記タイトルにonmouseとか書かないで頂戴 .replace(/onmouse/igm, 'xxx') // 検索ボックスけす .replace(/(<[^>]*)NAME="*MT"*([^>]*?>)/igm, '') //ALTつきの画像はALT内の文字にする .replace(/<img[^>]*alt=['"]*([^ ]*)['"]*[^>]*?>/igm, '[$1]') .replace(/<input[^>]*type=['"]*image['"]*[^>]*?loginbtn[^>]*?>/i, '<input type="submit" value="Login">') //.replace(/<input[^>]*type=['"]*image['"]*[^>]*?alt=['"]*([^ ]*)['"]*[^>]*?>/igm, '[$1]') //日記の画像を小さくする・普通の別窓リンクにする .replace(/<img[^>]+?(http:[^>]+?photo\/diary[^>]+?.jpg)[^>]*?>/igm, '<img\tsrc="$1" width="30" height="30">') .replace(/<a [^>]+?show_picture\.pl\?img_src=([^>]+?)\'[^>]+?>/igm, '<a href="$1" target="_blank">') //他の画像をけす .replace(/<img[^\t][^>]+?>/igm, '') .replace(/<input[^>]*type=['"]*image['"]*[^>]*?>/igm, '') ; // ここからスタイルシート insetRule('*', 'padding:0; margin:0;font-size:100%'); insetRule('body', 'background-color:#fefefe; color:#000'); insetRule('a img', 'border: 1px solid #009'); insetRule('a', 'color:#222; text-decoration: underline'); insetRule('a:visited', 'color:#7c0060'); insetRule('a:hover', 'background : #5eff5e;color:#000000'); insetRule('a:active', 'color:#004a67'); insetRule('iframe', 'display:none'); // 以下style追加するやつ、こちらからいただいた!感謝! // http://east.portland.ne.jp/~sigekazu/css/javascript3.htm function insetRule(selector, declarations) { var sheets=document.styleSheets; if (sheets.length) { var tSheet=sheets[sheets.length-1]; if (document.all) { tSheet.addRule(selector,declarations); } else { tSheet.insertRule(selector+"{"+declarations+"}",tSheet.cssRules.length); } } } })();