class Otacrawler::Sites::TonariNoYJ
Public Class Methods
new()
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 9 def initialize @url = "http://www.tonarinoyj.jp" @collector = Collector.new(@url) end
Public Instance Methods
analyze()
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 14 def analyze url_list.each_with_index do |url, i| params = { url: url, title: titles[i] } comic = Models::Comic.new(params) if comic.save # overlapping check create(comic, i) else update(url, i) end end end
description(url)
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 59 def description(url) collector = Collector.new(url) pattern = "//div[@class='single-story']" comic = collector.collect(pattern) comic.first.css('p').first.inner_text rescue "" end
image_url_list()
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 49 def image_url_list css = 'figure.home-manga-item-figure' comics = items.map {|item| item.css(css) } comics.map do |comic| path = comic.css('img').first.attributes['src'].to_s File.join(@url, path) end end
stories(url)
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 68 def stories(url) collector = Collector.new(url) pattern = "//div[@class='single-backnumber']/dl" stories = collector.collect(pattern) result = stories.map do |story| unless story.css('dt').empty? title = story.css('dt').first.inner_text else title = "" end story.css('li').map do |number| path = number.css('a').first.attributes["href"].to_s { url: URI.join(@url, path).to_s, title: title, number: number.inner_text.to_i } end end result.flatten end
titles()
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 34 def titles item_body.map do |comic| comic.css('h3').first.inner_text end end
url_list()
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 26 def url_list item_body.map do |comic| path = comic.css('a').first.attributes["href"].to_s File.join(@url, path) end end
Private Instance Methods
create(comic, i)
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 92 def create(comic, i) comic.image_url = image_url_list[i] comic.description = description(comic.url) authors[i].each do |author| comic.authors.build({ name: author }) end stories(comic.url).each do |story| comic.stories.build(story) end comic.save end
item_body()
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 135 def item_body css = 'div.home-manga-item-body' items.map {|item| item.css(css) } end
items()
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 129 def items pattern = "//div[@class='home-manga-item-wrapper']" @collector.collect(pattern) end
update(url, i)
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 104 def update(url, i) comic = Models::Comic.find_by(url: url) comic.image_url = image_url_list[i] comic.description = description(url) comic.save update_author(url, i) update_story(url, i) end
update_story(url, i)
click to toggle source
# File lib/otacrawler/sites/tonari_no_yj.rb, line 121 def update_story(url, i) comic = Models::Comic.find_by(url: url) stories(url).each do |story| comic.stories.build(story) end comic.save end