class ElitePvPersAPI::User

Attributes

cookies[RW]

Public Class Methods

new() click to toggle source
# File lib/ElitePvPersAPI.rb, line 14
def initialize
  @cookies           = ""
  @user_is_logged_in = false
end

Public Instance Methods

get_private_messages() click to toggle source
# File lib/ElitePvPersAPI.rb, line 37
def get_private_messages
  private_messages = EPvPersAPI_Array.new

  if is_logged_in == false
    private_messages.returncode = 1
    return private_messages
  end

  agent            = Mechanize.new
  agent.cookie_jar = @cookies
  pns              = agent.get("http://www.elitepvpers.com/forum/private.php")
  File.open("test.html", 'w') { |file| file.write(pns.parser.to_html) }
  doc              = Nokogiri::HTML(pns.parser.to_html)
  pagenav          = doc.search('/html/body/table[2]/tr[2]/td/table/tr[5]/td/table/tr[2]/td/div/div/div/table/tr/td[3]/form[2]/table/tr/td/div/table/tr/td[1]').text
  minpage, maxpage = pagenav.match(/Page (\d{1,10}) of (\d{1,10})/i).captures

  (minpage.to_i..maxpage.to_i).each do |i|
    pns  = agent.get("http://www.elitepvpers.com/forum/private.php?folderid=0&pp=50&sort=date&page="+i.to_s, {'Cookie' => agent.cookie_jar.to_s })
    doc  = Nokogiri::HTML(pns.parser.to_html)
    rows = doc.css("#collapseobj_pmf0_old_messages>tr")
    rows.each do |row|
      private_message    = Array.new
      private_message[0] = row.search("td[3]/div[1]/a[2]").text                                               # Headline of the message
      date               = row.search("td[3]/div[1]/span[1]").text.split("-")                                 # Date of the message
      time               = row.search("td[3]/div[2]/span[1]").text.split(":")                                 # Time of the message
      private_message[1] = DateTime.new(date[2].to_i, date[0].to_i, date[1].to_i, time[0].to_i, time[1].to_i) # Generate DateTime object based on the date and time from the private message
      private_message[2] = row.search("td[3]/div[2]/span[2]").text                                            # Sender
      private_messages.push private_message
    end
  end

  private_messages.returncode = 0

  return private_messages
end
is_logged_in() click to toggle source
# File lib/ElitePvPersAPI.rb, line 73
def is_logged_in
  return @user_is_logged_in
end
login(username, password) click to toggle source
# File lib/ElitePvPersAPI.rb, line 19
def login username, password
  agent                               = Mechanize.new
  page                                = agent.get("http://www.elitepvpers.com/forum/index.php")
  login_form                          = page.form_with(:action => 'http://www.elitepvpers.com/forum/login.php?do=login')
  login_form.vb_login_username        = username
  login_form.vb_login_password        = ''
  login_form.vb_login_md5password_utf = Digest::MD5.hexdigest(password)
  login_form.vb_login_md5password     = Digest::MD5.hexdigest(password)
  page                                = agent.submit login_form
  @cookies                            = agent.cookie_jar

  if page.body.to_s.include? "Thank you for logging in, " + username
    @user_is_logged_in = true
  else
    @user_is_logged_in = false
  end
end