閉じる
閉じる
×
【前置き】
どどんとふのログ保存には、[全タブ]という便利な保存機能があります。
全てのタブの発言が時系列に並んで出力され、行の頭にはどのタブでの
発言だったかが記載されます。
この機能、便利なので多用しています。
【開発経緯】
にもかかわらず今回このようなスクリプトを作った経緯なのですが、
自分がセッションをしているGM持ち回りのオンラインセッション環境では
担当したセッションのログをGMがアップするというお約束になっています。
その中で、セッションログをタブ別と全タブで欲しい、という声があがったため
じゃあ、全タブから欲しいタブだけ抽出しちゃおうという発想に至りました。
まだまだ試作品ではありますが、一応の完成を見ることができましたので、ここに公開いたします。
良かったら使ってみてください。
【スクリプト作成の振り返り】
どどんとふの全タブ機能では、ダイスボット使用などで発言の中に改行が発生した際、
[メイン]06:07:テスト:2d6
DiceBot : (2D6) → 6[5,1] → 6
と表示され、先頭行が[~~~]の行を抽出するだけでは不十分で
次の[~~~]が発見されるまで途中の行を抽出し続けるロジックを組む必要がありました。
今回のコードでは該当の[~~~]が付いている行を出力した後、付随する行を出力するループに入ることで処理しています。
【使用方法】
- どどんとふのログをHTML形式・全タブで保存し、以下のコードを<body>タグのすぐ下に張り付けてください。
- ログファイルをHTMLファイルとしてブラウザ等で開くと、テキストボックスとボタンが表示されます。
- テキストボックスに抽出したいタブ名を入力し、エンターキーか[抽出]ボタンを押します。
(タブ名の前後に [ や ] は不要
<form name="ext_form">
<input type="text" name="textbox" value="" onKeyPress="ext_tab_onkey();">
<input type="button" value="抽出" onclick="ext_tab()">
</form>
<script>
<!--
function ext_tab_onkey(){
if( window.event.keyCode == 13 ){
ext_tab();
}
}
function ext_tab(){
var target = ext_form.textbox.value;
if(target==""){
alert("値が入力されていません。");
}else{
alert(""+ target +"を抽出します。");
var reg0 = new RegExp("^\\["+target+"\\]");
var reg1 = new RegExp("^\\["+".*"+"\\]");
var textArray = document.body.innerHTML.split(/\r\n|\r|\n/);
for (var i = 0; i < textArray.length;) {
if(textArray[i].match(reg0)=="["+target+"]"){
document.write( textArray[i] );
i ++ ;
for(; i < textArray.length;i ++){
var tA = textArray[i].match(reg1);
if(tA==null){
document.write( textArray[i] );
}else{
break;
}
}
}else{
i ++;
}
}
}
}
-->
</script>
<input type="text" name="textbox" value="" onKeyPress="ext_tab_onkey();">
<input type="button" value="抽出" onclick="ext_tab()">
</form>
<script>
<!--
function ext_tab_onkey(){
if( window.event.keyCode == 13 ){
ext_tab();
}
}
function ext_tab(){
var target = ext_form.textbox.value;
if(target==""){
alert("値が入力されていません。");
}else{
alert(""+ target +"を抽出します。");
var reg0 = new RegExp("^\\["+target+"\\]");
var reg1 = new RegExp("^\\["+".*"+"\\]");
var textArray = document.body.innerHTML.split(/\r\n|\r|\n/);
for (var i = 0; i < textArray.length;) {
if(textArray[i].match(reg0)=="["+target+"]"){
document.write( textArray[i] );
i ++ ;
for(; i < textArray.length;i ++){
var tA = textArray[i].match(reg1);
if(tA==null){
document.write( textArray[i] );
}else{
break;
}
}
}else{
i ++;
}
}
}
}
-->
</script>
【注意】
スクリプトの追加位置はわかりやすさ優先で<body>タグのすぐ下としています。
ブロマガの仕様上字下げが十分にされていません。
-
次の記事これより新しい記事はありません。
-
前の記事2017-04-26 17:21:44ニコ生でも使えるOBS最強?ノイズカット法6コメ
広告