Class: Macaroni::Plugin::Output::Ikachan

Inherits:
Object
  • Object
show all
Defined in:
lib/macaroni/plugin/output/ikachan.rb

Instance Method Summary collapse

Constructor Details

#initialize(base_url, channel) ⇒ Ikachan

Returns a new instance of Ikachan.



8
9
10
11
# File 'lib/macaroni/plugin/output/ikachan.rb', line 8

def initialize(base_url, channel)
  @base_url = base_url
  @channel  = channel
end

Instance Method Details

#exec(data) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/macaroni/plugin/output/ikachan.rb', line 13

def exec(data)
  return data if data.empty?

  uri = URI.parse "#{@base_url}"
  Net::HTTP.new(uri.host, uri.port).start do |http|
    data.each do |row|
      request = Net::HTTP::Post.new('/join')
      request.set_form_data(:channel => @channel)
      http.request(request)

      request = Net::HTTP::Post.new('/notice')
      request.set_form_data(:channel => @channel, :message => row[:message])
      http.request(request)

      if row[:handler]
        request = Net::HTTP::Post.new('/notice')
        request.set_form_data(:channel => @channel, :message => row[:handler])
        http.request(request)
      end
    end
  end
end