class RutrackerApi::Client

Constants

LOGIN_PAGE
ORDER_OPTIONS
SEARCH_PAGE
SORT_OPTIONS

Attributes

agent[RW]

Public Class Methods

new(username, pass) click to toggle source
# File lib/rutracker_api/client.rb, line 18
def initialize(username, pass)
  @agent = Mechanize.new
  @agent.user_agent_alias = 'Mac Safari'
  login(username, pass)
end

Public Instance Methods

Private Instance Methods

login(username, pass) click to toggle source
# File lib/rutracker_api/client.rb, line 36
def login(username, pass)
  @agent.post(LOGIN_PAGE, login_username: username,
                          login_password: pass, login: 'Вход')
end
prepare_query_string(options) click to toggle source
# File lib/rutracker_api/client.rb, line 41
def prepare_query_string(options)
  prepared = { f: options[:category], nm: options[:term],
               s: SORT_OPTIONS[options[:sort]], o: ORDER_OPTIONS[options[:order_by]] }

  StringIO.new.tap do |q|
    q << "#{SEARCH_PAGE}?"
    q << "nm=#{prepared[:nm]}" if prepared[:nm]
    q << "&f=#{prepared[:f]}" if prepared[:f]
    q << "&o=#{prepared[:o]}" if prepared[:o]
    q << "&s=#{prepared[:s]}" if prepared[:s]
  end.string
end