38 lines
1.1 KiB
Lua
38 lines
1.1 KiB
Lua
![]() |
-- This plugin goes through every message with a document and if the document is an image,
|
||
|
-- it downloads the file and resends it as image
|
||
|
|
||
|
local post_photo = {}
|
||
|
|
||
|
post_photo.triggers = {
|
||
|
'/nil'
|
||
|
}
|
||
|
|
||
|
function post_photo:pre_process(msg, self, config)
|
||
|
if not msg.document then return msg end -- Ignore
|
||
|
local mime_type = msg.document.mime_type
|
||
|
if mime_type ~= 'image/jpeg' and mime_type ~= 'image/png' and mime_type ~= 'image/bmp' then return msg end
|
||
|
|
||
|
local file_id = msg.document.file_id
|
||
|
local file_size = msg.document.file_size
|
||
|
if file_size > 19922944 then
|
||
|
print('File is over 20 MB - can\'t download :(')
|
||
|
return
|
||
|
end
|
||
|
|
||
|
-- Saving file to the Telegram Cloud
|
||
|
local request = bindings.request(self, 'getFile', {
|
||
|
file_id = file_id
|
||
|
} )
|
||
|
|
||
|
local download_url = 'https://api.telegram.org/file/bot'..config.bot_api_key..'/'..request.result.file_path
|
||
|
local file = download_to_file(download_url, msg.file_name)
|
||
|
utilities.send_photo(self, msg.chat.id, file, msg.caption, msg.message_id)
|
||
|
|
||
|
return msg
|
||
|
end
|
||
|
|
||
|
function post_photo:action(msg)
|
||
|
end
|
||
|
|
||
|
return post_photo
|