change http:post and http:get methods
This commit is contained in:
@@ -100,8 +100,8 @@ ui:prepare_context_menu({
|
||||
# Сетевые функции
|
||||
|
||||
* `http:get(url, [id])` - выполняет запрос HTTP GET, id - строка-идентификатор запрос (см. ниже);
|
||||
* `http:post(url, string, [id])` - выполняет запрос HTTP POST, второй аргумент - JSON-строка;
|
||||
* `http:put(url, [id])` - выполняет запрос HTTP PUT;
|
||||
* `http:post(url, body, media_type, [id])` - выполняет запрос HTTP POST;
|
||||
* `http:put(url, body, media_type, [id])` - выполняет запрос HTTP;
|
||||
* `http:delete(url, [id])` - выполняет запрос HTTP DELETE.
|
||||
|
||||
Эти функции не возвращают никакого значения, а вместо этого вызывают колбек `on_network_result(string, [code])`. Первый аргумент: тело ответа, второй (опциональный) - код (200, 404 и т.д.).
|
||||
|
||||
53
main/updatimerobot-widget.lua
Normal file
53
main/updatimerobot-widget.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
-- name = "Uptimerobot"
|
||||
-- description = "Shows uptime information from uptimerobot.com. Needs api key."
|
||||
-- data_source = "https://uptimerobot.com"
|
||||
-- type = "widget"
|
||||
-- author = "Evgeny Zobnin (zobnin@gmail.com)
|
||||
-- version = "1.0"
|
||||
-- arguments_help = "Enter your API key"
|
||||
|
||||
local json = require "json"
|
||||
local md_colors = require "md_colors"
|
||||
|
||||
-- constants
|
||||
local api_url = "https://api.uptimerobot.com/v2/"
|
||||
local media_type = "application/x-www-form-urlencoded"
|
||||
|
||||
function on_alarm()
|
||||
if (next(aio:get_args()) == nil) then
|
||||
ui:show_text("Enter API key in the settings")
|
||||
return
|
||||
end
|
||||
|
||||
local key = aio:get_args()[1]
|
||||
local body = "api_key="..key.."&format=json"
|
||||
|
||||
http:post(api_url.."getMonitors", body, media_type)
|
||||
end
|
||||
|
||||
function on_network_result(result)
|
||||
local parsed = json.decode(result)
|
||||
|
||||
if (parsed.stat ~= "ok") then
|
||||
ui:show_text("Error: "..parsed.error.message)
|
||||
return
|
||||
end
|
||||
|
||||
local strings_tab = {}
|
||||
|
||||
for k,v in ipairs(parsed.monitors) do
|
||||
strings_tab[k] = v.friendly_name..": "..format_status(v.status)
|
||||
end
|
||||
|
||||
ui:show_lines(strings_tab)
|
||||
end
|
||||
|
||||
-- utils
|
||||
|
||||
function format_status(status)
|
||||
local statuses = { "down", "up" }
|
||||
local status_colors = { "red_500", "green_500" }
|
||||
|
||||
return "<font color=\""..md_colors[status_colors[status]].."\">"..statuses[status].."</font>"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user