gestor/recursos/alerta_de_crash.lua

133 lines
4.5 KiB
Lua

--[[
Mod Gestor para Minetest
Gestor v2.0 Copyright (C) 2018 BrunoMine (https://github.com/BrunoMine)
Recebeste uma cópia da GNU Lesser General
Public License junto com esse software,
se não, veja em <http://www.gnu.org/licenses/>.
Recurso para alerta de crash do servidor
]]
-- Tradutor de texto
local S = gestor.S
-- Registrar aba 'diretrizes'
gestor.registrar_aba("alerta_de_crash", {
titulo = S("Alerta de Crash"),
get_formspec = function(name)
-- Pegar dados
local status_alerta_de_crash = minetest.setting_getbool("gestor_alerta_de_crash") or false
local servidor_smtp = minetest.setting_get("gestor_servidor_smtp") or "-"
local login_smtp = minetest.setting_get("gestor_login_smtp") or "-"
local senha_login_smtp = minetest.setting_get("gestor_senha_login_smtp")
local email_destinatario = minetest.setting_get("gestor_email_destinatario") or "-"
local titulo = minetest.setting_get("gestor_titulo_email") or "-"
local texto = minetest.setting_get("gestor_texto_email") or "-"
local status_senha = S("nenhuma")
if senha_login_smtp then
status_senha = S("salva")
end
if status_alerta_de_crash == false then
status_alerta_de_crash = "1"
else
status_alerta_de_crash = "2"
end
formspec = "label[3.5,1;"..S("Alerta de Crash").."]"
-- Sistema Verificador AntiCrash
.."label[3.5,2;"..S("Sistema Verificador AntiCrash").."]"
.."button[3.5,2.6;3,1;salvar;"..S("Salvar Dados").."]"
-- Sistema Notificador via Email
.."label[3.5,5;"..S("Sistema Notificador via Email").."]"
.."label[3.5,5.4;"..S("Estado").."]"
.."dropdown[3.5,5.8;2,1;status_email;"..S("Inativo")..","..S("Ativo")..";"..status_alerta_de_crash.."]"
.."field[5.8,6;4.3,1;login_smtp;"..S("Login emissor")..";"..login_smtp.."]"
.."pwdfield[10.1,6;3.3,1;senha;"..S("Senha (@1)", status_senha).."]"
.."field[3.8,7.2;9.6,1;servidor_smtp;"..S("Servidor SMTP de envio (host:porta)")..";"..servidor_smtp.."]"
.."field[3.8,8.4;5,1;titulo;"..S("Título da mensagem de email enviada")..";"..titulo.."]"
.."field[8.8,8.4;4.6,1;email_destinatario;"..S("Email do destinatario")..";"..email_destinatario.."]"
.."field[3.8,9.6;9.6,1;texto;"..S("Texto")..";"..texto.."]"
.."button[3.5,10;5,1;testar_email;"..S("Enviar mensagem de teste").."]"
return formspec
end,
on_receive_fields = function(player, fields)
local name = player:get_player_name()
if fields.salvar then
-- Salvar todos os dados
-- Status de alerta de email
if fields.status_email == "Ativo" then
minetest.setting_setbool("gestor_alerta_de_crash", true)
else
minetest.setting_setbool("gestor_alerta_de_crash", false)
end
-- Servidor SMTP
if fields.servidor_smtp and fields.servidor_smtp ~= "-" then
minetest.setting_set("gestor_servidor_smtp", fields.servidor_smtp)
end
-- Login SMTP
if fields.login_smtp and fields.login_smtp ~= "-" then
minetest.setting_set("gestor_login_smtp", fields.login_smtp)
end
-- Senha de Login SMTP
if fields.senha and fields.senha ~= "" then
minetest.setting_set("gestor_senha_login_smtp", fields.senha)
end
-- Email do Destinatario
if fields.email_destinatario and fields.email_destinatario ~= "-" then
minetest.setting_set("gestor_email_destinatario", fields.email_destinatario)
end
-- Titulo da mensagem de Email
if fields.titulo and fields.titulo ~= "-" then
minetest.setting_set("gestor_titulo_email", fields.titulo)
end
-- Texto da mensagem de Email
if fields.texto and fields.texto ~= "-" then
minetest.setting_set("gestor_texto_email", fields.texto)
end
minetest.show_formspec(name, "gestor:aviso", "size[4,1.8]"..
default.gui_bg..
default.gui_bg_img..
"label[0,0;"..S("Dados salvos").."]"
)
minetest.after(2, gestor.menu_principal, name)
return
elseif fields.testar_email then
if gestor.alerta_de_crash and gestor.alerta_de_crash.enviar_email() then
minetest.show_formspec(name, "gestor:aviso", "size[4,1.8]"..
default.gui_bg..
default.gui_bg_img..
"label[0,0;"..S("PRONTO. Veja o relatorio").."]"..
"label[0,0.5;(gestor_envios_de_alerta.out)]"
)
else
minetest.show_formspec(name, "gestor:aviso", "size[4,1.8]"..
default.gui_bg..
default.gui_bg_img..
"label[0,0;"..S("FALHA. Faltam dados").."]"
)
end
minetest.after(2, gestor.menu_principal, name)
end
end,
})