This repository has been archived on 2021-04-24. You can view files and clone it, but cannot push or open issues or pull requests.
Mikubot/plugins/giphy.lua

59 lines
1.5 KiB
Lua
Raw Normal View History

2015-01-12 22:29:59 +01:00
-- Idea by https://github.com/asdofindia/telegram-bot/
-- See http://api.giphy.com/
2015-02-23 00:11:31 +01:00
do
local BASE_URL = 'http://api.giphy.com/v1'
local API_KEY = 'dc6zaTOxFJmzC' -- public beta key
2015-01-12 22:29:59 +01:00
function get_random_top()
2015-02-23 00:11:31 +01:00
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
2015-01-12 22:29:59 +01:00
local i = math.random(0,#images)
return images[i].images.downsized.url
end
function search(text)
2015-02-23 00:11:31 +01:00
local res, code = http.request(BASE_URL.."/gifs/search?q="..text.."&api_key="..API_KEY)
local images = json:decode(res).data
2015-02-19 21:50:13 +01:00
if #images == 0 then return nil end -- No images
2015-01-12 22:29:59 +01:00
local i = math.random(0,#images)
return images[i].images.downsized.url
end
function run(msg, matches)
2015-02-23 00:11:31 +01:00
local gif_url = ''
-- If no search data, a random trending GIF will be sended
2015-01-12 22:29:59 +01:00
if matches[1] == "!gif" or matches[1] == "!giphy" then
gif_url = get_random_top()
else
gif_url = search(matches[1])
end
2015-02-19 21:50:13 +01:00
if not gif_url then
return "Error: GIF not found"
end
2015-02-15 14:33:48 +01:00
local receiver = get_receiver(msg)
send_document_from_url(receiver, gif_url)
2015-02-19 21:50:13 +01:00
return "Preparing to make you laugh"
2015-01-12 22:29:59 +01:00
end
return {
2015-01-23 23:49:51 +01:00
description = "GIFs from telegram with Giphy API",
usage = {
"!gif (term): Search and sends GIF from Giphy. If no param, sends a trending GIF.",
"!giphy (term): Search and sends GIF from Giphy. If no param, sends a trending GIF."
},
2015-01-12 22:29:59 +01:00
patterns = {
"^!gif$",
"^!gif (.*)",
"^!giphy (.*)",
"^!giphy$"
},
run = run
2015-02-23 00:11:31 +01:00
}
end