beatmaniaIIDX25の行脚履歴を一覧化するブックマークレット(暫定)

(2018-07-08 変更: ブックマークレットスクリプトを変更しました)

作りました。ログインしているユーザーの行脚日誌ページに表示されている、店舗の一覧をTSV(Tab Separated Value)形式でテキストエリアに書き出します。クリップボードにコピーするボタンも併置しています。
今後、1ページ当たりの表示店舗数が一定件数を超えて、ページング機能があれば対応します。

動作確認

Windows向けWebブラウザでは、「Google Chrome」で動作確認しています。ポップアップウィンドウを使うので、スマートフォン・ブラウザでは動作しません。

ブックマークレットスクリプト

javascript:(function(b,w,t,W,P,N){b=[];w=null;t=2000;W=function(s,d){w.$('body').empty();s=String.fromCharCode(32);d='';$(b).each(function(i,o){d=d+o[2]+'\t'+o[3]+'\t'+o[5]+'\r\n';});w.$('body').append('<textarea'+s+'id=ta'+s+'cols=60'+s+'rows=10>'+d+'</textarea><br/>');w.$('body').append('<button'+s+'type=button'+s+'id=cp>Copy'+s+'Textarea</button>');w.$('#cp').on('click',function(e,r){e=w.document.getElementById('ta');e.select();w.document.execCommand('copy');console.log("[document.execCommand('copy')]");})};P=function(p,z){z=w.$('.log-shop');z.each(function(i,o,a){a=$(o).text().replace(/ +/g,'=').split('=');b.push(a);});W();};N=function(u){w=window.open(u,'L'+Math.floor(Math.random()*100000+99999));setTimeout(P,t,1);};N('https://p.eagate.573.jp/game/2dx/25/p/djdata/travel/travel_list.html');}())


ブックマークレットの導入方法については、下記エントリを参考にしてください。

lmtak.hateblo.jp

古いブックマークレット

beatmaniaIIDX25の行脚履歴をダウンロードするブックマークレット

Webブラウザのセキュリティレベル上昇により、自動ダウンロードができなくなったため、以下のスクリプトは期待した動作をしなくなりました。
バックアップのために残していますが、動作保証は一切しません。

javascript:b='';f='travel.txt';w=null;function D(){g=new Blob([b],{'type':'plain/text'});if(window.navigator.msSaveBlob){window.navigator.msSaveBlob(g,f);}else{a=document.createElement("a");a.href=URL.createObjectURL(g);a.target='_blank';a.download=f;a.click();URL.revokeObjectURL(a.href);}}function P(u){r=null;$(function($){s='';z=w.$('.log-shop');z.each(function(i,o){a=$(o).text().replace(/ +/g, '=').split('=');s=a[2]+' '+a[3]+' '+a[5];console.log(s);b=b+s+'\r\n';});y=w.$('.page_next a');if(y.length>0){y.each(function(i,o){if(i==0){r=$(o).prop('href');}});}});return r;}function O(j,k){if(j>0){u=P();j--;if(u!=null){N(u);setTimeout(O,k,j,k);}else{D();}}}function N(u){w=window.open(u,'c');};$('#container').append('afterbegin','<div id=t style="background-color:#aff;border:1px solid #008;border-radius:1em/1em;color:#000;left:30px;padding:0.3em 3em;position:fixed;top:10px;z-index:9999;"><button type=button id=b1 class=btn_type1 style="padding:10px;" onclick="N(location.href);$(\'#b2\').show();$(\'#b1\').hide();">Prepare</button> <button type=button id=b2 class=btn_type1 onclick="O(99,parseInt($(\'#sc\').val(),10))" style="display:none;padding:10px;">Start</button> <select id=sc class=ir_form><option value=2000>2秒<option value=4000 selected>4秒<option value=6000>6秒<option value=8000>8秒<option value=10000>10秒</select> <button type=button id=b3 class=btn_type1 style="padding:10px;" onclick="$(\'#t\').remove();">Close</button></div>');