class MediaartsScraper::Page::AnimeEpisodesPage

Constants

OPTION
PAGE_OPTION
PATH

Attributes

ans_id[RW]

Public Class Methods

from_ans_id(ans_id, page_num = 1) click to toggle source
# File lib/mediaarts_scraper/page/anime_episodes_page.rb, line 12
def self.from_ans_id(ans_id, page_num = 1)
  self.new(url: generate_url(ans_id, page_num))
end
from_url(url) click to toggle source
# File lib/mediaarts_scraper/page/anime_episodes_page.rb, line 16
def self.from_url(url)
  self.new(url: url)
end
generate_url(ans_id, page_num) click to toggle source
# File lib/mediaarts_scraper/page/anime_episodes_page.rb, line 20
def self.generate_url(ans_id, page_num)
  [MediaartsScraper.base_url,
   AnimeSeriesPage::PATH,
   ans_id,
   PATH,
   OPTION,
   PAGE_OPTION,
   page_num].join
end

Public Instance Methods

next_page() click to toggle source
# File lib/mediaarts_scraper/page/anime_episodes_page.rb, line 30
def next_page
  @next_page ||= parse_next_page
end

Private Instance Methods

parse(html) click to toggle source
# File lib/mediaarts_scraper/page/anime_episodes_page.rb, line 36
def parse(html)
  title = /\s(.+)$/.match(doc.at_xpath("//section[@class='storyBlock']/h1").text.strip).to_a[1]

  story_table = parse_common_serial_rows_table(doc.at_xpath("//table[@class='storyTbl']"))

  {
    "title" => title,
    "story_table" => story_table,
  }
end
parse_next_page() click to toggle source
# File lib/mediaarts_scraper/page/anime_episodes_page.rb, line 47
def parse_next_page
  nav = doc.at_xpath("//nav[@class='pager']")

  next_page_url = nav.at_xpath("//a[@rel='next']")&.attribute("href")&.value

  next_page_url ? self.class.from_url(resolve_relative_url(url, next_page_url)) : nil
end