#!/usr/bin/env ruby -Ks # ログ変換 Log Convert # 攻城戦ログを読み込んで各種ログ形式に変換します。 # 前提:入力ファイル # 文字コード:SJIS 限定 # 名前形式 :接頭辞_日付.txt require 'gvglib.rb' log_path = ARGV[0] # パスとファイル名 world = ARGV[1] # ワールド名(鯖名) before_date = ARGV[2].to_i # 数字型:何日前か(参照する日付)未入力は0 if ARGV == [] # 引数が何も指定されていない時 print RACER_COMMAND, "#$0 : ログファイル、日付を含む(ropp_YYYYMMDD.txt) : ワールド名(鯖名) : 何日前、未入力なら'0'を自動指定(前回の砦別リスト日付) \n" exit end if FileTest.exist?(log_path) == false print log_path, " は見つかりませんでした。\n" exit end world = check_argv_world(world) # ワールド名チェック log_file = File.basename(log_path) # ファイル名の取得 file_date = Date.parse(log_file) # 日付取得(YMD) now_ymd = file_date.ymd # YYYYMMDD now_y_m_d = file_date.ymd_under # YYYY_MM_DD start_date = Date.new(2004, 5, 23) # 開始日付;マイグレ直後 end_date = Date.today # 今日の日付 use_datelist = datelist_make(start_date, end_date) # 日付リスト use_datelist = datelist_delete(use_datelist) # 中止日付リスト # 何も指定しない時は1週間前の日付を設定する if before_date == 0 then before_date = 7 end bef_ymd = (file_date - before_date).ymd bef_ymd = datelist_before(use_datelist, bef_ymd) # 前回の日付(中止前) # 0:[時刻] 1:[砦地域] 2:[砦番号] 3:[ギルド名] (四次元配列) fortlog = [] # 配列の初期化 fortlog = log_read_format(log_path) # 攻城戦ログの読み込み print "-- 攻城戦ログを読み込みました。\n" #x = y = 0 # イテレータ変数の事前宣言(高速化用) # 砦名のソート(ソート順:砦名>時間)fort_ #fortsortlist = fortlog.sort{|x, y| [x[1], x[2], x[0]] <=> [y[1], y[2], y[0]]} # ギルドのソート(ソート順:ギルド>時間)guild_ #guildsortlist = fortlog.sort{|x, y| [x[3], x[0]] <=> [y[3], y[0]]} # 前回と今回の砦所有リスト設定 bef_fort_path = world + "/log/fortlist_" + bef_ymd + ".txt" now_fort_path = "fortlist_" + now_ymd + ".txt" # 前回の砦名一覧リストチェック if FileTest.exist?(bef_fort_path) == true # 前回の砦占領リスト bef_fortlist = log_read_fortlist(bef_fort_path) else print bef_fort_path, " は見つかりませんでした。\n" print "前回の結果を初期化して使います。\n" bef_fortlist = fortlist_init('', 0) # 初期化 end # 砦別最終占領時間 fort_breaktime = fortlist_breaktime(bef_fortlist, fortlog) # 砦別防衛時間 fort_deftime = fortlist_deftime(fort_breaktime) log_write_fortlist(now_fort_path, fort_deftime, now_y_m_d) print "-- 砦名一覧を書き込みました。\n" # ギルド名一覧 #guildfile = "guildlist_" + now_ymd + ".txt" #log_write_guildlist(guildfile, fortlog) #print "-- ギルド名一覧を書き込みました。\n" # 攻城戦ログ timefile = "time_" + now_ymd + ".txt" # タブコードは""で囲まないといけない log_write_format(timefile, bef_fortlist, fortlog) print "-- テキスト(tab)形式でログを書き込みました。\n" chatponfile = "chatpon_" + now_ymd + ".txt" log_write_format(chatponfile, bef_fortlist, fortlog) print "-- ちゃっぽん形式(ChatPon2)でログを書き込みました。\n" bracketfile = "bracket_" + now_ymd + ".txt" #log_write_format(bracketfile, bef_fortlist, fortlog) #print "-- bracket形式(\"[\"と\"]\"で区切られる)でログを書き込みました。\n" #csvfile = "time_" + now_ymd + ".csv" #log_write_format(csvfile, bef_fortlist, fortlog) #print "-- CSV形式でログを書き込みました。\n" #roppfile = "ropp_" + now_ymd + ".txt" #log_write_format(roppfile, bef_fortlist, fortlog) #print "-- ROPP形式でログを書き込みました。\n" #lydiafile = "lydia_" + now_ymd + ".txt" #log_write_format(lydiafile, bef_fortlist, fortlog) #print "-- lydia形式でログを書き込みました。\n" #sesfile = "ses_" + now_ymd + ".txt" #log_write_format(sesfile, bef_fortlist, fortlog) #print "-- ses形式でログを書き込みました。\n" #timetablefile = "timetable_" + now_ymd + ".txt" #log_write_format(timetablefile, bef_fortlist, fortlog) #print "-- timetable形式でログを書き込みました。\n" exit