From b4f1f0636565d2907ddd282bee15e76360fae6ae Mon Sep 17 00:00:00 2001 From: Akamaru Date: Fri, 20 Nov 2015 23:23:52 +0100 Subject: [PATCH] Das stille Plugin nutzt nun Redis! --- plugins/stille.lua | 104 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 93 insertions(+), 11 deletions(-) diff --git a/plugins/stille.lua b/plugins/stille.lua index 4970354..0f5c171 100644 --- a/plugins/stille.lua +++ b/plugins/stille.lua @@ -1,21 +1,103 @@ do -function run(msg, matches) - local answers = {'Ja, es ist sehr ruhig hier','Wenn es dir zu still ist, kannst du gerne mit mir reden', - '*SCHREI*','Dann mach doch etwas dagegen!','Möpse?','Vermutlich schlafen alle', - 'Stört dich die Stille?','Nein, es ist nicht still','Nyu?','Besser als Spam','Stille ist schön', - 'Mein Name ist Mikubot','Spiel doch etwas Curvefever.com 😉', - 'Stille sagt manchmal mehr als tausend Worte','Spiel doch etwas Agrar.io 😉', - 'Stille und Nacht sind untrennbar verwoben. Die Nacht ist die Stille unter den Sternen.', - 'Hier könnte Ihre Werbung stehen!','Folge mir auf Twitter! Twitter.com/Mikubot_'} - return answers[math.random(#answers)] +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","*Stille*"}, - patterns = {"^[Ss][Tt][IiUu][Ll][Ll][Ee].?$","^(*)[Ss][Tt][Ii][Ll][Ll][Ee](*)$"}, + 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] \ No newline at end of file