Method: Bandshell::PlayerInfo#update

Defined in:
lib/bandshell/player_info.rb

#updateObject

Fetches the latest player settings from Concerto TODO: Store settings in BandshellConfig (and update whenever they have changed) so that configs are immediately available at boot. Returns true on success, false on failure.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/bandshell/player_info.rb', line 37

def update
  data = Bandshell::HardwareApi::get_player_info
  if data.nil?
    puts "update_player_info: Recieved null data from get_player_info!"
  elsif data == :stat_serverr
    puts "update_player_info: Server error while retrieving player info."
  elsif data == :stat_badauth
    puts "update_player_info: Auth error while retrieving player info."
  else
    unless data['screen'].nil? or data['screen']['name'].nil?
      @screen_name = data['screen']['name']
    end
    tz_string = data['time_zone']
    unless tz_string.nil? or tz_string.empty?
      begin
        new_tz = TZInfo::Timezone.get(tz_string)
        @timezone = tz_string
      rescue TZInfo::InvalidTimezoneIdentifier => e
        puts "update_player_info: Invalid timezone received."
      end
    end # TZ identifier present
    new_rules = data['screen_on_off']
    if new_rules.nil? or !new_rules.is_a? Array
      puts "update_player_info: Invalid screen on/off rules received."
    else
      @on_off_rules = new_rules
      @last_update = Time.now
      return true
    end
  end
  return false
end