init commit
This commit is contained in:
commit
cb5152a05d
3 changed files with 143 additions and 0 deletions
73
Janitor.rb
Normal file
73
Janitor.rb
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
require 'teamspeak-ruby'
|
||||
|
||||
class Janitor
|
||||
def login()
|
||||
ts = Teamspeak::Client.new('ts3.vereto.net')
|
||||
ts.login('serveradmin', ENV["SrvQry"])
|
||||
ts.command('use', {sid: 1})
|
||||
return ts
|
||||
end
|
||||
|
||||
def roll()
|
||||
return 1 + rand(6)
|
||||
end
|
||||
|
||||
def gsay(msg)
|
||||
ts = login()
|
||||
ts.command('sendtextmessage', {targetmode: 3, target: 1, msg: msg})
|
||||
end
|
||||
|
||||
def listen()
|
||||
ts = login()
|
||||
return ts.command('servernotifyregister', event: 'textserver')[0]['msg']
|
||||
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 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
|
||||
26
core.rb
Normal file
26
core.rb
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
require_relative 'Janitor'
|
||||
require 'optparse'
|
||||
|
||||
options = {}
|
||||
|
||||
jan = Janitor.new
|
||||
OptionParser.new do |parser|
|
||||
parser.banner = "Usage: core.rb [options]"
|
||||
parser.on("-h", "--help", "Show this help message.") do ||
|
||||
puts parser
|
||||
end
|
||||
|
||||
parser.on("-g", "--gsay SAY", "Send a global chat message") do |v|
|
||||
jan.gsay(v)
|
||||
end
|
||||
|
||||
parser.on("-v", "--view", "View channel list") do
|
||||
jan.check_channels()
|
||||
end
|
||||
parser.on("--roll") do
|
||||
puts jan.roll()
|
||||
end
|
||||
parser.on("--stop") do
|
||||
jan.gsay('!stop')
|
||||
end
|
||||
end.parse!
|
||||
44
notification.rb
Normal file
44
notification.rb
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env ruby
|
||||
|
||||
require_relative 'Janitor'
|
||||
|
||||
i = 1
|
||||
jan = Janitor.new
|
||||
while (i > 0)
|
||||
begin
|
||||
cmd = jan.listen()
|
||||
puts cmd
|
||||
if cmd == '!help'
|
||||
msg = "I am Janitor, you can tell me to do things."
|
||||
jan.gsay(msg)
|
||||
msg = "Try !roll to roll a dice"
|
||||
jan.gsay(msg)
|
||||
end
|
||||
if cmd == "!stop"
|
||||
msg = "JAN Will stop listening"
|
||||
jan.gsay(msg)
|
||||
puts "Stopping"
|
||||
i = -1
|
||||
end
|
||||
|
||||
if cmd.include? "!say"
|
||||
cmd.slice! "!say"
|
||||
input_str = cmd
|
||||
puts "[DEBUG] " + input_str
|
||||
jan.gsay(input_str)
|
||||
end
|
||||
|
||||
if cmd == "!cleanup"
|
||||
jan.gsay("Cleaning up..")
|
||||
jan.check_channels()
|
||||
jan.gsay("Channels clean!")
|
||||
end
|
||||
|
||||
if cmd == "!roll"
|
||||
jan.gsay(jan.roll)
|
||||
end
|
||||
|
||||
rescue Exception => e
|
||||
puts "Error: Some kind of time out? " + e.message
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Reference in a new issue