35 lines
1 KiB
Lua
35 lines
1 KiB
Lua
|
|
-- "Добавь rss https://example.com/feed" or with named alias
|
|||
|
|
local phrase = (jarvis.context.phrase or "")
|
|||
|
|
local body = jarvis.text.strip_trigger(phrase:lower(), {
|
|||
|
|
"добавь rss",
|
|||
|
|
"подпишись на",
|
|||
|
|
"запомни ленту",
|
|||
|
|
"добавь ленту",
|
|||
|
|
"add rss",
|
|||
|
|
"subscribe to",
|
|||
|
|
})
|
|||
|
|
body = body:gsub("^[%s,:%.]+", ""):gsub("%s+$", "")
|
|||
|
|
|
|||
|
|
-- Preserve original casing (URLs are case-sensitive after host).
|
|||
|
|
local raw = phrase
|
|||
|
|
local lower_idx = raw:lower():find(body, 1, true)
|
|||
|
|
if lower_idx then
|
|||
|
|
body = raw:sub(lower_idx, lower_idx + #body - 1)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
if body == "" then
|
|||
|
|
return jarvis.cmd.error("Какую ленту добавить?")
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
local url = body:match("(https?://%S+)")
|
|||
|
|
if not url then
|
|||
|
|
return jarvis.cmd.error("Не нашёл URL.")
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- Use the URL itself as the key (or extract domain as nicer alias).
|
|||
|
|
local domain = url:match("https?://([^/]+)") or "rss"
|
|||
|
|
local key = "rss." .. domain
|
|||
|
|
|
|||
|
|
jarvis.memory.remember(key, url)
|
|||
|
|
return jarvis.cmd.ok("Лента " .. domain .. " добавлена.")
|