merge upstream

get_content_type_no_sub
media plugin forces type to upload
This commit is contained in:
Akamaru 2015-04-26 21:19:31 +02:00
parent fe78a49367
commit fa55b0b14a
2 changed files with 70 additions and 34 deletions

View File

@ -3,6 +3,7 @@ do
local mimetype = {}
-- TODO: Add more?
local types = {
["text/html"] = "html",
["text/css"] = "css",
@ -31,6 +32,7 @@ local types = {
["application/pdf"] = "pdf",
["application/postscript"] = "ps",
["application/rtf"] = "rtf",
["application/vnd.android.package-archive"] = "apk",
["application/vnd.ms-excel"] = "xls",
["application/vnd.ms-powerpoint"] = "ppt",
["application/vnd.wap.wmlc"] = "wmlc",
@ -72,10 +74,12 @@ local types = {
["video/x-msvideo"] = "avi"
}
-- Returns the common file extension from a content-type
function mimetype.get_mime_extension(content_type)
return types[content_type]
end
-- Returns the mimetype and subtype
function mimetype.get_content_type(extension)
for k,v in pairs(types) do
if v == extension then
@ -84,5 +88,15 @@ function mimetype.get_content_type(extension)
end
end
-- Returns the mimetype without the subtype
function mimetype.get_content_type_no_sub(extension)
for k,v in pairs(types) do
if v == extension then
-- Before /
return k:match('([%w-]+)/')
end
end
end
return mimetype
end

View File

@ -1,41 +1,63 @@
do
function run(msg, matches)
local function run(msg, matches)
local receiver = get_receiver(msg)
local file = download_to_file(matches[1])
send_document(get_receiver(msg), file, ok_cb, false)
local url = matches[1]
local ext = matches[2]
local file = download_to_file(url)
local cb_extra = {file_path=file}
local mime_type = mimetype.get_content_type_no_sub(ext)
if ext == 'gif' then
print('send_file')
send_document(receiver, file, rmtmp_cb, cb_extra)
elseif mime_type == 'text' then
print('send_document')
send_document(receiver, file, rmtmp_cb, cb_extra)
elseif mime_type == 'image' then
print('send_photo')
send_photo(receiver, file, rmtmp_cb, cb_extra)
elseif mime_type == 'audio' then
print('send_audio')
send_audio(receiver, file, rmtmp_cb, cb_extra)
elseif mime_type == 'video' then
print('send_video')
send_video(receiver, file, rmtmp_cb, cb_extra)
else
print('send_file')
send_document(receiver, file, rmtmp_cb, cb_extra)
end
end
return {
description = "Wenn ein Link zu einer Datei gesendet wird, läd und sendet der Bot die Datei.",
usage = "Link zur Datei",
description = "Wenn ein User eine Medien-Datei sendet (gif, mp4, pdf, etc.), wird es gedownloadet und gesendet.",
usage = "",
patterns = {
"(https?://[%w-_%.%?%.:/%+=&]+%.gif)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.mp4)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.pdf)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.ogg)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.ogv)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.oga)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.ogx)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.zip)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.mp3)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.rar)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.wmv)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.wma)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.doc)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.tar.gz)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.dlc)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.txt)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.deb)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.webm)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.avi)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.wav)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.exe)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.rpm)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.dmg)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.apk)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.ipa)$",
"(https?://[%w-_%.%?%.:/%+=&]+%.webp)$"
"(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))$"
},
run = run
}