Class: Otacrawler::Sites::TonariNoYJ

Inherits:
Base
  • Object
show all
Includes:
Mem
Defined in:
lib/otacrawler/sites/tonari_no_yj.rb

Instance Method Summary collapse

Methods inherited from Base

inherited

Constructor Details

#initializeTonariNoYJ

Returns a new instance of TonariNoYJ.



9
10
11
12
# File 'lib/otacrawler/sites/tonari_no_yj.rb', line 9

def initialize
  @url = "http://www.tonarinoyj.jp"
  @collector = Collector.new(@url)
end

Instance Method Details

#analyzeObject



14
15
16
17
18
19
20
21
22
23
24
# 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

#authorsObject



41
42
43
44
45
46
# File 'lib/otacrawler/sites/tonari_no_yj.rb', line 41

def authors
  item_body.map do |comic|
    authors = comic.css('p').first.inner_text
    authors.split(/[[:space:]]/)
  end
end

#description(url) ⇒ Object



59
60
61
62
63
64
65
66
# 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_listObject



49
50
51
52
53
54
55
56
# 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) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# 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

#titlesObject



34
35
36
37
38
# 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_listObject



26
27
28
29
30
31
# 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