[limechat]private talkでログを残す

( limechat )

昔書いた記事の続きなんですがトーク中は勝手にログをファイルに保存させちゃうことにしました。

そうすると、相手のチャット名で話した内容が保存されるようになります。

// usage:
//      make directory C:\Program Files\LimeChat2\users\[user name]\scripts\files\privateChatLog
//      modify self variable to yourself

// IRCのユーザ名を記述
var self = "nakaji";

// ログ保存有無
var logFlg = true;

// トークログ用ディレクトリ
var dir = 'privateChatLog/';

function event::onTalkText(prefix, targetNick, text)
{
    // 自分以外からのユーザのみ処理
    if (prefix.nick != self) {
        showBalloon(prefix.nick, text); // バルーン
        playSound("type.wav");          // サウンド
        window.BlinkTitle();            // タイトルバーを点滅
    }

    if (logFlg == true) {
        date = getDateStr();
        
        // 相手が自分に発言してきたときはユーザを相手にして強制的に保存させる
        var user = targetNick;
        if (user == self) {
            user = prefix.nick;
        }
        str = "[" + date + "] " + prefix.nick + " > " + text;
        write_file_string( dir + user + '.log', str)
    }
}


//--------------------------------------------
// ファイル書き込み
//--------------------------------------------
function write_file_string( file_name, string  ){
    file = openFile( file_name , false );
    file.seekToEnd();
    file.writeLine(string); 

    file.close();
}

//--------------------------------------------
// 日付表示
//--------------------------------------------
function getDateStr() {
    date = new Date();
    yy = date.getYear();
    mm = date.getMonth() + 1;
    dd = date.getDate();
    
    hh = date.getHours();
    ii = date.getMinutes();
    ss = date.getSeconds();
    
    if (yy < 2000) { yy += 1900; }
    if (mm < 10) { mm = "0" + mm; }
    if (dd < 10) { dd = "0" + dd; }
    if (hh < 10) { hh = "0" + hh; }
    if (ii < 10) { ii = "0" + ii; }
    if (ss < 10) { ss = "0" + ss; }
    str = yy + "/" + mm + "/" + dd + " " + hh + ":" + ii + ":" + ss;
    return str;
}