new plugin quotes

This commit is contained in:
Akamaru 2015-04-28 17:46:31 +02:00
parent 737be02e0d
commit 33a4607a3a

66
plugins/quotes.lua Normal file
View File

@ -0,0 +1,66 @@
local quotes_file = './data/quotes.lua'
local quotes_table
function read_quotes_file()
local f = io.open(quotes_file, "r+")
if f == nil then
print ('Erstelle neue Zitat Datei '..quotes_file)
serialize_to_file({}, quotes_file)
else
print ('Zitate geladen: '..quotes_file)
f:close()
end
return loadfile (quotes_file)()
end
function save_quote(msg)
local to_id = tostring(msg.to.id)
if msg.text:sub(11):isempty() then
return "Verwendung: /addquote [Text]"
end
if quotes_table == nil then
quotes_table = {}
end
if quotes_table[to_id] == nil then
print ('New quote key to_id: '..to_id)
quotes_table[to_id] = {}
end
local quotes = quotes_table[to_id]
quotes[#quotes+1] = msg.text:sub(11)
serialize_to_file(quotes_table, quotes_file)
return "Neues Zitat hinzugefügt!"
end
function get_quote(msg)
local to_id = tostring(msg.to.id)
local quotes_phrases
quotes_table = read_quotes_file()
quotes_phrases = quotes_table[to_id]
return quotes_phrases[math.random(1,#quotes_phrases)]
end
function run(msg, matches)
if string.match(msg.text, "/quote$") then
return get_quote(msg)
elseif string.match(msg.text, "/addquote (.+)$") then
quotes_table = read_quotes_file()
return save_quote(msg)
end
end
return {
description = "Speichert Zitate",
usage = {"/addquote [Text]","/quote",},
patterns = {"^/addquote (.+)$","^/quote$",},
run = run
}