Class: Pixiv::BookmarkList

Inherits:
Page
  • Object
show all
Includes:
PageCollection
Defined in:
lib/pixiv/bookmark_list.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from PageCollection

#page_hash

Methods inherited from Page

#doc, #force, #initialize, lazy_new

Constructor Details

This class inherits a constructor from Pixiv::Page

Instance Attribute Details

#illust_hashesArray<Hash{Symbol=>Object}> (readonly) Also known as: page_hashes

Lazily returns illust_hashes

Returns:

  • (Array<Hash{Symbol=>Object}>)


22
23
24
# File 'lib/pixiv/bookmark_list.rb', line 22

lazy_attr_reader(:illust_hashes) {
  search!('li[id^="li_"]').map {|node| illust_hash_from_bookmark_item(node) }.compact
}

#illust_idsArray<Integer> (readonly)

Lazily returns illust_ids

Returns:

  • (Array<Integer>)


20
# File 'lib/pixiv/bookmark_list.rb', line 20

lazy_attr_reader(:illust_ids) { search!('li[id^="li_"] a[href^="member_illust.php?mode=medium"]').map {|n| n.attr('href').match(/illust_id=(\d+)$/).to_a[1].to_i } }

#last?Boolean (readonly)

Lazily returns last?

Returns:

  • (Boolean)


16
# File 'lib/pixiv/bookmark_list.rb', line 16

lazy_attr_reader(:last?) { at!('li.pages-current').next_element.inner_text.to_i == 0 }

#member_idInteger (readonly)

Lazily returns member_id

Returns:

  • (Integer)


18
# File 'lib/pixiv/bookmark_list.rb', line 18

lazy_attr_reader(:member_id) { doc.body.match(/pixiv\.context\.userId = '(\d+)'/).to_a[1].to_i }

#page_numInteger (readonly)

Lazily returns page_num

Returns:

  • (Integer)


14
# File 'lib/pixiv/bookmark_list.rb', line 14

lazy_attr_reader(:page_num) { at!('li.pages-current').inner_text.to_i }

Class Method Details

.url(member_id, page_num = 1) ⇒ String

Returns the URL for given member_id and page_num

Parameters:

  • member_id (Integer)
  • page_num (Integer) (defaults to: 1)

Returns:

  • (String)


9
10
11
# File 'lib/pixiv/bookmark_list.rb', line 9

def self.url(member_id, page_num = 1)
  "#{ROOT_URL}/bookmark.php?id=#{member_id}&rest=show&p=#{page_num}"
end

Instance Method Details

#first?Boolean

Returns:

  • (Boolean)


31
# File 'lib/pixiv/bookmark_list.rb', line 31

def first?; page_num == 1 end

#next_urlString

Returns:

  • (String)


33
# File 'lib/pixiv/bookmark_list.rb', line 33

def next_url; last? ? nil : self.class.url(member_id, page_num + 1) end

#page_classClass<Pixiv::Page>

Returns:



37
# File 'lib/pixiv/bookmark_list.rb', line 37

def page_class; Illust end

#page_urlsArray<String>

Returns:

  • (Array<String>)


39
# File 'lib/pixiv/bookmark_list.rb', line 39

def page_urls; illust_ids.map {|illust_id| Illust.url(illust_id) } end

#prev_urlString

Returns:

  • (String)


35
# File 'lib/pixiv/bookmark_list.rb', line 35

def prev_url; first? ? nil : self.class.url(member_id, page_num - 1) end

#urlString

Returns:

  • (String)


29
# File 'lib/pixiv/bookmark_list.rb', line 29

def url; self.class.url(member_id, page_num) end