class Nicovideo::Page
Constants
- BASE_TITLE1
- BASE_TITLE2
- BASE_URL
- NV_DEBUG_LEVEL
Public Class Methods
new(agent)
click to toggle source
# File lib/nicovideo/page.rb, line 12 def initialize agent @agent = agent @page = nil @title = nil @not_found = false end
Public Instance Methods
exists?()
click to toggle source
# File lib/nicovideo/page.rb, line 21 def exists?() begin @page = @page || get_page return true rescue return false end end
html()
click to toggle source
# File lib/nicovideo/page.rb, line 30 def html() page = @page || get_page return nil unless page page.parser.to_html end
title=(title)
click to toggle source
# File lib/nicovideo/page.rb, line 36 def title=(title) @title = title end
Protected Instance Methods
get_page(url, force=false)
click to toggle source
# File lib/nicovideo/page.rb, line 60 def get_page url, force=false return @page if (@page && !force) raise NotFound if @not_found puts_info 'getting html page : url = ' + url.to_s begin page = @agent.get(url) puts_debug page.header puts_debug page.body parse(page) @page = page rescue WWW::Mechanize::ResponseCodeError => e rc = e.response_code puts_info rc if rc == "404" || rc == "410" @not_found = true raise NotFound elsif rc == "403" raise Forbidden else raise e end end @page end
parse(page)
click to toggle source
# File lib/nicovideo/page.rb, line 56 def parse page # to be extended end
puts_debug(str ;)
click to toggle source
# File lib/nicovideo/page.rb, line 89 def puts_debug str ; puts str if (NV_DEBUG_LEVEL >= 3) ; end
puts_error(str ;)
click to toggle source
# File lib/nicovideo/page.rb, line 87 def puts_error str ; puts str if (NV_DEBUG_LEVEL >= 1) ; end
puts_info(str ;)
click to toggle source
# File lib/nicovideo/page.rb, line 88 def puts_info str ; puts str if (NV_DEBUG_LEVEL >= 2) ; end
register_getter(params)
click to toggle source
# File lib/nicovideo/page.rb, line 41 def register_getter(params) params.each {|p| p_noq = p.sub(/\?$/,'') eval <<-E @#{p_noq} = nil def #{p} if @#{p_noq}.nil? @page ||= get_page(@url) end @#{p_noq} end E } end