#! /usr/bin/ruby =begin = 攻城戦ログ設置 == 著作権 by silica as 冬物語の人 http://winter.sgv417.jp/ ログを各ワールドごとに WWW の決まった場所にアップロードします。 =end # 設定 server = 'www.sgv417.jp' # FTP サーバー名 user = 'winter' # FTP ログイン名 passwd = 'katzekatze' # パスワード acct = '' remotedir = '/public_html/racer' # サーバーのパス localdir = 'C:\bin\racer' # ローカルのパス worldlist = ['lydia', 'freya', 'bijou'] # 実行ワールドリスト require 'net/ftp' require 'gvglib/date.rb' log_date = ARGV[0] # 日付 (YYYYMMDD) world = ARGV[1] # ワールド名(鯖名) if log_date == '0' or log_date == nil file_date = Date.today.wday_before(0) else file_date = Date.parse(log_date) # 日付取得(YMD) end now_ymd = file_date.ymd # YYYYMMDD now_year = file_date.year # 入力年 # レーサー集計 racer_filelist = [] list = ['racer', 'sera', 'timetable', 'fort', 'guild', 'stat'] ext = 'html' count = 0 list.each { |prefix| racer_filelist[count] = 'report/' + prefix + '_' + now_ymd + '.' + ext count += 1 } # 総集計 total_filelist = [ 'index.html', 'history/Valkyrie.html', 'history/Chung-Rim.html', 'history/Britoniah.html', 'history/Luina.html', 'history/last_3week.html', 'history/ranking.html', 'total/all_racer.html', 'total/all_rowiki.html', 'total/all_sera.html', 'total/all_stat.html', 'list.html', 'total/last.html', 'total/cp.html', 'total/ten_racer.html', 'total/ten_rowiki.html', 'total/ten_sera.html', 'total/ten_stat.html', 'total/eight_racer.html', 'total/eight_rowiki.html', 'total/eight_sera.html', 'total/eight_stat.html', 'total/five_racer.html', 'total/five_rowiki.html', 'total/five_sera.html', 'total/five_stat.html', 'total/four_racer.html', 'total/four_rowiki.html', 'total/four_sera.html', 'total/four_stat.html', 'total/all_racer.csv', 'total/all_rowiki.csv', 'total/all_sera.csv', 'total/ten_racer.csv', 'total/ten_sera.csv', 'total/ten_rowiki.csv', 'total/eight_racer.csv', 'total/eight_sera.csv', 'total/eight_rowiki.csv', 'total/five_racer.csv', 'total/five_sera.csv', 'total/five_rowiki.csv', 'total/four_racer.csv', 'total/four_sera.csv', 'total/four_rowiki.csv', #'total/racer_derby.csv', #'total/wiki_racer.txt', 'total/last.txt', ] filelist = racer_filelist + total_filelist # bijouワールド限定アップファイル bijoulist = [ "tmp/chatpon_#{now_ymd}.txt", # ログファイル "text/racer_#{now_ymd}.txt", "text/sera_#{now_ymd}.txt", "text/fort_#{now_ymd}.txt", "text/stat_#{now_ymd}.txt", "text/guild_#{now_ymd}.txt", "text/timetable_#{now_ymd}.txt", # 時系列ファイル "wiki/racer_#{now_ymd}.txt", # Wikiファイル ] # 特定ワールド、特定ファイルリストのミラー def sendlist(ftp, filelist, world, localdir) filelist.each { |filename| put_file = world + "/" + filename if FileTest.exist?(put_file) == true #print "Local: ", localdir + "/" + put_file, "\n" #print "Remote: ", put_file, "\n" ftp.puttextfile(localdir + "/" + put_file, put_file) # print "UPLOAD: ", put_file, "\n" # ファイルリストを取得して表示 else print put_file, "が存在しないのでアップロードできませんでした。\n" end } end ftp = Net::FTP.new(server) ftp.login(user, passwd, acct) print "FTP Login: " , user, " at ", server, "\n" print "LOCAL : ", localdir, "\n" print "REMOTE: ", remotedir, "\n" # ワールド指定がなければ全ワールドを指定 if world == 0 or world == nil worldlist.each { |world| print "WORLD : ", world, "\n" files = ftp.chdir(remotedir) sendlist(ftp, filelist, world, localdir) if world == 'bijou' # Bijou攻城戦ログのアップ sendlist(ftp, bijoulist, world, localdir) end ftp.chdir('../') } else # 特定ワールドのみをアップロードする files = ftp.chdir(remotedir) print "WORLD : ", world, "\n" sendlist(ftp, filelist, world, localdir) if world == 'bijou' # Bijou攻城戦ログのアップ sendlist(ftp, bijoulist, world, localdir) end ftp.chdir('../') end ftp.close print "FTP Logout.\n" exit