do local function save_quote(msg) if msg.text:sub(11):isempty() then return "Benutzung: /addquote [Zitat]" end local quote = msg.text:sub(11) local hash = get_redis_hash(msg, 'quotes') print('Saving quote to redis set '..hash) redis:sadd(hash, quote) return 'Gespeichert: "'..quote..'"' end local function delete_quote(msg) if msg.text:sub(11):isempty() then return "Benutzung: /delquote [Zitat]" end local quote = msg.text:sub(11) local hash = get_redis_hash(msg, 'quotes') print('Deleting quote from redis set '..hash) if redis:sismember(hash, quote) == true then redis:srem(hash, quote) return 'Zitat erfolgreich gelöscht!' else return 'Dieses Zitat existiert nicht.' end end local function get_quote(msg) local to_id = tostring(msg.to.id) local hash = get_redis_hash(msg, 'quotes') if hash then print('Getting quote from redis set '..hash) local quotes_table = redis:smembers(hash) if not quotes_table[1] then return 'Es wurden noch keine Zitate gespeichert.\nSpeichere doch welche mit /addquote [Zitat]' else return quotes_table[math.random(1,#quotes_table)] end end end local function list_quotes(msg) local hash = get_redis_hash(msg, 'quotes') if hash then print('Getting quotes from redis set '..hash) local quotes_table = redis:smembers(hash) local text = "" for num,quote in pairs(quotes_table) do text = text..num..") "..quote..'\n' end if not text or text == "" then return 'Es wurden noch keine Zitate gespeichert.\nSpeichere doch welche mit /addquote [Zitat]' else return text end end end local function run(msg, matches) if matches[1] == "quote" then return get_quote(msg) elseif matches[1] == "addquote" then return save_quote(msg) elseif matches[1] == "delquote" then if not is_sudo(msg) then return "Du bist kein Superuser. Dieser Vorfall wird gemeldet." else return delete_quote(msg) end elseif matches[1] == "listquotes" then return list_quotes(msg) end end return { description = "Zitate speichern, löschen und abrufen.", usage = { "/addquote [Zitat]: Fügt Zitat hinzu.", "/quote: Gibt zufälliges Zitat aus.", "/delquote [Zitat]: Löscht das Zitat (nur Superuser)", "/listsquotes: Listet alle Zitate auf" }, patterns = { "^/(delquote) (.+)$", "^/(addquote) (.+)$", "^/(quote)$", "^/(listquotes)$" }, run = run } end