From 13a787e57779843dc86fb1e5fb3501b898df3328 Mon Sep 17 00:00:00 2001 From: yago Date: Sat, 28 Feb 2015 12:30:58 +0100 Subject: [PATCH] giphy sends original if downsized doesn't exists --- plugins/giphy.lua | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/plugins/giphy.lua b/plugins/giphy.lua index 295b424..6d684fd 100644 --- a/plugins/giphy.lua +++ b/plugins/giphy.lua @@ -6,28 +6,40 @@ do local BASE_URL = 'http://api.giphy.com/v1' local API_KEY = 'dc6zaTOxFJmzC' -- public beta key -function get_random_top() - local res, code = http.request(BASE_URL.."/gifs/trending?api_key="..API_KEY) - if code ~= 200 then return nil end - local images = json:decode(res).data +function get_image(response) + local images = json:decode(response).data + if #images == 0 then return nil end -- No images local i = math.random(0,#images) - return images[i].images.downsized.url + local image = images[i] -- A random one + + if image.images.downsized then + return image.images.downsized.url + end + + if image.images.original then + return image.original.url + end + + return nil +end + +function get_random_top() + local url = BASE_URL.."/gifs/trending?api_key="..API_KEY + local response, code = http.request(url) + if code ~= 200 then return nil end + return get_image(response) end function search(text) text = URL.escape(text) local url = BASE_URL.."/gifs/search?q="..text.."&api_key="..API_KEY - print(url) - local res, code = http.request(url) + local response, code = http.request(url) if code ~= 200 then return nil end - local images = json:decode(res).data - if #images == 0 then return nil end -- No images - local i = math.random(0,#images) - return images[i].images.downsized.url + return get_image(response) end function run(msg, matches) - local gif_url = '' + local gif_url = nil -- If no search data, a random trending GIF will be sended if matches[1] == "!gif" or matches[1] == "!giphy" then @@ -60,4 +72,4 @@ return { run = run } -end +end \ No newline at end of file