Deck Builder for DM 用スクリプト
http://d.hatena.ne.jp/dmd/ さんとこのリストをCSV 化(元CSV)して,
その csv を指定して,Deck Builder for Duel Masters
http://www.tateyama.or.jp/~imachan/dm/
で使えるCSVを作成する.
#!/usr/bin/env ruby require 'optparse' require 'csv' class TRDM def run @dan = 25 ARGV.options do |o| o.on('-d dan_name', 'dan name [25 or 26]') {|d| @dan = d} o.parse! end CSV.open(ARGV[0], 'r') do |row| unless /\d/ === row[0] next end # 弾数, 弾内の通し番号,全体の通し番号,パック名,レアリティ, # カード名,文明,分類,種族,コスト, # ,パワー,能力,,,,, # №,カード名,文明,種別,種族, # コスト,パワー,テキスト,R no, name, color, type, cr_type, cost, power, text, r = row no = make_no(no) case @dan when '25' dan_num = '25' pack_name = '極神編 人造神の創造' when '26' dan_num = '26' pack_name = '極神編 超絶VS究極' else raise 'unknown dan ' + @dan end dan_str = "DM-#{dan_num}" new_t = [dan_str, no, make_id(dan_num, no), pack_name, make_rare(r), name, nl2sla(color), type, nl2sla(cr_type || ''), cost, 1, power, make_text(text), '4', '4', '4', '4', 'ダミー'] # デッキに入れられる枚数 print new_t.join(",") + "\r\n" end end def nl2sla(str) str.gsub!(/\n/, "/") str end def make_text(text) text.gsub!(/■/, "") text.gsub!(/\n/, '\r\n') end def make_rare(r) case r when 'S' '□' when '☆' '◎' when '★' '★' when '◆' '◆' when '●' '●' else raise 'error unexpected condition for ' + r end end def make_id(dan, local_id) dan + local_id end def make_no(no) if /^s/ === no no.sub!(/^s/, '') 'S' + ('%02d' % no) else '%03d' % no end end end if File.basename(__FILE__) == File.basename($0) TRDM.new.run end
元 csv を指定して,イメージをダウンロードするスクリプトを生成する.
#!/usr/bin/env ruby require 'optparse' require 'csv' class TRDM def run @dan = '25' ARGV.options do |o| o.on('-d dan_name', 'dan name [24-26]') {|d| @dan = d} o.parse! end CSV.open(ARGV[0], 'r') do |row| unless /\d/ === row[0] next end # to # http://dm.takaratomy.co.jp/card/list/images/card/yami/dm23-045.jpg # from # №,カード名,文明,種別,種族, # コスト,パワー,テキスト,R no, name, color, type, cr_type, cost, power, text, r = row no = make_no(no) case @dan when /2[4-6]/ dan_num = @dan else raise 'unknown dan ' + @dan end dan_str = "dm#{dan_num}" prefix = 'http://dm.takaratomy.co.jp/card/list/images/card' suffix = '.jpg' new_t = [prefix, make_color(color), make_fname(dan_str, no, suffix)] print new_t.join("/") + "\r\n" end end def make_color(color) case color when /\n/ 'rainbow' when /光/ 'hikari' when /水/ 'mizu' when /闇/ 'yami' when /火/ 'hono' when /自然/ 'sizen' else raise 'unknown color ' + color end end def make_fname(dan, local_id, suffix) lid = nil if /^s/i === local_id lid = local_id else lid = ("%03d" % local_id) end dan + '-' + lid + suffix end def make_no(no) if /^s/ === no no.sub!(/^s/, '') 's' + ('%02d' % no) else no end end end if File.basename(__FILE__) == File.basename($0) TRDM.new.run end
DLしたファイル名を Deck Builder 用のファイル名に変更するための
スクリプトを作成する.
#!/usr/bin/env ruby class Ren def run # from = ARGV.shift # to = ARGV.shift from = 'dm' to = 'DM-' ARGV.each do |ffname| tfname = ffname.sub(/#{from}/, to).sub(/s/, 'S') puts "mv #{ffname} #{tfname}" end end end if File.basename(__FILE__) == File.basename($0) Ren.new.run end
めちゃ適当な感じ.
これはこれで良いんだけど,これだとカード足りないんだよなぁ.
構築済みのやつとか.手かhttp://www27.atwiki.jp/duel_masters/ さんとことかか?