This repository has been archived on 2021-04-24. You can view files and clone it, but cannot push or open issues or pull requests.
Mikubot/plugins/saved_text.lua

86 lines
1.9 KiB
Lua

do
local function save_text(msg)
if msg.text:sub(10):isempty() then
return "Benutzung: #addtext [Text]"
end
local savedtext = msg.text:sub(10)
local hash = 'telegram:savedtext'
print('Saving text to redis set '..hash)
redis:sadd(hash, savedtext)
return 'Gespeichert: "'..savedtext..'"'
end
local function delete_text(msg)
if msg.text:sub(10):isempty() then
return "Benutzung: #delquote [Text]"
end
local savedtext = msg.text:sub(10)
local hash = 'telegram:savedtext'
print('Deleting text from redis set '..hash)
if redis:sismember(hash, savedtext) == true then
redis:srem(hash, savedtext)
return 'Text erfolgreich gelöscht!'
else
return 'Dieser Text existiert nicht.'
end
end
local function get_text(msg)
local to_id = tostring(msg.to.id)
local hash = 'telegram:savedtext'
if hash then
print('Getting text from redis set '..hash)
local text_table = redis:smembers(hash)
if not text_table[1] then
return 'Es wurden noch kein Text gespeichert.\nSpeichere doch einen mit /addtext [Text]'
else
return text_table[math.random(1,#text_table)]
end
end
end
local function list_text(msg)
local hash = 'telegram:savedtext'
if hash then
print('Getting text from redis set '..hash)
local text_table = redis:smembers(hash)
local text = ""
for num,savedtext in pairs(text_table) do
text = text..num..") "..savedtext..'\n'
end
if not text or text == "" then
return 'Es wurden noch kein Text gespeichert.\nSpeichere doch einen mit /addtext [Text]'
else
return text
end
end
end
local function run(msg, matches)
if matches[1] == "addtext" then
return save_text(msg)
elseif matches[1] == "deltext" then
return delete_text(msg)
elseif matches[1] == "listtext" then
return list_text(msg)
end
end
return {
description = "",
usage = {},
patterns = {
"^#(deltext) (.+)$",
"^#(addtext) (.+)$",
"^#(listtext)$"
},
run = run,
privileged = true
}
end