yukichan/hooks/ai.lua

46 lines
1.1 KiB
Lua

nick,chan,message = ...
local serialization = require "serialization"
lnick = "yukichan"
print(lnick,nick,chan,message)
if string.find(message,lnick) ~= nil and nick ~= "Shocky" then
print("Message addressed to AI!")
local f = io.open("./ai.lua","rb")
if f ~= nil then
local content = f:read("*a")
f:close()
print(content)
print("Loaded AI file.")
print(type(serialization.unserialize))
w,aitab = pcall(serialization.unserialize,content)
print(w,aitab)
print("Decoded AI file.")
local selection = 0
local hscore = 0
print("Starting interpretation.")
for k,v in ipairs(aitab) do
local count = 0
for l,w in ipairs(v[2]) do
if message:find(w) then count = count + 1 print ("yes") end
end
if count > hscore then
selection = k
hscore = count
print(selection,hscore)
end
end
if hscore == 0 then
print("No high score, selecting a random response.")
selection = math.random(1,#aitab)
end
print(selection)
selstring = aitab[selection][1][1]
if type(selstring) == "table" then
for k,v in pairs(selstring) do
print(k.."="..v)
end
end
print(selstring)
sendchan(chan,selstring)
end
end