GWに色々と更新する予定だったが、出来なかったので弁解。あと、小物スクリプト紹介

GWの話

何してたかって言うと一週間ゲーム三昧でした。

性癖、習性はたまた病気とでも言えばいいのか年に1〜3度くらいの割合でオンラインゲームがやりたくなるんですねぇ。
特にクリックゲームと揶揄される感じのやつ。
まぁ、一週間〜一月くらいで飽きるんで、基本無料(アイテム課金)のを無課金、ソロでやるわけで、所謂ネトゲ廃人とは毛色が違うとは思うんですけど。
今回ちょうどその波が来てたので没入してました。*1
それと、こっちは暫くチビチビとやると思うけどFREEJACKとか。

あとは、オンラインゲーム以外では神採りアルケミーマイスターとか久々にやりたくなったので忍流とか。*2


で、最終日の8日には一度くらい更新するかと思っていたら熱出して倒れてましたw
GW明けの9日も仕事するのが精一杯でTwitterすら無し。
昨日*3からは多少復活してTwitterとFenrir User Communityの回答とかしてますけどね。
今日はプラスして日記投稿って感じですかね。


そんなこんなでGWに予定していたやつは今週末に延期です。

デベロッパーズブログに書かれてないけど地味に重要なこと

【iPhone アプリ】他のアプリから Sleipnir Mobile を開こうにて小技(とブックマークレット)が公開されてますが、Javascript分かる人なら疑問を思い浮かべるかもしれません。
「HTTPプロトコル部分を削るためにsubstringしてるけど、HTTPSなページとかだとこれで大丈夫か?」って感じに。


それでTwitterで@Fenrir_news垢に聞いてみたんですけど、問題ないみたいですね。*4

https は sleipnirs で動作するようなのでブックマークレットの動作に問題はないそうです。

http://twitter.com/fenrir_news/status/68154111782170624 *5


なお、リプライの後半部分について少し考えてみたが良い案が思いつかない。

プロトコル判別はもっとかっこよくやったほうが良いかもしれないですね。

substring(4)とか決め打ちせずに、location.protocolとか使うってことなんだろうけど。
この程度のために無駄に分岐入れるのもナンセンスだしね。


思いついたのと言えば、こんな感じ。*6

javascript:(function(){location.href=location.href.replace(/^http/,'sleipnir');})();
javascript:(function(){location.href='s'+location.href;})();

POSTメソッドな検索エンジン検索エンジンリストに登録するのを助けるスクリプト

今回も無駄な話で水増し成功したので、本ネタを。


GETメソッドを用いる検索エンジンは検索結果ページのアドレスバーを見てちょちょいっと書き換えれば検索エンジンリスト用のリクエスト文が出来上がります。すべてとは言わないけどね。

POSTメソッドを使う検索エンジンはその手が使えないのでどうするかというと、簡単な方法を一つ由々識さんがブログで書いてくれています。*7
こちらも万能では無いです。Yahoo! テキスト翻訳とかだと不可能とは言わないが難しいとは思う。*8

え?、一般ユーザーには POST 送信される際の POST データが見えないから使えないですって?

そんな時は、拙作のスクリプト「ソースを正規表現で置換」を使いましょう。
検索サイトの検索ワード入力フォームのあるページを開いてこのスクリプトを実行してください。
“置換の為の正規表現”に「method=post」して [OK] ボタンを押し、
次に“置換後のテキスト”に「method=get」を入力して [OK] ボタンを押せばページ内のフォームが全て Get メソッドに変わります。
そうして、フォームに検索ワードを入力して検索を実行すれば、アドレスバーに URI が表示されますので、
この URI 中の『?』を『@post:』に変えれば、Sleipnir 専用 POST 送信 URI の完成です。

http://yuyushiki.dtiblog.com/blog-entry-115.html


ただ、現時点では必要なそのスクリプト(「ソースを正規表現で置換」)がダウンロードできない状態にあるわけですがね。
私は持ってますけど毎度打ち込むのは面倒だなぁというわけで、UAスクリプト書いてたんでそれを公開しようかなと。

(function() {
	var m = document.getElementsByTagName("form");

	for(var i=0; i<m.length; i++) {
		if(m[i].method.toLowerCase().match(/post/)!=null) {
			m[i].method = "get";
		}
	}
})();

Formタグを取得して、Method属性が"POST"だった場合に"GET"に書き換えるだけで良いはずなので、これで問題無いはず(^_^; *9


これだけだとアレなのでPOSTな検索エンジンを2つほど紹介。
リクエストをテーブルとか定義リストとかに組み込むとデザインがぶっ壊れて大変なことになったので、分割。

名前 wallbase.net
エンコード なし
メソッド POST
カテゴリ イメージを探す
http://wallbase.cc/search@post:query={all}&board=123&nsfw=100&res=0&res_opt=eqeq&aspect=0&orderby=date_default&orderby_opt=desc&thpp=32&x=0&y=0
名前 nik.bot
エンコード なし
メソッド POST
カテゴリ イメージを探す
http://nik.bot.nu/browse.fu@post:a=120&b=0&k=0&d=0&g=0&e=0&f=0&j=0&h=0&l={all}&m=&n=


あと、書き始めてから気づいたけど、SleipnirオンラインDBも参考にどうぞ。*10

*1:今回はくろねこ

*2:大帝国も出てますけど未購入。年末年始にでも買ってやろうかな

*3:正確には日付変わって一昨日ですが

*4:環境を持ってないので質問する前に試せなかったのが悪いなw

*5:そのため返信元の私のツイートに含まれるブックマークレットは逆に正しく動かないです

*6:"sleipnirs"になるならば、"shttps"でもおkだよね多分

*7:"sleipnir post"でググればトップに来るので見たことある人は多いと思うけど

*8:そんなときにはProxomitronとか使ってね

*9:今見たら"toLowerCase"は要らない気がするけど、正規表現あんま理解して無いし、動きはしてるはずだしそのままでw

*10:リンク先に同様なことをするブックマークレットあるなw