class JavLibrary::Client

Attributes

success[R]

Public Class Methods

new() click to toggle source
# File lib/jav_library/client.rb, line 10
def initialize
  @browser = Watir::Browser.new :firefox, 'pageLoadStrategy': 'eager'
  # Disable alerts
  @browser.execute_script "window.alert = () => {}"
end

Public Instance Methods

cast() click to toggle source
# File lib/jav_library/client.rb, line 53
def cast
  @doc.css('#video_cast .star a').map {|node| node.content.split('(', 2).first.strip }
end
close() click to toggle source
# File lib/jav_library/client.rb, line 70
def close
  @browser.close
end
cover() click to toggle source
# File lib/jav_library/client.rb, line 57
def cover
  src = @doc.at_css('#video_jacket_img').attr('src')
  'https:' + src.sub('http:', '')
end
genres() click to toggle source
# File lib/jav_library/client.rb, line 66
def genres
  @doc.css("#video_genres .genre").map(&:content)
end
load(code) click to toggle source
# File lib/jav_library/client.rb, line 16
def load(code)
  @browser.goto HOST + code
  @browser.cookies.add "over18", "18"

  # For cloudflare's ddos checking
  begin
    while @browser.html.include? "<title>Just a moment...</title>"
      sleep 0.1
    end
  rescue
    sleep 0.1
    retry
  end

  # Wait until page is loaded
  until @browser.html.include? 'leftmenu'
    sleep 0.1
  end

  @success = !@browser.html.include?('The search term you entered is invalid.')
  @doc = Nokogiri::HTML @browser.html
  
  # if multiple search results
  if @doc.css('.videos .video').length > 1
    url = 'http://www.javlibrary.com/en/'
    url += @doc.at_css('.videos a').attr('href').split('./', 2).last
    @browser.goto url
    @browser.cookies.add 'over18', '18' 
    @doc = Nokogiri::HTML(@browser.html)
  end
end
release_date() click to toggle source
# File lib/jav_library/client.rb, line 62
def release_date
  @doc.at_css("#video_date .text").content
end
title() click to toggle source
# File lib/jav_library/client.rb, line 48
def title
  # splits to remove the prepended jav code
  @doc.at_css('.post-title a').content.split(' ', 2).last
end