$debug = false unless $debug
# print +message+ if debugging is enabled
def debug(message=nil)
- print "DEBUG: #{message}\n" if($debug && message)
+ stamp = Time.now.strftime("%Y/%m/%d %H:%M:%S")
+ print "D: [#{stamp}] #{message}\n" if($debug && message)
#yield
end
exit 2
end
- #botclass = "#{Etc.getpwnam(Etc.getlogin).dir}/.rbot" unless botclass
- botclass = "#{ENV['HOME']}/.rbot" unless botclass
+ botclass = "#{Etc.getpwuid(Process::Sys.geteuid)[:dir]}/.rbot" unless botclass
+ #botclass = "#{ENV['HOME']}/.rbot" unless botclass
@botclass = botclass.gsub(/\/$/, "")
unless FileTest.directory? botclass
}
@client[:unknown] = proc {|data|
#debug "UNKNOWN: #{data[:serverstring]}"
- log data[:serverstring], ":unknown"
+ log data[:serverstring], ".unknown"
}
end
def mainloop
while true
begin
- connect
- @timer.start
+ connect
+ @timer.start
while true
if @socket.select
def log(message, where="server")
message.chomp!
stamp = Time.now.strftime("%Y/%m/%d %H:%M:%S")
+ where.gsub!(/[:!?$*()\/\\<>|"']/, "_")
unless(@logs.has_key?(where))
@logs[where] = File.new("#{@botclass}/logs/#{where}", "a")
@logs[where].sync = true
# call the save method for bot's config, keywords, auth and all plugins
def save
- @registry.flush
@config.save
@keywords.save
@auth.save
debug "no PONG from server for #{diff} seconds, reconnecting"
begin
@socket.shutdown
+ # TODO
+ # raise an exception to get back to the mainloop
rescue
debug "couldn't shutdown connection (already shutdown?)"
end