#!/usr/bin/env ruby -Ks =begin = 攻城戦結果自動作成スクリプト RO攻城戦ログ集計スクリプト、攻城速報@ろらじおのログを作成して 結果出力を自動化します。 == 入力 === 開始日付(未入力の時:マイグレ直後; 2004/05/23) === 終了日付(未入力の時:実行した日) === ワールド名(鯖名) === 攻城戦ログ形式(ropp, time, timetableなど) === 何日前、未入力なら'0'が指定されます == RO攻城戦ログ集計スクリプト ログからRO攻城戦ログ集計スクリプト形式のcsvファイルを作成します。 攻城戦ログ(ROPP、Lydia板など)とworld年月日_toridenusi.lstから world年月日.csv を作成します。 === world年月日.csv RO攻城戦ログ集計スクリプト === 実行される外部スクリプト YYYYMMDD/main.pl == 攻城速報@ろらじお RO攻城戦ログ集計スクリプトによって生成される砦別占領ギルド名ファイル、 Lydia年月日_toridenusi.lst を 攻城速報@ろらじお形式ファイル fort_年月日.txt に変換して出力します。 log.txt(ろ++形式の攻城戦ログ)を作成します。 === 自動生成する攻城戦ログ log.txt fort.txt === 実行される外部スクリプト gvgf/gvgf.pl == 使い方 % makelog.rb 0 0 Lydia time =end require 'date' require 'gvglib.rb' start_day = ARGV[0] # 開始日付 end_day = ARGV[1] # 終了日付 world = ARGV[2] # ワールド名(鯖名) prefix = ARGV[3] # 形式(ropp, time, timetableなど) before_date = ARGV[4].to_i # 数字型:何日前か(参照する日付)未入力は0 if ARGV == [] # 引数が何も指定されていない時 print RACER_COMMAND, "#$0 : 開始日付(未入力の時:マイグレ直後; 2004/05/23) : 終了日付(未入力の時:実行した日) : ワールド名(鯖名) : 形式(ropp, time, timetableなど)\n" : 何日前、未入力なら'0'を自動指定(前回の砦別リスト日付)\n" exit end world = check_argv_world(world) # ワールド名のチェック # 開始日付が 0 の時は START_DATE に設定 start_day = check_argv_day(start_day, SET_DATE_START) # 終了日付が 0 の時は今日の日付に設定 end_day = check_argv_day(end_day, Date.today.strftime('%Y%m%d')) start_date = Date.parse(start_day) end_date = Date.parse(end_day) use_datelist = datelist_make(start_date, end_date) # 日付リスト use_datelist = datelist_delete(use_datelist) # 中止日付リスト limit_week = use_datelist.length #ls_dir = "./20040829" ls_dir = "./LogScript" # RO攻城戦ログ集計スクリプトのディレクトリ #gvgf_dir = "./gvgf" gvgf_dir = "./LogScript" # "攻城速報@ろらじお" v1.15 のディレクトリ gvgf_html = gvgf_dir + "/gvg.html" for count in 0 ... limit_week # 個別設定 now_ymd = use_datelist[count][0] # YYYYMMDD log_path = world + "/log/" + prefix + "_" + now_ymd + ".txt" ls_file = world + now_ymd + ".csv" ls_path = ls_dir + "/log/" + ls_file # CSV作成 gvgf_log = gvgf_dir + "/result/" + "gvgf_" + now_ymd + ".html" if FileTest.exist?(log_path) == false print "攻城戦ログ ", log_path, " は存在しません。\n" next # 次の攻城戦ログファイルへ end # 日付作成 file_date = Date.parse(use_datelist[count][0]) # 日付取得 now_y_m_d = file_date.strftime('%Y_%m_%d') # YYYY_MM_DD slash_ymd = file_date.strftime('%Y/%m/%d') # YYYY/MM/DD # 何も指定しない時は1週間前の日付を設定する if before_date == 0 then before_date = 7 end bef_ymd = (file_date - before_date).strftime('%Y%m%d') bef_ymd = datelist_before(use_datelist, bef_ymd) # 前回の日付(中止前) bef_y_m_d = Date.parse(bef_ymd).strftime('%Y_%m_%d') # YYYY_MM_DD # lstのパス(今回分と前回分) bef_lst_path = ls_dir + "/log/" + world + bef_ymd + "_toridenusi.lst" bef_fort_path = "./" + world + "/log/fortlist_" + bef_ymd + ".txt" # 前回の砦所有リスト # 0:[時刻] 1:[砦地域] 2:[砦番号] 3:[ギルド名] (四次元配列) fortlog = log_read_format(log_path) # 攻城戦ログの読み込み # 砦別リストの読み込み(変換) # 前回の砦名一覧リストチェック if FileTest.exist?(bef_fort_path) == true # bef_fortlist = log_read_fortlist_logscript(bef_lst_path, "<>") bef_fortlist = log_read_fortlist(bef_fort_path) # 読み込み else print bef_fort_path, " は見つかりませんでした。\n" print "前回の結果を初期化して使います。\n" bef_fortlist = fortlist_init('', 0) # 初期化 end =begin == RO攻城戦ログ集計スクリプト用のログ作成 =end # ヘッダー情報 csv_header =<