class Irasutoya::Irasuto
Attributes
description[R]
has_multiple_images[R]
image_url[R]
image_urls[R]
postthumb_image_url[R]
title[R]
url[R]
Public Class Methods
new(url:, title:, description:, image_urls:)
click to toggle source
# File lib/irasutoya/irasuto.rb, line 11 def initialize(url:, title:, description:, image_urls:) @url = url @title = title @description = description @image_urls = image_urls @has_multiple_images = image_urls.size > 1 @postthumb_image_url = image_urls.first if @has_multiple_images @image_url = image_urls.first end
random()
click to toggle source
# File lib/irasutoya/irasuto.rb, line 22 def random url = random_url document = fetch_page_and_parse(url) parsed = parse_show_page(document: document) Irasuto.new(url: url, title: parsed[:title], description: parsed[:description], image_urls: parsed[:image_urls]) end
search(query:, page: 0)
click to toggle source
# File lib/irasutoya/irasuto.rb, line 30 def search(query:, page: 0) url = if page.zero? "https://www.irasutoya.com/search?q=#{CGI.escape query}" else "https://www.irasutoya.com/search?q=#{CGI.escape query}&max-results=20&start=#{page * 20}&by-date=false" end document = fetch_page_and_parse(url) parse_list_page(document: document).map do |parsed| IrasutoLink.new(title: parsed[:title], show_url: parsed[:show_url]) end end
Private Class Methods
random_api_path()
click to toggle source
# File lib/irasutoya/irasuto.rb, line 45 def random_api_path max_index = 22_208 luck = Random.rand(max_index) "/feeds/posts/summary?start-index=#{luck}&max-results=1&alt=json-in-script" end
random_url()
click to toggle source
# File lib/irasutoya/irasuto.rb, line 51 def random_url jsonp = Net::HTTP.get('www.irasutoya.com', random_api_path) JSON.parse(jsonp[/{.+}/]) # rubocop:disable Style/SingleArgumentDig .dig('feed', 'entry') .first .dig('link') .select { |link| link['rel'] == 'alternate' } .first .dig('href') end