require 'teamspeak-ruby' class Janitor debug_mode = true def login() ts = Teamspeak::Client.new('ts3.vereto.net') ts.login('serveradmin', ENV["SrvQry"].dup) ts.command('use', {sid: 1}) return ts end def roll() return 1 + rand(6) end def gsay(msg) ts = login() if debug_mode == true ts.command('sendtextmessage', {targetmode: 3, target: 1, msg: msg}) else ts.command('sendtextmessage', {targetmode: 1, target: 13, msg: msg}) end end def listen(global) ts = login() if global == true return ts.command('servernotifyregister', event: 'textserver')[0]['msg'] else move_self('218') return ts.command('servernotifyregister', event: 'textchannel', id: '218' )[0]['msg'] end end def get_clients() ts = login() return ts.command('clientlist') end def get_channels() ts = login() return ts.command('channellist') end def find_client(name) ts = login() return ts.command('clientfind', pattern: name) end def move_client(clid, cid) ts = log() return ts.command('clientmove', clid: clid, cid: cid) end def move_self(cid) return move_client(find_client('serveradmin from'), cid) end def check_channels() ts = login() server_info = ts.command('serverinfo') t = server_info['virtualserver_uptime'] mm, ss = t.divmod(60) #=> [4515, 21] hh, mm = mm.divmod(60) #=> [75, 15] dd, hh = hh.divmod(24) #=> [3, 3] puts "Server has been online for: %d days, %d hours, %d minutes and %d seconds" % [dd, hh, mm, ss] puts "Clients Online: " + server_info['virtualserver_clientsonline'].to_s ts.command('channellist').each do |channel| channel_quality = ts.command('channelinfo', cid: channel['cid'])['channel_codec_quality'] puts "(" << channel['cid'].to_s << ")" << channel['channel_name'] << "| [Codec] " << channel_quality.to_s if channel_quality != 9 puts "Needs set!" ts.command('channeledit', cid: channel['cid'], channel_codec_quality: 9) end ts.command('clientlist').each do |user| if user['cid'] == channel['cid'] server_groups = ts.command('servergroupsbyclientid', cldbid: user['client_database_id']) puts "--------" << user['client_nickname'] << "(" << user['clid'].to_s << ")" << "[" << server_groups[0]["name"].to_s << "]" end end end end end