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-2/miku/plugins/mal_user.lua

56 lines
1.9 KiB
Lua
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local mal_user = {}
function mal_user:init(config)
mal_user.triggers = {
"^/malu (.+)$",
"myanimelist.net/profile/(.*)$"
}
mal_user.doc = [[*
]]..config.cmd_pat..[[malu* _<User>_: Sendet Infos über einen MyAnimeList-User
]]
end
mal_user.command = 'malu <User>'
function mal_user:get_infos(user)
local url = 'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22http%3A%2F%2Fmyanimelist.net%2Fmalappinfo.php%3Fu%3D'..user..'%22&format=json'
local res, code = https.request(url)
if code ~= 200 then return nil end
local data = json.decode(res).query.results.myanimelist.myinfo
if not data then return nil end
local name = '<b>'..data.user_name..'</b>'
local id = data.user_id
local user_id = ' <i>(ID '..id..')</i>'
local user_pic = '<a href="https://myanimelist.cdn-dena.com/images/userimages/'..id..'.jpg"> </a>'
if data.user_watching == '1' then
watching = '<b>'..data.user_watching..' Anime</b>'
else
watching = '<b>'..data.user_watching..' Animes</b>'
end
local pause = '<b>'..data.user_onhold..' pausiert</b>'
local dropped = '<b>'..data.user_dropped..' abgebrochen</b>'
local complete = '<b>'..data.user_completed..' beendet</b>'
if data.user_plantowatch == '1' then
planed = '<b>'..data.user_plantowatch..'</b> steht'
else
planed = '<b>'..data.user_plantowatch..'</b> stehen'
end
local mal_url = '<a href="http://myanimelist.net/profile/'..data.user_name..'">Profil aufrufen</a>'
local text = user_pic..name..user_id..' schaut derzeit '..watching..', hat '..pause..', '..dropped..' und '..complete..'. '..planed..' auf der Watchlist.\n'..mal_url
return text
end
function mal_user:action(msg, config, matches)
local user = matches[1]
local text = mal_user:get_infos(user)
if not text then
utilities.send_reply(msg, config.errors.results)
return
end
utilities.send_message(msg.chat.id, text, false, msg.message_id, 'html')
end
return mal_user