ĂĽber T-Mobile RechnungOnline kann man sich die Rechnung als gpg-verschlĂĽsselten Anhang per Mail schicken lassen – incl. Einzelverbindungsnachweis. Und obwohl’s nur 1x im Monat kommt, ist das Auspacken und Umbenennen in sinnvolle Dateinamen eine lästige Routinearbeit.
Also – automatisieren. Das folgende Ruby-Script erledigt das, nachdem der Rechnungsanhang in einen der Ordner „Downloads“ oder „Desktop“ gelegt wurde:
#!/usr/bin/ruby
dst="#{ENV['HOME']}/Documents/tmobile"
# 1. pull together all pgp crypted find Rechnung_15.10.2009.zip.pgp in Desktop, Downloads, local dir
["#{ENV['HOME']}/Downloads", "#{ENV['HOME']}/Desktop", dst].each do |dir|
Dir.foreach(dir) do |file|
m = /Rechnung_(\d{2})\.(\d{2})\.(\d{4})\.zip(\.pgp|\.gpg)?/.match file
if m
s = system "mv #{dir}/#{file} #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}"
s = system "gpg #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}" if m[4]
system "rm #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}" if s && m[4]
s = system "unzip #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip"
system "rm #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip" if s
puts "de-crypted & unpacked #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip"
end
end
end
# 2. rename unpacked files accordingly
Dir.foreach(dst) do |file|
m = /^Rechnung_(\d{4})_(\d{2})_(.+)$/.match file
system "mv #{dst}/#{file} #{dst}/#{m[1]}-#{m[2]}-bill-#{m[3]}" if m
m = /^Einzelverbindungsnachweis_(\d{4})_(\d{2})_(.+)$/.match file
system "mv #{dst}/#{file} #{dst}/#{m[1]}-#{m[2]}-evn--#{m[3]}" if m
m = /^Rechnung_(\d{5,20})_(\d{2})_(\d{4})(.+)$/.match file
system "mv #{dst}/#{file} #{dst}/#{m[3]}-#{m[2]}-bill-#{m[1]}#{m[4]}" if m
m = /^Einzelverbindungsnachweis_(\d{5,20})_(\d{2})_(\d{4})(.+)$/.match file
system "mv #{dst}/#{file} #{dst}/#{m[3]}-#{m[2]}-evn--#{m[1]}#{m[4]}" if m
end