由々識の気まぐれ日記

JavaScriptプログラマ「由々識」が時々書くするブログ。 内容はJavaScript全般、Sleipnir関係。

Sleipnir から POST でページを開いたり、Referer ,UserAgent に任意の値を指定する

Sleipnir の検索バーは POST メソッドでページを開けるのに、アドレスバーやお気に入りからは POST メソッドでページを開くことができません。
検索バーから以外でページを開く際に POST 送信でページを開けたらと思ったことはないでしょうか。
また、Sleipnir でページを開く際に Referer や User-Agent を任意の値に指定して開きたいと思ったことはないでしょうか。
今回はこれらの機能を Sleipnir に実装する方法を紹介したいと思います。


1.スクリプトを用意する
「カスタムアクション(Ver.1.04 以降)」スクリプトをダウンロードします。
2.Sleipnir オプションでスクリプトを使えるようにする
Sleipnirオプション「クライアント|全般」の「スクリプトによるクライアントの操作を許可する」にチェックを入れる。
(NT 系の OS でこの操作をするには Administrator 権限が必要です)
3.スクリプトを設置する
ダウンロードした「カスタムアクション(slsc_CustomAction.zip)」を解凍して、「カスタムアクション.js」を取り出します。
{Sleipnirをインストールしたフォルダ}scripts に「$AddressBar」(適当で良い)という名前のフォルダを新規作成し、
そのフォルダの中に「カスタムアクション.js」を入れます。
(拡張子が「.js」であれば、ファイル名は何でも良い)
4.URI アクションに登録する

メニューバー「ツール」の「URI アクションの有効」を有効にし、
メニューバー「ツール」の「URI アクションマネージャ」を開きます。

『URI アクションマネージャ』の「追加」ボタンを押し、『URI アクションの追加』ウィンドウを開きます。
URI(U):」 欄に 「http*@post:*」を入力。
アクション(A):」欄で「カスタム」を選択して『実行ファイルを選択』ダイアログで、
「3.」で設置したスクリプトを選択してください。
選択したら、『URI アクションの追加』ウィンドウの [OK] ボタンを押してください。

再度『URI アクションマネージャ』の「追加」ボタンを押し、『URI アクションの追加』ウィンドウを開きます。
URI(U):」 欄に 「http*@referer:*」を入力。
アクション(A):」欄で「カスタム」を選択して『実行ファイルを選択』ダイアログで、
「3.」で設置したスクリプトを選択してください。
選択したら、『URI アクションの追加』ウィンドウの [OK] ボタンを押してください。

再々度『URI アクションマネージャ』の「追加」ボタンを押し、『URI アクションの追加』ウィンドウを開きます。
URI(U):」 欄に 「http*@user-agent:*」を入力。
アクション(A):」欄で「カスタム」を選択して『実行ファイルを選択』ダイアログで、
「3.」で設置したスクリプトを選択してください。
選択したら、『URI アクションの追加』ウィンドウの [OK] ボタンを押してください。

もし、Sleipnir を複数のユーザーで使用している場合は、他のユーザーで『4.』のみを設定してください。
以上で登録・設定は終了です。
試しに、アドレスバーに
http://www.sleipnir-wiki.jp/index.php?cmd=search@post:encode_hint=ぷ&type=AND&word=スクリプト
と入力してページを開いてみてください。
どうでしょうか。無事に Sleipnir オンラインデータベース で 「スクリプト」の検索結果が表示されれば成功です。

URL を見ていただければわかりますが、POST 送信の方法は、
URLの末尾に @post: を付けてその後ろに POST データを 「&」で区切って指定するだけです。
これで、POST 送信の検索サイトでの検索結果ページがお気に入りに登録できるようになりますね。

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

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

ちなみに、アドレスバーやお気に入りからだけでなく、ページ内リンクでも使えます。

「え? ページ内のリンクからも!?」

開けるんです。
試しに以下のリンクをクリックしてみてください。

Sleipnir オンラインデータベース で「スクリプト」を検索(POST 送信)

Sleipnir オンラインデータベース で 「スクリプト」の検索結果ページが開いたはずです。
え? 空ページが余分に開いたですって?
残念ながらそれは URI アクションの仕様ですので、開かないようにはできまえせん。


では次に、Referer や User-Agent の送信の仕方です。
これも簡単です。
URI の末尾に「@Referer:〜〜」,「@User-Agent:〜〜」を付けるだけです。
例えば、
「http://taruo.net/e/index.cgi」に、
Referer に「http://www.fenrir.co.jp/」、
User-Agent に「Sleipnir/2.7.2」
を指定するには次のようにします。
http://taruo.net/e/index.cgi@Refere:http://www.fenrir.co.jp/@User-Agent:Sleipnir/2.7.2
これも、アドレスバーからだけでなく、お気に入りやページ内のリンクでも使用可能です。
勿論、『@post:』との同時使用も可能です。

