71 lines
1.8 KiB
Lua
71 lines
1.8 KiB
Lua
do
|
|
|
|
local images_enabled = true;
|
|
|
|
local function get_sprite(path)
|
|
local url = "http://pokeapi.co/"..path
|
|
local b,c = http.request(url)
|
|
local data = json:decode(b)
|
|
local image = data.image
|
|
return image
|
|
end
|
|
|
|
local function callback(extra)
|
|
send_msg(extra.receiver, extra.text, ok_cb, false)
|
|
end
|
|
|
|
local function send_pokemon(query, receiver)
|
|
local url = "http://pokeapi.co/api/v1/pokemon/" .. query .. "/"
|
|
local res,code = http.request(url)
|
|
if code ~= 200 then return "Kein Pokémon gefunden" end
|
|
local pokemon = json:decode(res)
|
|
|
|
if not pokemon then
|
|
return 'Kein Pokémon gefunden.'
|
|
end
|
|
|
|
local text = 'Pokédex ID: '..pokemon.pkdx_id
|
|
..'\nName: '..pokemon.name
|
|
..'\nTyp: '..pokemon.types[1].name
|
|
..'\nGewicht: '..pokemon.height..' kg'
|
|
..'\nGröße: '..pokemon.weight..' cm'
|
|
..'\nGeschwindigkeit: '..pokemon.speed
|
|
..'\nSpezies: '..pokemon.species
|
|
--[[if pokemon.evolutions then
|
|
text = text..'\nEntwickelt sich zu '..pokemon.evolutions[1].to
|
|
end]]
|
|
|
|
local image = nil
|
|
|
|
if images_enabled and pokemon.sprites and pokemon.sprites[1] then
|
|
local sprite = pokemon.sprites[1].resource_uri
|
|
image = get_sprite(sprite)
|
|
end
|
|
|
|
if image then
|
|
local image = "http://pokeapi.co"..image
|
|
local cb_extra = {
|
|
receiver=receiver,
|
|
url=image
|
|
}
|
|
send_msg(receiver, text, send_photo_from_url_callback, cb_extra)
|
|
else
|
|
return text
|
|
end
|
|
end
|
|
|
|
local function run(msg, matches)
|
|
local receiver = get_receiver(msg)
|
|
local query = URL.escape(matches[1])
|
|
local query = string.lower(query)
|
|
return send_pokemon(query, receiver)
|
|
end
|
|
|
|
return {
|
|
description = "Pokedex für Telegram",
|
|
usage = {"/pokedex [Name/ID]","/pokemon [Name/ID]","/pkmn [Name/ID]"},
|
|
patterns = {"^/pokedex (.*)$","^/pokemon (.+)$","^/pkmn (.+)$"},
|
|
run = run
|
|
}
|
|
|
|
end |