Portiere "Stille"
This commit is contained in:
parent
baff2f35f2
commit
39e2333ecf
76
miku/plugins/stille.lua
Normal file
76
miku/plugins/stille.lua
Normal file
@ -0,0 +1,76 @@
|
||||
local stille = {}
|
||||
|
||||
stille.triggers = {
|
||||
"^/(delstille) (.+)$",
|
||||
"^/(addstille) (.+)$",
|
||||
"^*?[Ss][Tt][IiUu][Ll][Ll][Ee].?*?$",
|
||||
"^/(liststille)$"
|
||||
}
|
||||
|
||||
local stille_hash = 'telegram:stille'
|
||||
|
||||
function stille:save_stille(text)
|
||||
local stille = text:sub(11)
|
||||
print('Saving stille to redis set '..stille_hash)
|
||||
redis:sadd(stille_hash, stille)
|
||||
return '<b>Gespeichert:</b> <i>'..stille..'</i>'
|
||||
end
|
||||
|
||||
function stille:delete_stille(text)
|
||||
local stille = text:sub(11)
|
||||
print('Deleting stille from redis set '..stille_hash)
|
||||
if redis:sismember(stille_hash, stille) == true then
|
||||
redis:srem(stille_hash, stille)
|
||||
return 'Zitat erfolgreich gelöscht!'
|
||||
else
|
||||
return 'Dieses Zitat existiert nicht.'
|
||||
end
|
||||
end
|
||||
|
||||
function stille:get_stille()
|
||||
print('Getting stille from redis set '..stille_hash)
|
||||
local stille_table = redis:smembers(stille_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
|
||||
|
||||
function stille:list_stilles()
|
||||
print('Getting stille from redis set '..stille_hash)
|
||||
local stille_table = redis:smembers(stille_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
|
||||
|
||||
function stille:action(msg, config, matches)
|
||||
if msg.text:match('^*?[Ss][Tt][IiUu][Ll][Ll][Ee].?*?$') then
|
||||
utilities.send_message(msg.chat.id, stille:get_stille(), true)
|
||||
return
|
||||
end
|
||||
|
||||
if not is_sudo(msg, config) then
|
||||
return -- Silent Ignore
|
||||
end
|
||||
|
||||
if matches[1] == "addstille" and matches[2] then
|
||||
utilities.send_reply(msg, stille:save_stille(msg.text), 'HTML')
|
||||
return
|
||||
elseif matches[1] == "delstille" and matches[2] then
|
||||
utilities.send_reply(msg, stille:delete_stille(msg.text), 'HTML')
|
||||
return
|
||||
elseif matches[1] == "liststille" then
|
||||
utilities.send_reply(msg, stille:list_stilles())
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
return stille
|
Reference in New Issue
Block a user