103 lines
2.5 KiB
Lua
103 lines
2.5 KiB
Lua
do
|
|
|
|
local function save_stille(msg)
|
|
if msg.text:sub(11):isempty() then
|
|
return "Benutzung: #addstille [Zitat]"
|
|
end
|
|
|
|
local stille = msg.text:sub(11)
|
|
local hash = 'telegram:stille'
|
|
print('Saving stille to redis set '..hash)
|
|
redis:sadd(hash, stille)
|
|
return 'Gespeichert: "'..stille..'"'
|
|
end
|
|
|
|
local function delete_stille(msg)
|
|
if msg.text:sub(11):isempty() then
|
|
return "Benutzung: #delstille [Zitat]"
|
|
end
|
|
|
|
local stille = msg.text:sub(11)
|
|
local hash = 'telegram:stille'
|
|
print('Deleting stille from redis set '..hash)
|
|
if redis:sismember(hash, stille) == true then
|
|
redis:srem(hash, stille)
|
|
return 'Zitat erfolgreich gelöscht!'
|
|
else
|
|
return 'Dieses Zitat existiert nicht.'
|
|
end
|
|
end
|
|
|
|
local function get_stille(msg)
|
|
local to_id = tostring(msg.to.id)
|
|
local hash = 'telegram:stille'
|
|
|
|
if hash then
|
|
print('Getting stille from redis set '..hash)
|
|
local stille_table = redis:smembers(hash)
|
|
if not stille_table[1] then
|
|
return 'Es wurden noch keine Zitate gespeichert.\nSpeichere doch welche mit /addstille [Zitat]'
|
|
else
|
|
return stille_table[math.random(1,#stille_table)]
|
|
end
|
|
end
|
|
end
|
|
|
|
local function list_stilles(msg)
|
|
local hash = 'telegram:stille'
|
|
|
|
if hash then
|
|
print('Getting stille from redis set '..hash)
|
|
local stille_table = redis:smembers(hash)
|
|
local text = ""
|
|
for num,stille in pairs(stille_table) do
|
|
text = text..num..") "..stille..'\n'
|
|
end
|
|
if not text or text == "" then
|
|
return 'Es wurden noch keine Zitate gespeichert.\nSpeichere doch welche mit /addstille [Zitat]'
|
|
else
|
|
return text
|
|
end
|
|
end
|
|
end
|
|
|
|
local function run(msg, matches)
|
|
if string.match(msg.text, '^*?[Ss][Tt][IiUu][Ll][Ll][Ee].?*?$') then
|
|
return get_stille(msg)
|
|
elseif matches[1] == "addstille" then
|
|
if not is_sudo(msg) then
|
|
return "Du kannst diesen Befehl nicht benutzen!"
|
|
else
|
|
return save_stille(msg)
|
|
end
|
|
elseif matches[1] == "delstille" then
|
|
if not is_sudo(msg) then
|
|
return "Du kannst diesen Befehl nicht benutzen!"
|
|
else
|
|
return delete_stille(msg)
|
|
end
|
|
elseif matches[1] == "liststille" then
|
|
if not is_sudo(msg) then
|
|
return "Du kannst diesen Befehl nicht benutzen!"
|
|
else
|
|
return list_stilles(msg)
|
|
end
|
|
end
|
|
end
|
|
|
|
return {
|
|
description = "Es ist so still hier",
|
|
usage = {
|
|
"stille: Gibt zufälliges Zitat aus."
|
|
},
|
|
patterns = {
|
|
"^#(delstille) (.+)$",
|
|
"^#(addstille) (.+)$",
|
|
"^*?[Ss][Tt][IiUu][Ll][Ll][Ee].?*?$",
|
|
"^#(liststille)$"
|
|
},
|
|
run = run
|
|
}
|
|
|
|
end
|
|
--by Akamaru [https://ponywave.de] |