Skip to content

Instantly share code, notes, and snippets.

@moyashi
Last active December 28, 2018 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moyashi/cfc791a31bf026cf089f6e7663b64bda to your computer and use it in GitHub Desktop.
Save moyashi/cfc791a31bf026cf089f6e7663b64bda to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# coding: utf-8
require 'csv'
require 'time'
require 'kconv'
# coincheckの「設定>取引履歴」( https://coincheck.com/ja/monthly_trade/confirmations ) からダウンロードできる XXXXXXX_201XXX_1.csv を、
# Gtax ( https://crypto-city.net/balance ) にインポートできる共通フォーマット形式のcsvに変換するRubyスクリプト
# 共通フォーマットサンプル.xlsxはxslxだけど、csvでもインポートできてるぽい
# 無保証
# 使い方 XXXXXXX_201XXX_1.csv を保存したディレクトリを引数として渡す
# ./coincheck_chatbonus_or_hardfork_filter.rb /path/to/csv/dir/
# するとカレントディレクトリに chatbonus_or_hardfork.csv ができる
if (ARGV.length == 0 || !File.directory?(ARGV[0])) then
STDERR.puts "引数にCoincheckの「設定>取引履歴」からダウンロードしたXXXXXXX_201XXX_1.csv を集めたディレクトリを渡してください"
end
arr = []
Dir.glob(File.join(ARGV[0], "*.csv")) do |f|
arr << File.basename(f)
end
output = CSV.generate do |csv|
row = "取引所名|日時(JST)|取引種別|取引通貨名(+)|取引量(+)|取引通貨名(-)|取引量(-)|取引額時価|手数料通貨名|手数料数量".split("|")
csv << row
arr.sort.each do |f|
buf = open(File.join(ARGV[0], f)).read.toutf8
buf.gsub!("\r\n", "\n")
buf.gsub!("\r", "\n")
buf.gsub!("コインチェック株式会社\n", "")
csv_data = CSV.parse(buf, headers: true)
csv_data.each do |data|
if (data["操作内容"] == "チャットの報酬" ||
data["操作内容"] == "ハードフォークによる入金") then
t = Time.parse(data["日付"]).localtime.strftime("%Y/%m/%d %H:%M")
row = [
# 取引所名
"coincheck",
# 日時(JST)
t,
# 取引種別
"ボーナス",
# 取引通貨名(+)
data["通貨"],
# 取引量(+)
data["金額"],
# 取引通貨名(-)
nil,
# 取引量(-)
nil,
# 取引額時価
nil,
# 手数料通貨名
nil,
# 手数料数量
nil
]
csv << row
end
end
end
end
File.open(File.join(ARGV[0], "chatbonus_or_hardfork.csv"), 'w') do |file|
file.write(output.gsub("\n", "\r\n").tosjis)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment