Sha256: 0a1bbc7eca276f889a0de63a03943d521cd319608350a543382b4c97b3cd7adf
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
require "eve/base" class Eve::SkillQueue < Eve::Base include Blinkenstein::Logging attr_reader :expire_time def initialize @expire_time = Time.now - 1 end def hours_left refresh return ((end_time - current_time) * 24).to_i if end_time if empty? info "Skill Queue is empty..." return 0 end if paused? info "Skill Queue is paused..." return 0 end if blocked? info "Couldn't fetch updates: API is blocked." return -1 end rescue => e error "Couldn't fetch updates: #{e}" -1 end def paused? return false if blocked? last_skill.fetch("endTime", false) == "" end def blocked? @response.fetch("eveapi", {}).fetch("error", false) end def empty? return false if blocked? last_skill.empty? end def last_skill @last_skill ||= Array[@response.fetch("eveapi", {}).fetch("result", {}).fetch("rowset", {}).fetch("row", {})].flatten.last end def current_time parse_date(@response.fetch("eveapi", {}).fetch("currentTime", {})) end def cached_until parse_date(@response.fetch("eveapi", {}).fetch("cachedUntil", {})) end def end_time parse_date(last_skill.fetch("endTime", "")) end def update_cache if current_time && cached_until @expire_time = Time.now + ((cached_until - current_time) * 24 * 60 * 60).to_i else @expire_time = Time.now + 60 end end def refresh return if @response && Time.now < @expire_time info "Updating Skillqueue from Eve-API" @response = self.class.get('/char/SkillQueue.xml.aspx', query: query) update_cache end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
blinkenstein-0.2.3 | lib/eve/skill_queue.rb |