46 lines
1.1 KiB
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
|