class VkMusic::Request::Search

Logging in request

Public Class Methods

new(query, client_id) click to toggle source

Initialize new request @param query [String] @param client_id [Integer]

Calls superclass method VkMusic::Request::Base::new
# File lib/vk_music/request/search.rb, line 10
def initialize(query, client_id)
  @client_id = client_id
  super(
    "#{VK_ROOT}/audio",
    { q: query, _ajax: 1 },
    'POST',
    { 'content-type' => 'application/x-www-form-urlencoded', 'x-requested-with' => 'XMLHttpRequest' }
  )
end

Private Instance Methods

after_call() click to toggle source
# File lib/vk_music/request/search.rb, line 24
def after_call
  json = JSON.parse(@response.body.strip)
  raise 'Captcha requested' if json['key'] == 'captcha_key'

  inner = json['data'][2]
  html = Nokogiri::HTML.fragment(CGI.unescapeElement(inner))
  @parser = WebParser::Search.new(html)
end