diff --git a/bot/bot.lua b/bot/bot.lua index 72ac869..032c486 100644 --- a/bot/bot.lua +++ b/bot/bot.lua @@ -30,20 +30,8 @@ if msg_valid(msg) == false then return end - -- Check if command starts with ! eg !echo - if msg.text:sub(0,1) == '!' then - do_action(msg) - else - if is_image_url(msg.text) then - send_image_from_url (msg) - elseif get_youtube_code(msg.text) then - send_youtube_thumbnail(msg) - else - if is_file_url(msg.text) then - send_file_from_url(msg) - end - end - end + + do_action(msg) mark_read(get_receiver(msg), ok_cb, false) -- write_log_file(msg) @@ -53,71 +41,24 @@ end function msg_valid(msg) - if msg.from.id == our_id then - return true - end - if msg.out then - return false - end - if msg.date < now then - return false - end - if msg.text == nil then - return false - end - if msg.unread == 0 then - return false - end - end - - function send_file_from_url (msg) - last = string.get_last_word(msg.text) - file = download_to_file(last) - send_document(get_receiver(msg), file, ok_cb, false) - end - - function send_image_from_url (msg) - last = string.get_last_word(msg.text) - file = download_to_file(last) - print("I will send the image " .. file) - send_photo(get_receiver(msg), file, ok_cb, false) - end - - function is_image_url(text) - last = string.get_last_word(text) - extension = string.get_extension_from_filename(last) -- TODO: Change it please - if extension == 'jpg' or extension == 'png' or extension == 'jpeg' then + if msg.text == nil then + return false + end + if msg.from.id == our_id then return true end - return false - end - - function get_youtube_code( text ) - local yt_normal = string.match(text, "youtube.com/watch%?v=([A-Za-z0-9-]+)") - if yt_normal then - return yt_normal + if msg.out then + return false end - yt_short = string.match(text, "youtu.be/([A-Za-z0-9-]+)") - if yt_short then - return yt_short + if msg.date < now then + return false end - return false - end - - function send_youtube_thumbnail(msg) - yt_code = get_youtube_code(msg.text) - yt_thumbnail = "http://img.youtube.com/vi/".. yt_code .."/hqdefault.jpg" - file = download_to_file(yt_thumbnail) - send_photo(get_receiver(msg), file, ok_cb, false) - end - - function is_file_url(text) - last = string.get_last_word(text) - extension = string.get_extension_from_filename(last) - if extension == 'gif' then - return true + if msg.text == nil then + return false + end + if msg.unread == 0 then + return false end - return false end -- Where magic happens diff --git a/plugins/gifs.lua b/plugins/gifs.lua new file mode 100644 index 0000000..1a12a9a --- /dev/null +++ b/plugins/gifs.lua @@ -0,0 +1,18 @@ +function send_file_from_url (msg, url) + last = string.get_last_word(ul) + file = download_to_file(last) + send_document(get_receiver(msg), file, ok_cb, false) +end + +function run(msg, matches) + send_file_from_url(msg, matches[1]) +end + +return { + description = "from gif URL downloads it and sends to origin", + usage = "", + patterns = { + "(https?://[%w-_%.%?%.:/%+=&]+.gif)$" + }, + run = run +} \ No newline at end of file diff --git a/plugins/images.lua b/plugins/images.lua new file mode 100644 index 0000000..115b30d --- /dev/null +++ b/plugins/images.lua @@ -0,0 +1,22 @@ + +function send_image_from_url (msg) + last = string.get_last_word(msg.text) + file = download_to_file(last) + print("I will send the image " .. file) + send_photo(get_receiver(msg), file, ok_cb, false) +end + +function run(msg, matches) + send_image_from_url(msg) +end + +return { + description = "from image URL downloads it and sends to origin", + usage = "", + patterns = { + "(https?://[%w-_%.%?%.:/%+=&]+.png)$", + "(https?://[%w-_%.%?%.:/%+=&]+.jpg)$", + "(https?://[%w-_%.%?%.:/%+=&]+.jpeg)$", + }, + run = run +} \ No newline at end of file diff --git a/plugins/youtube.lua b/plugins/youtube.lua new file mode 100644 index 0000000..0baa6e3 --- /dev/null +++ b/plugins/youtube.lua @@ -0,0 +1,20 @@ + +function send_youtube_thumbnail(msg, yt_code) + yt_thumbnail = "http://img.youtube.com/vi/".. yt_code .."/hqdefault.jpg" + file = download_to_file(yt_thumbnail) + send_photo(get_receiver(msg), file, ok_cb, false) +end + +function run(msg, matches) + send_youtube_thumbnail(msg, matches[1]) +end + +return { + description = "sends YouTube image", + usage = "", + patterns = { + "youtu.be/([A-Za-z0-9-]+)", + "youtube.com/watch%?v=([A-Za-z0-9-]+)", + }, + run = run +} \ No newline at end of file