67 lines
2.0 KiB
Lua
67 lines
2.0 KiB
Lua
local media = {}
|
|
|
|
local utilities = require('otouto.utilities')
|
|
local mimetype = (loadfile "./otouto/mimetype.lua")()
|
|
|
|
media.triggers = {
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(gif))$",
|
|
"^(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(mp4))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(pdf))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(ogg))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(zip))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(tar.gz))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(7z))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(mp3))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(rar))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(wmv))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(doc))$",
|
|
"^(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(avi))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(wav))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(apk))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(webm))$",
|
|
"^(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(ogv))$",
|
|
"(https?://[%w-_%.%?%.:,/%+=&%[%]]+%.(webp))$"
|
|
}
|
|
|
|
function media:action(msg)
|
|
local url = matches[1]
|
|
local ext = matches[2]
|
|
local receiver = msg.chat.id
|
|
|
|
local file = download_to_file(url)
|
|
local mime_type = mimetype.get_content_type_no_sub(ext)
|
|
|
|
if ext == 'gif' then
|
|
print('send gif')
|
|
utilities.send_document(self, receiver, file, nil, msg.message_id)
|
|
return
|
|
|
|
elseif mime_type == 'text' then
|
|
print('send_document')
|
|
utilities.send_document(self, receiver, file, nil, msg.message_id)
|
|
return
|
|
|
|
elseif mime_type == 'image' then
|
|
print('send_photo')
|
|
utilities.send_photo(self, receiver, file, nil, msg.message_id)
|
|
return
|
|
|
|
elseif mime_type == 'audio' then
|
|
print('send_audio')
|
|
utilities.send_audio(self, receiver, file, nil, msg.message_id)
|
|
return
|
|
|
|
elseif mime_type == 'video' then
|
|
print('send_video')
|
|
utilities.send_video(self, receiver, file, nil, msg.message_id)
|
|
return
|
|
|
|
else
|
|
print('send_file')
|
|
utilities.send_document(self, receiver, file, nil, msg.message_id)
|
|
return
|
|
end
|
|
end
|
|
|
|
return media
|