class Steam

Public Class Methods

friends_list(me) click to toggle source
# File lib/vapor/steam.rb, line 98
def self.friends_list(me)
        unless me.length > 0
                puts "You have not set your Steam ID yet. Run \"vapor user mynameis <username or numeric ID>\""
                return
        end
        id = SteamId.new(me)
        puts "\n"
        id.friends.each do |f|
                friend = SteamId.new(f.steam_id64)
                uid = (friend.custom_url) ? friend.custom_url : f.steam_id64
                puts "\033[36m#{friend.nickname}\033[0m [#{uid}]"
                puts "#{friend.state_message.sub('<br/>',': ').gsub(/<\/?[^>]*>/, "")}\n\n"
        end
end
game_name_string(gameid) click to toggle source
# File lib/vapor/steam.rb, line 70
def self.game_name_string(gameid)
        games = {
                440 => "TF2",
                240 => "CS:S",
                730 => "CS:GO",
                320 => "HL2",
                500 => "L4D",
                550 => "L4D2"
        }
        if games.has_key?(gameid)
                return games[gameid]
        else
                return "SRC"
        end
end
ping_server(ip, port) click to toggle source
# File lib/vapor/steam.rb, line 59
def self.ping_server(ip, port)
        begin
                server = SourceServer.new(ip, port)
        rescue
                server = nil
        end
        return server
end
server_info(ip, port) click to toggle source
# File lib/vapor/steam.rb, line 5
def self.server_info(ip, port)

        server = self.ping_server(ip, port)

        if server

                server_info = server.server_info
                game = self.game_name_string(server_info[:game_id])

                puts "----------------------------------------------------"
                puts "\033[36m" + server_info[:server_name] + "\033[0m  [#{game}] "
                puts "\033[32mPlayers:\033[0m #{server_info[:number_of_players]}/#{server_info[:max_players]} \t \033[32mMap:\033[0m #{server_info[:map_name]}"
                puts "----------------------------------------------------"

                players = server.players.sort_by{ |k, v| v.score }.reverse!

                players.each do |name, info|
                        puts "\033[31m#{info.score}\033[0m\t#{name}"
                end

        else

                puts "\nServer #{ip}:#{port} is not responding.\n\n"

        end

end
server_listing(servers) click to toggle source
# File lib/vapor/steam.rb, line 35
def self.server_listing(servers)

        puts "----------------------------------------------------"

        servers.each do |s|

                server = self.ping_server(s['ip'], s['port'])

                if server
                        server_info = server.server_info
                        puts "\033[36m[#{s['handle']}]\033[0m  " + server_info[:server_name].squeeze(' ').strip
                        puts "\033[32mPlayers:\033[0m #{server_info[:number_of_players]}/#{server_info[:max_players]} \t \033[32mMap:\033[0m #{server_info[:map_name]}"
                else
                        puts "\033[36m[#{s['handle']}]\033[0m  server not responding"
                end

                puts "----------------------------------------------------"

        end

end
user_profile(user) click to toggle source
# File lib/vapor/steam.rb, line 88
def self.user_profile(user)
        uid = Integer(user) rescue user
        id = SteamId.new(uid)
        puts "\033[36m#{id.nickname}\033[0m"
        puts "\033[32mStatus:\033[0m  #{id.state_message.sub('<br/>',': ').gsub(/<\/?[^>]*>/, "")}"
        puts id.summary
end