53 lines
1.4 KiB
Lua
53 lines
1.4 KiB
Lua
|
|
local phrase = (jarvis.context.phrase or ""):lower()
|
|||
|
|
local query = jarvis.text.strip_trigger(phrase, {
|
|||
|
|
"что ты помнишь о",
|
|||
|
|
"что ты помнишь про",
|
|||
|
|
"что ты знаешь обо мне",
|
|||
|
|
"что помнишь про",
|
|||
|
|
"вспомни",
|
|||
|
|
"what do you remember about",
|
|||
|
|
"recall",
|
|||
|
|
"що ти пам'ятаєш про",
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
query = query:gsub("^[%s,:%.]+", ""):gsub("%s+$", "")
|
|||
|
|
|
|||
|
|
if query == "" then
|
|||
|
|
-- show top-3 most recent
|
|||
|
|
local recs = jarvis.memory.all()
|
|||
|
|
if #recs == 0 then
|
|||
|
|
jarvis.speak("Ничего пока не помню.")
|
|||
|
|
jarvis.audio.play_ok()
|
|||
|
|
return { chain = false }
|
|||
|
|
end
|
|||
|
|
local line = "Я помню: "
|
|||
|
|
for i = 1, math.min(3, #recs) do
|
|||
|
|
line = line .. recs[i].key .. " — " .. recs[i].value .. ". "
|
|||
|
|
end
|
|||
|
|
jarvis.speak(line)
|
|||
|
|
jarvis.audio.play_ok()
|
|||
|
|
return { chain = false }
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- substring search
|
|||
|
|
local hits = jarvis.memory.search(query, 3)
|
|||
|
|
if #hits == 0 then
|
|||
|
|
jarvis.speak("Ничего не нашёл про " .. query .. ".")
|
|||
|
|
jarvis.audio.play_not_found()
|
|||
|
|
return { chain = false }
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
local line = ""
|
|||
|
|
if #hits == 1 then
|
|||
|
|
line = hits[1].value
|
|||
|
|
else
|
|||
|
|
for i, h in ipairs(hits) do
|
|||
|
|
line = line .. h.key .. ": " .. h.value
|
|||
|
|
if i < #hits then line = line .. ". " end
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
jarvis.speak(line)
|
|||
|
|
jarvis.audio.play_ok()
|
|||
|
|
return { chain = false }
|