Class: FAMailer

Inherits:
Object
  • Object
show all
Defined in:
lib/famailer.rb

Constant Summary collapse

VERSION =
"0.0.3"
HOST =
"http://furaffinity.net"

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ FAMailer

Returns a new instance of FAMailer.



8
9
10
11
12
# File 'lib/famailer.rb', line 8

def initialize(options = {})
  @fa_cookie_a = options.delete(:fa_cookie_a) || ENV["FA_COOKIE_A"]
  @fa_cookie_b = options.delete(:fa_cookie_b) || ENV["FA_COOKIE_B"]
  @debug = options.delete(:debug)
end

Instance Method Details

#cookiesObject



47
48
49
50
51
52
# File 'lib/famailer.rb', line 47

def cookies
  {
    "a" => @fa_cookie_a,
    "b" => @fa_cookie_b
  }
end

#formObject



35
36
37
# File 'lib/famailer.rb', line 35

def form
  @form ||= messages_page.css("#MsgForm").first
end

#keyObject



31
32
33
# File 'lib/famailer.rb', line 31

def key
  @key ||= form.css("input[name=key]").first['value']
end

#messages_pageObject



39
40
41
# File 'lib/famailer.rb', line 39

def messages_page
  @messages_page ||= Nokogiri::HTML(site["/msg/pms"].get.body)
end

#send!(recipient, subject, message, options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/famailer.rb', line 14

def send!(recipient, subject, message, options = {})
  puts "#{subject} -> #{recipient}\n---\n#{message}" if @debug

  site[form['action']].post({
    key: key,
    to: recipient,
    subject: subject,
    message: message
  }) do |response|
    if response.code == 301
      response.follow_redirection do |response|
        puts "Message sent" if @debug && response.code == 302
      end
    end
  end
end

#siteObject



43
44
45
# File 'lib/famailer.rb', line 43

def site
  @site ||= RestClient::Resource.new(HOST, cookies: cookies)
end