以上で、説明は終了です。

というわけで、
お気に入りにページを追加したいけど、目当てのページは Referer が無いと弾かれるのにお困りの方。
お気に入りに 検索結果ページを登録したいけど、POST 送信じゃないと開けないとお嘆きの方。
そんな方は上記の方法を使ってみてはいかがでしょうか。


(2008/06/21 12:30 追記)

@Referer:〜〜」,「@User-Agent:〜〜」を指定する際、
「 」(半角スペース)が含まれていると正常に送信できずにエラーになってしまいます。
エラーの原因は、Sleipnir の URI アクションが外部ソフトを起動する際に引数を "" で囲まないからです。
そのため、「カスタムアクション」を処理する WSH が「 」(半角スペース)を 引数 の区切りと判断してしまい、
「カスタムアクション」が誤作動がおこしてしまいます。

このエラーを回避するには、
「 」(半角スペース)が含まれる Referer や User-Agent を指定する際に、
@Referer:"〜〜"」,「@User-Agent:"〜〜"
というように "" で囲ってください。
これで Referer や User-Agent を正常に送信できるはずです。

23ch.info の dat落ちスレッドURL変換 をアドレスバーのメニューに追加する

2ch の Sleipnir/Grani 初心者質問スレ Part.17 スレで、
「23ch.info の dat落ちスレッドURL変換 をアドレスバーのメニューに追加するにはどう記述したらよいでしょうか?」という質問がありました。
実は、私の Sleipnir ではこれを「カスタムアクション」スクリプトで実装させていたりします。
というわけで、「23ch.info の dat落ちスレッドURL変換 をアドレスバーのメニューに追加する方法」を紹介したいと思います。

以下、Sleipnir を終了させた状態で作業してください。


1.スクリプトを用意する
「カスタムアクション」スクリプトをダウンロードします。
2.Sleipnir オプションでスクリプトを使えるようにする
Sleipnirオプション「クライアント|全般」の「スクリプトによるクライアントの操作を許可する」にチェックを入れる。
(NT 系の OS でこの操作をするには Administrator 権限が必要です)
3.スクリプトにアクションを登録する
ダウンロードした「カスタムアクション(slsc_CustomAction.zip)」を解凍して、「カスタムアクション.js」を取り出します。
取り出した「カスタムアクション.js」をメモ帳などのテキストエディタで開いて、
15行目の
var macro = ''; //アクションを記入してください。
var macro = 'http://www.23ch.info/convertURL@post:url=@URL({AddressBarString})'; //アクションを記入してください。
に書き換えて、「23ch.info_過去ログを表示.js」というファイル名で保存します。
4.スクリプトを設置する
{Sleipnirをインストールしたフォルダ}\scripts\ に「$AddressBar」という名前のフォルダを新規作成し、
そのフォルダの中に『3.』で保存した「23ch.info_過去ログを表示.js」を入れます。
5.XML ファイルを編集する
{Sleipnirをインストールしたフォルダ}\resources\languages\default\japanese\ の「GoButtonMenu.xml」を、
{Sleipnirをインストールしたフォルダ}\settings\{ユーザー名}\setting\Override\ にコピーします。
(既に存在する場合はコピーしなくても良いです)
コピーした「GoButtonMenu.xml」をメモ帳などのテキストエディタで開き、
<item name="23ch.info 過去ログを表示(&C)" action="application:wscript.exe '{SLEIPNIR_DIR}..scripts$AddressBar23ch.info_過去ログを表示.js'" />
を好きな場所に追加して上書き保存してテキストエディタを閉じます。
以上です。Sleipnir を起動させてアドレスバーの「→」ボタンのメニューを開いて見てみると、「23ch.info 過去ログを表示」という項目ができているはずです。
あとは、dat 落ちしたスレの URI をアドレスバーに入力して、この項目を選択すれば、23ch.info の過去ログが開きます。

というわけで、23ch.info の dat落ちスレッドURL変換 を頻繁に使う方は「カスタムアクション」スクリプトでアドレスバーメニューに登録してみてはいかがでしょうか。

 | HOME | 

Sleipnirスクリプトをお探しのかたはこちらへどうぞ。

Yuyu's Digital Lab.

プロフィール

由々識

作者:由々識

JavaScriptプログラマの由々識です。
主にSleipnirスクリプトを書いています。

RSS 1.0

カレンダー

02 | 2017-03 | 04
S M T W T F S
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

アーカイブ

カテゴリー

最新投稿

最新コメント

トラックバック

ツール

あわせて読みたい
この日記のはてなブックマーク数

お小遣い稼ぎ!
スマホでお小遣い稼ぎ!
DTIブログポータルへ
このブログを通報
Report Abuse
利用規約