diff --git a/README_ru.md b/README_ru.md index 8f38670..74eb1d5 100644 --- a/README_ru.md +++ b/README_ru.md @@ -44,7 +44,7 @@ First line
Second line # Функции управления лаунчером * `aio:doAction(string)` - выполняет действие AIO ([подробнее](https://aiolauncher.app/api.html)); -* `aio:addWidget(string)` - добавляет на экран встроенный виджет или виджет-скрипт; +* `aio:addWidget(string)` - добавляет на экран встроенный виджет, виджет-скрипт или клон существующего виджета; * `aio:removeWidget(string)` - удаляет с экрана встроенный виджет или виджет-скрипт (внимание: доп. виджеты тоже будут удалены); * `aio:isWidgetAdded(string)` - проверяет, добавлен ли виджет на экран; * `aio:getArgs()` - возвращает таблицу аргументов, которые пользователь указал нажав на иконку настроек в режиме редактирования виджета; diff --git a/currencies-ru-widget.lua b/currencies-ru-widget.lua new file mode 100644 index 0000000..283d409 --- /dev/null +++ b/currencies-ru-widget.lua @@ -0,0 +1,58 @@ +-- name = "Курсы валют" +-- description = "Виджет курсов валют. Нажмите на дату чтобы изменить ее." +-- dataSource = "https://github.com/fawazahmed0/currency-api#readme" +-- type = "widget" +-- author = "Andrey Gavrilov" +-- version = "1.0" +-- argumentsHelp = "Введите список валютных пар в формате usd:rub btc:usd" +-- argumentsDefault = "usd:rub eur:rub" + +stringx = require 'pl.stringx' + +function onAlarm() + curs = aio:getArgs() + + if curs == nil then + curs = {"usd:rub", "eur:rub"} + end + + getRates("latest") +end + +function getRates(locDate) + net:getText("https://cdn.jsdelivr.net/gh/fawazahmed0/currency-api@1/"..locDate.."/currencies/usd.json") +end + +function onNetworkResult(result) + local dat = json:getValue(result, "object string:date") + local tab = {} + + table.insert(tab, ""..dat.."") + + for idx = 1, #curs, 1 do + local equals = " = " + local cur = stringx.split(curs[idx], ":") + local cur1 = cur[1] + local cur2 = cur[2] + local rate1 = json:getValue(result, "object object:usd double:"..cur1) + local rate2 = json:getValue(result, "object object:usd double:"..cur2) + local rate = math.floor(rate2/rate1*10000+0.5)/10000 + table.insert(tab, "1 "..string.upper(cur1)..equals..rate.." "..string.upper(cur2)) + end + + ui:showLines(tab) +end + +function onClick(idx) + if idx == 1 then + ui:showEditDialog("Введите дату курсов", "Введите дату курсов в формате 2020-12-31. Пустое значение - текущая дата.") + end +end + +function onDialogAction(text) + if text == "" then + text = "latest" + end + + getRates(text) +end diff --git a/open-search-widget.lua b/open-search-widget.lua new file mode 100644 index 0000000..545a7ca --- /dev/null +++ b/open-search-widget.lua @@ -0,0 +1,9 @@ +-- name = "Search" + +function onResume() + ui:showText("Open search") +end + +function onClick() + aio:doAction("search") +end