68 lines
2.0 KiB
Lua
68 lines
2.0 KiB
Lua
local yandere = {}
|
|
|
|
function yandere:init(config)
|
|
yandere.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('yan', true):t('yandere', true).table
|
|
yandere.doc = [[*
|
|
]]..config.cmd_pat..[[yan* _<Tags>_: Sucht auf Yandere mit diesen Tags]]
|
|
end
|
|
|
|
yandere.command = 'yan <Tags>'
|
|
|
|
function yandere:get_post(tag)
|
|
local BASE_URL = 'https://yande.re'
|
|
local url = BASE_URL..'/post.json?tags='..tag
|
|
local b,c = https.request(url)
|
|
if c ~= 200 then return nil end
|
|
local yan = json.decode(b)
|
|
if not yan[1] then return nil end
|
|
|
|
local i = math.random(#yan)
|
|
local url = yan[i].file_url
|
|
local resolution = yan[i].jpeg_width..'x'..yan[i].jpeg_height..'px'
|
|
local size = ' '..math.ceil(yan[i].file_size/1000)
|
|
local source_url = '\nhttps://yande.re/post/show/'..yan[i].id
|
|
local text = resolution..size..'kb'..source_url
|
|
return url, size, text
|
|
end
|
|
|
|
function yandere:action(msg, config)
|
|
local input = utilities.input_from_msg(msg)
|
|
if not input then
|
|
utilities.send_reply(msg, yandere.doc, true)
|
|
return
|
|
end
|
|
|
|
local tag = string.gsub(input, " ", '_' )
|
|
local tag = string.gsub(input, ":", '%%3A')
|
|
local tag = string.gsub(input, "+", '%%20')
|
|
local url, size, text = yandere:get_post(tag)
|
|
print('URL: '..url)
|
|
|
|
-- don't send GIFs when they're bigger than 20 MB
|
|
-- don't send photos when they're bigger than 5 MB
|
|
if string.ends(url, ".gif") then
|
|
if tonumber(size) > 19900 then
|
|
utilities.send_reply(msg, 'Sorry, die GIF ist zu groß.\n'..text)
|
|
return
|
|
end
|
|
else
|
|
if tonumber(size) > 4900 then
|
|
utilities.send_reply(msg, 'Sorry, das Bild ist zu groß.\n'..text)
|
|
return
|
|
end
|
|
end
|
|
|
|
if not url then
|
|
utilities.send_reply(msg, 'Nobody here but us chickens!')
|
|
return
|
|
end
|
|
|
|
utilities.send_typing(msg.chat.id, 'upload_photo')
|
|
if string.ends(url, ".gif") then
|
|
utilities.send_document(msg.chat.id, url, text, msg.message_id)
|
|
else
|
|
utilities.send_photo(msg.chat.id, url, text, msg.message_id)
|
|
end
|
|
end
|
|
|
|
return yandere |