diff --git a/README_ru.md b/README_ru.md index f9d62cb..2655ee5 100644 --- a/README_ru.md +++ b/README_ru.md @@ -51,6 +51,7 @@ First line
Second line * `aio:remove_widget(string)` - удаляет с экрана встроенный виджет или виджет-скрипт (внимание: доп. виджеты тоже будут удалены); * `aio:is_widget_added(string)` - проверяет, добавлен ли виджет на экран; * `aio:get_args()` - возвращает таблицу аргументов, которые пользователь указал нажав на иконку настроек в режиме редактирования виджета; +* `aio:set_args()` - принудительно устанавливает аргументы скрипта (можно использовать для сохранения настроек скрипта - аргументы не стираются при отключении скрипта); Если в метаданных виджета есть поле `arguments_help`, его значение будет выведено при редактировании аргументов виджета. Если есть поле `arguments_default` - оно будет использовано для получения дефолтовых аргументов. diff --git a/args-test2.lua b/args-test2.lua new file mode 100644 index 0000000..13ab9a0 --- /dev/null +++ b/args-test2.lua @@ -0,0 +1,13 @@ +-- arguments_help = "The word recorded here will be displayed on the screen." +-- arguments_default = "Word" + +function on_resume() + aio:set_args({"Word#1", "Word#2"}) + local args = aio:get_args() + + if args == nil then + ui:show_text("args is empty") + else + ui:show_text("arg1: "..args[1]) + end +end diff --git a/ip-location-widget.lua b/ip-location-widget.lua new file mode 100644 index 0000000..7aebe70 --- /dev/null +++ b/ip-location-widget.lua @@ -0,0 +1,25 @@ +function on_alarm() + request_ip() +end + +function on_network_result(result, code, id) + if id == "ip" then + local location = { + ajson:get_value(result, "object string:latitude"), + ajson:get_value(result, "object string:longitude") + } + request_addr(location) + elseif id == "adr" then + local adr = ajson:get_value(result, "object string:display_name") + ui:show_text(adr) + end +end + +function request_ip() + http:get("https://freegeoip.app/json/", "ip") +end + +function request_addr(location) + http:get("https://nominatim.openstreetmap.org/reverse?format=json&lat="..location[1].."&lon=".. location[2].."&addressdetails=1", "adr") +end +