Added the ability to quote users texts by chat.

quotes_set does the job of saving users quotes by using the following
command:

  !addquote text to be quoted

quotes_get retrieve quotes stored by using `!quote` command.
This commit is contained in:
PotHix 2015-02-12 20:50:53 -02:00
parent 88e094913c
commit 94568cf25c
2 changed files with 93 additions and 0 deletions

37
plugins/quotes_get.lua Normal file
View File

@ -0,0 +1,37 @@
do
local quotes_file = './data/quotes.lua'
local quotes_table
function read_quotes_file()
local f = io.open(quotes_file, "r+")
if f == nil then
serialize_to_file({}, quotes_file)
else
f:close()
end
return loadfile (quotes_file)()
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)
return get_quote(msg)
end
return {
description = "retrieves random quotes",
usage = "!quote",
patterns = {
"^!quote$"},
run = run
}
end

56
plugins/quotes_set.lua Normal file
View File

@ -0,0 +1,56 @@
do
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 ('Created a new quotes file on '..quotes_file)
serialize_to_file({}, quotes_file)
else
print ('Quotes loaded: '..quotes_file)
f:close()
end
return loadfile (quotes_file)()
end
function save_quote(msg)
local to_id = tostring(msg.to.id)
local quotes
local phrase
phrase = string.match(msg.text, "!addquote (.+)")
if (phrase == nil) then
return "Usage: !addquote quote"
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
quotes = quotes_table[to_id]
quotes[#quotes+1] = phrase
serialize_to_file(quotes_table, quotes_file)
return "done!"
end
function run(msg, matches)
quotes_table = read_quotes_file()
return save_quote(msg)
end
return {
description = "Save quote",
usage = "!addquote (quote)",
patterns = {"^!addquote (.+)$"},
run = run
}
end