init commit

This commit is contained in:
promostarr 2017-04-16 14:42:59 +01:00
commit cb5152a05d
3 changed files with 143 additions and 0 deletions

73
Janitor.rb Normal file
View 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
View 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
View 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