www/secretary/icla-parse.cgi (44 lines of code) (raw):

#!/usr/bin/env ruby $LOAD_PATH.unshift '/srv/whimsy/lib' # DRAFT # DRAFT # DRAFT # DRAFT # DRAFT # DRAFT # Test ICLA PDF parsing # Invoke as: # /secretary/icla-parse/yyyymm/hash/icla.pdf print "Content-type: text/plain; charset=UTF-8\r\n\r\n" pathinfo = ENV['PATH_INFO'] iclaname = File.basename(pathinfo) puts "Processing #{pathinfo} to parse #{iclaname}" puts "" begin require_relative 'workbench/models/mailbox' require_relative 'iclaparser' message = Mailbox.find(pathinfo) path = message.find(iclaname).as_file.path parsed = ICLAParser.parse(path) parsed.sort_by{|k,v| k.to_s }.each do |k,v| puts "%-20s %s" % [k,v] unless k == :_meta end puts "" parsed[:_meta].sort_by{|k,v| k.to_s }.each do |k,v| if k == 'info' (v ||{}).sort_by{|k,v| k.to_s }.each do |k,v| puts "%-20s %-15s %s" % ['info',k,v] end elsif k != 'metadata' # can be long puts "%-20s %s" % [k,v] end end metadata = parsed[:_meta]['metadata'] if metadata puts "" puts "metadata:" puts metadata end rescue Exception => e p e end