diff --git a/plugins/imdb.lua b/plugins/imdb.lua new file mode 100644 index 0000000..5f6c92b --- /dev/null +++ b/plugins/imdb.lua @@ -0,0 +1,33 @@ + +function imdb(movie) + local http = require("socket.http") + http.TIMEOUT = 5 + + movie = movie:gsub(' ', '+') + url = "http://www.imdbapi.com/?t=" .. movie + response, code, headers = http.request(url) + + if code ~= 200 then + return "Error: " .. code + end + + if #response > 0 then + r = json:decode(response) + r['Url'] = "http://imdb.com/title/" .. r.imdbID + t = "" + for k, v in pairs(r) do t = t .. k .. ": " .. v .. ", " end + return t:sub(1, -3) + end + return nil +end + +function run(msg, matches) + return imdb(matches[1]) +end + +return { + description = "Imdb plugin for telegram", + usage = "!imdb [movie]", + patterns = {"^!imdb (.+)"}, + run = run +} diff --git a/plugins/quotes.lua b/plugins/quotes.lua new file mode 100644 index 0000000..93ab554 --- /dev/null +++ b/plugins/quotes.lua @@ -0,0 +1,72 @@ +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) + + if msg.text:sub(11):isempty() 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 + + local quotes = quotes_table[to_id] + quotes[#quotes+1] = msg.text:sub(11) + + serialize_to_file(quotes_table, quotes_file) + + return "done!" +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 = "Save quote", + description = "Quote plugin, you can create and retrieves random quotes", + usage = { + "!addquote [msg]", + "!quote", + }, + patterns = { + "^!addquote (.+)$", + "^!quote$", + }, + run = run +}