this repo has no description
at main 36 lines 934 B view raw
1#!/usr/bin/env ruby 2# Export a CSV from https://www.paypal.com/reports/dlog 3 4require "csv" 5require "time" 6 7def payee(r) 8 [r["Name"], r["Payment Source"], r["Type"]].find{|n| n && !n.empty? } 9 # case r["Type"] 10 # when /Payment$/ 11 # r["Amount (total)"][0] == "-" ? r["To"] : r["From"] 12 # when "Charge" 13 # r["Amount (total)"][0] == "-" ? r["From"] : r["To"] 14 # when "Standard Transfer" 15 # r["Destination"] 16 # else 17 # end 18end 19 20def date(r) 21 Date.strptime(r["Date"], "%m/%d/%Y").iso8601 22end 23 24infile = ARGV.first || "Download.CSV" 25outfile = File.basename(infile, File.extname(infile)) + "_ynab4.csv" 26 27lines = File.read(infile, encoding: "bom|utf-8").lines 28 29CSV.open(outfile, "wb") do |out| 30 out << %w[Date Payee Memo Amount] 31 32 CSV.parse(lines.join, headers: true) do |r| 33 out << [ date(r), payee(r), r["Item Title"], r["Net"] ] 34 out << [ date(r), payee(r), r["Item Title"], r["Fee"] ] if r["Fee"]&.to_i > 0 35 end 36end