class Threatinator::Plugins::Output::Csv

Public Class Methods

new(config) click to toggle source
Calls superclass method Threatinator::FileBasedOutput::new
# File lib/threatinator/plugins/output/csv.rb, line 10
def initialize(config)
  super(config)
  @csv = ::CSV.new(self.output_io, 
                   :write_headers => true,
                   :headers => [
                     :provider,
                     :feed_name,
                     :type,
                     :ipv4_1,
                     :ipv4_2,
                     :ipv4_3,
                     :ipv4_4,
                     :fqdn_1,
                     :fqdn_2,
                     :fqdn_3,
                     :fqdn_4,
                     :url_1,
                     :url_2,
                     :url_3,
                     :url_4
                   ])
end

Public Instance Methods

handle_event(event) click to toggle source
# File lib/threatinator/plugins/output/csv.rb, line 33
def handle_event(event)
  ipv4s = event.ipv4s.to_a[0..3].map { |o| o.nil? ? nil : o.ipv4.to_addr }
  fqdns = event.fqdns.to_a[0..3]
  urls  = event.urls.to_a[0..3].map {|x| x.to_s }
  @csv.add_row([
    event.feed_provider,
    event.feed_name,
    event.type,
    ipv4s[0],
    ipv4s[1],
    ipv4s[2],
    ipv4s[3],
    fqdns[0],
    fqdns[1],
    fqdns[2],
    fqdns[3],
    urls[0],
    urls[1],
    urls[2],
    urls[3],
  ])
end