fediauth/mastoapi.lua

42 lines
1.4 KiB
Lua

local http, instance, key
local server_name = minetest.settings:get("server_name") or ""
local automatic_delete = minetest.settings:get_bool("fediauth.automatic_delete")
local S = minetest.get_translator("fediauth")
function fediauth.send_code(code, account_handle, playername)
local lang_code = minetest.get_player_information(playername).lang_code
local expires_in = nil
if automatic_delete then
expires_in = 3600
end
local status = {
visibility = "direct",
status = minetest.get_translated_string(lang_code, S("This is an automated message from minetest server ")) .. server_name ..
minetest.get_translated_string(lang_code, S(" If you did not request this message please ignore or block. Your requested one-time code is:\n\n")) ..
code ..
"\n\n" ..
account_handle,
expires_in = expires_in
}
local json = minetest.write_json(status)
http.fetch({
url = "https://" .. instance .. "/api/v1/statuses",
extra_headers = { "Content-Type: application/json", "Authorization: Bearer " .. key },
timeout = 15,
post_data = json
}, function(res)
if res.code == 200 then
minetest.log("action", "[fediauth] code sent to: '" .. account_handle .. "' for player " .. playername)
else
minetest.log("error", "[fediauth] code not sent to: '" .. account_handle .. "' for player " .. playername)
end
end)
end
function mastoapi_init(h, i, k)
http = h
instance = i
key = k
end