4話 ブックマークレットでチート検索
この話も3話と同様に無保証です。
3話の、小説検索ページのURLに minfirstup パラメータを指定する件ですが、もしブックマークに日付を保存すると少し不便に感じるでしょう。しばらくすると日付を変えるためにブックマークを更新したくなります。
そこでブラウザで小説検索ページを表示した後に、ブックマークレットを実行してURLの minfirstup パラメータを書き換える方法を考えてみました。
ブックマークレットとは、ブラウザのブックマークから起動して動作する簡易プログラムです。
ブックマークに登録する都合上、ブックマークレットは一行で書く必要があります。
ブックマークレットの言語はJavaScriptだそうです。でもJavaScriptを書いたことがありません。生温い目で見守ってください。
これから書くブックマークレットの仕様は、小説検索ページでブックマークレットを実行すると、何日前の小説を検索するかダイアログで問い合わせ、日数を入力するとURLを書き換えるようにします。デフォルトではダイアログに 182 を入れます。(182日前(半年前)からの小説を検索)
まずはJavaScriptをダラダラと複数行でWindowsのメモ帳に書いてみました。
◇ ◇ ◇
javascript: (function() {
function toDateString(date)
{
return date.getFullYear()+"/"+ (date.getMonth()+1) + "/" + date.getDate();
}
function del_minfirstup(url)
{
return url.replace(/minfirstup=.*?&/,"").replace(/&minfirstup=.*/,"");
}
var url = document.URL;
if(!url.match(/\?/)) return; // URLに ? がなければ何もしない
var day = prompt( "何日前に開始した小説を検索しますか?" , "182" );
if(day>=0)
{
var dt = new Date();
dt.setDate(dt.getDate() - day);
location.href = del_minfirstup(url) + "&minfirstup=" + toDateString(dt);
}
else location.href = del_minfirstup(url);
})();
// 表示の問題上、半角スペースを全角スペースに置換しています
◇ ◇ ◇
上記の複数行コードをgoogleが提供する Closure Compiler Service で一行に変換し、ブックマークレットにしました。
◇ ◇ ◇
javascript:(function(){function c(a){return a.replace(/minfirstup=.*?&/,"").replace(/&minfirstup=.*/,"")}var b=document.URL;if(b.match(/\?/)){var d=prompt("\u4f55\u65e5\u524d\u306b\u958b\u59cb\u3057\u305f\u5c0f\u8aac\u3092\u691c\u7d22\u3057\u307e\u3059\u304b\uff1f","182");if(0<=d){var a=new Date;a.setDate(a.getDate()-d);location.href=c(b)+"&minfirstup="+(a.getFullYear()+"/"+(a.getMonth()+1)+"/"+a.getDate())}else location.href=c(b)}})();
◇ ◇ ◇
複数行に見えますが改行が入っていません。一行です。
この一行のブックマークレットをコピペしてWindowsのブラウザ IE11 と Firefox、Androidのブラウザ Firefox にブックマークレットを登録できました。
なおAndroidの標準ブラウザはブックマークレットに対応していないそうです。
ただし、無保証です。
ブックマークレットの登録方法はブラウザ毎に違います。もし登録したい場合は各自で調べるのがいいでしょう。
ついでに小説検索ページを order=impressioncnt (感想の多い順)で並べ替えるJavaScriptの複数行コードと、一行化したブックマークレットを以下に書きました。
しつこいようですが、無保証です。
◇ ◇ ◇
javascript: (function() {
function del_order(url)
{
return url.replace(/order=.*?&/,"").replace(/&order=.*/,"");
}
var url = document.URL;
if(!url.match(/\?/)) return; // URLに ? がなければ何もしない
location.href = del_order(url) + "&order=impressioncnt"
})();
// 表示の問題上、半角スペースを全角スペースに置換しています
◇ ◇ ◇
javascript:(function(){var a=document.URL;a.match(/\?/)&&(location.href=a.replace(/order=.*?&/,"").replace(/&order=.*/,"")+"&order=impressioncnt")})();
◇ ◇ ◇
•まとめ
◦ブックマークレットでURLパラメータを書き換えることができます。
◦ただし、無保証です。
おわりです。お読みいただきありがとうございました。