class FFXIVScraper::Lodestone::WorldStatus

Constants

INTERVAL
Status

Public Class Methods

new() click to toggle source
# File lib/ffxiv_scraper/lodestone/world_status.rb, line 11
def initialize
  set_locale
  @needs_update = true
  @update_at = Time.now
  @statuses = []
end

Public Instance Methods

get_dc_statuses(dc_name) click to toggle source
# File lib/ffxiv_scraper/lodestone/world_status.rb, line 52
def get_dc_statuses(dc_name)
  get_statuses
  @statuses.select { |a| a.dc == dc_name.downcase }
end
get_status(world_name) click to toggle source
# File lib/ffxiv_scraper/lodestone/world_status.rb, line 47
def get_status(world_name)
  get_statuses
  @statuses.find { |a| a.world == world_name.downcase }
end
get_statuses() click to toggle source
# File lib/ffxiv_scraper/lodestone/world_status.rb, line 23
def get_statuses
  if (Time.now - @update_at) > INTERVAL
    @needs_update = true
  end

  if @needs_update
    @statuses = []
    doc = open_html(get_lodestone_url << "/worldstatus/")
    dc_name = ""
    doc.xpath('//h2[@class="heading--md parts__space--reset"]|//div[@class="item-list__worldstatus"]').each do |content|
      world = ""
      status = ""
      if content.name == "h2"
        dc_name = content.text.downcase
      else
        @statuses << Status.new(dc_name, content.xpath("./h3").text.downcase, content.xpath("./p").text.strip.downcase)
      end
    end
    @update_at = Time.now
    @needs_update = false
  end
  return @statuses
end
set_locale(lang = :ja) click to toggle source
# File lib/ffxiv_scraper/lodestone/world_status.rb, line 18
def set_locale(lang = :ja)
  @lang = lang
  @needs_update = true
end