Class: Pixiv::Illust

Inherits:
Page
  • Object
show all
Defined in:
lib/pixiv/illust.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Page

#bind, #doc, #fetched?, #force, #initialize, lazy_new

Constructor Details

This class inherits a constructor from Pixiv::Page

Instance Attribute Details

#anchors_in_captionArray<Nokogiri::XML::NodeSet, nil> (readonly)

Lazily returns anchors_in_caption

Returns:

  • (Array<Nokogiri::XML::NodeSet, nil>)


46
# File 'lib/pixiv/illust.rb', line 46

lazy_attr_reader(:anchors_in_caption) { doc.search('.work-info .caption a') }

#captionString (readonly)

Lazily returns caption

Returns:

  • (String)


43
# File 'lib/pixiv/illust.rb', line 43

lazy_attr_reader(:caption) { at!('.work-info .caption').inner_text }

#illust_idInteger (readonly) Also known as: id

Lazily returns illust_id

Returns:

  • (Integer)


26
# File 'lib/pixiv/illust.rb', line 26

lazy_attr_reader(:illust_id) { at!('#rpc_i_id')['title'].to_i }

#medium_image_urlString (readonly)

Returns:

  • (String)


15
# File 'lib/pixiv/illust.rb', line 15

lazy_attr_reader(:medium_image_url) { image_url_components.join('_m') }

#member_idInteger (readonly)

Lazily returns member_id

Returns:

  • (Integer)


28
# File 'lib/pixiv/illust.rb', line 28

lazy_attr_reader(:member_id) { at!('#rpc_u_id')['title'].to_i }

#member_nameString (readonly)

Lazily returns member_name

Returns:

  • (String)


30
31
32
# File 'lib/pixiv/illust.rb', line 30

lazy_attr_reader(:member_name) {
  at!('title').inner_text.match(%r!^「#{Regexp.escape(title)}」/「(.+)」の(?:イラスト|漫画) \[pixiv\]$!).to_a[1]
}

#num_pagesInteger (readonly)

Lazily returns num_pages

Returns:

  • (Integer)


36
37
38
39
# File 'lib/pixiv/illust.rb', line 36

lazy_attr_reader(:num_pages) {
  n = doc.at('//ul[@class="meta"]/li[2]')
  n && n.inner_text.match(/(\d+)P$/).to_a[1].to_i
}

#original_image_refererString (readonly) Also known as: original_image_referrer

Lazily returns original_image_referer

Returns:

  • (String)


24
# File 'lib/pixiv/illust.rb', line 24

lazy_attr_reader(:original_image_referer) { ROOT_URL + '/' + at!('//div[@class="works_display"]/a')['href'] }

#original_image_urlString (readonly)

Returns:

  • (String)


17
# File 'lib/pixiv/illust.rb', line 17

lazy_attr_reader(:original_image_url) { illust? && image_url_components.join('') }

#original_image_urlsArray<String> (readonly)

Lazily returns original_image_urls

Returns:

  • (Array<String>)


19
20
21
22
# File 'lib/pixiv/illust.rb', line 19

lazy_attr_reader(:original_image_urls) {
  illust? ? [original_image_url]
          : (0...num_pages).map {|n| image_url_components.join("_p#{n}") }
}

#rated_countInteger (readonly)

Lazily returns rated_count

Returns:

  • (Integer)


50
# File 'lib/pixiv/illust.rb', line 50

lazy_attr_reader(:rated_count) { at!('.rated-count').inner_text.to_i }

#scoreInteger (readonly)

Lazily returns score

Returns:

  • (Integer)


52
# File 'lib/pixiv/illust.rb', line 52

lazy_attr_reader(:score) { at!('.score-count').inner_text.to_i }

#small_image_urlString (readonly)

Lazily returns small_image_url

Returns:

  • (String)


13
# File 'lib/pixiv/illust.rb', line 13

lazy_attr_reader(:small_image_url) { at!('meta[property="og:image"]')['content'] }

#tag_namesArray<String> (readonly)

Lazily returns tag_names

Returns:

  • (Array<String>)


41
# File 'lib/pixiv/illust.rb', line 41

lazy_attr_reader(:tag_names) { search!('ul.tags a.text').map {|n| n.inner_text } }

#titleString (readonly)

Lazily returns title

Returns:

  • (String)


34
# File 'lib/pixiv/illust.rb', line 34

lazy_attr_reader(:title) { at!('.work-info h1.title').inner_text }

#views_countInteger (readonly)

Lazily returns views_count

Returns:

  • (Integer)


48
# File 'lib/pixiv/illust.rb', line 48

lazy_attr_reader(:views_count) { at!('.view-count').inner_text.to_i }

Class Method Details

.url(illust_id) ⇒ String

Returns the URL for given illust_id

Parameters:

  • illust_id (Integer)

Returns:

  • (String)


8
9
10
# File 'lib/pixiv/illust.rb', line 8

def self.url(illust_id)
  "#{ROOT_URL}/member_illust.php?mode=medium&illust_id=#{illust_id}"
end

Instance Method Details

#illust?Boolean

Returns:

  • (Boolean)


60
# File 'lib/pixiv/illust.rb', line 60

def illust?; !manga? end

#manga?Boolean

Returns:

  • (Boolean)


62
# File 'lib/pixiv/illust.rb', line 62

def manga?; !!num_pages end

#urlString

Returns:

  • (String)


58
# File 'lib/pixiv/illust.rb', line 58

def url; self.class.url(illust_id) end