diff --git a/README_ru.md b/README_ru.md index 896a8e9..c576ee8 100644 --- a/README_ru.md +++ b/README_ru.md @@ -20,7 +20,7 @@ * `ui:show_lines(table, [table])` - выводит список строк с отправителем (на манер почтового виджета), второй аргумент (необязательный) - соответствующие им отправители (форматирование в стиле почтового виджета); * `ui:show_buttons(names, [colors])` - выводит список кнопок, первый аргумент - таблица строк, второй опциональный аргумент, таблица цветов в формате #XXXXXX; * `ui:show_progress_bar(text, current_value, max_value)` - показывает прогресс бар; -* `ui:show_chart(title, points, [format], [show_grid], [folded_string], [copyright])` - показывает график, title - название графика, points - таблица таблиц координат, format - формат данных (см. ниже), show\_grid - флага показа сетки, folded\_string - строка для свернутого состояния (иначе будет показано название), copyright - строка, отображаемая в правом нижнем углу; +* `ui:show_chart(points, [format], [title], [show_grid], [folded_string], [copyright])` - показывает график, points - таблица таблиц координат, format - формат данных (см. ниже), title - название графика, show\_grid - флага показа сетки, folded\_string - строка для свернутого состояния (иначе будет показано название), copyright - строка, отображаемая в правом нижнем углу; * `ui:show_toast(string)` - показывает информационное сообщение в стиле Android; * `ui:get_default_title()` - возвращает стандартный заголовок виджета (задается в метаданных `name`); * `ui:set_title()` - изменяет заголовок виджета, функцию следует вызывать до функции отображения данных (пустая строка - сброс до стандартного заголовка); diff --git a/main/wikipedia-widget.lua b/main/wikipedia-widget.lua index 500cdb1..ad846ce 100644 --- a/main/wikipedia-widget.lua +++ b/main/wikipedia-widget.lua @@ -32,7 +32,7 @@ function on_network_result_summary(result) local parsed = json.decode(result) local extract = get_extract(parsed) - ui:show_lines({ extract:sub(1, 200) }, { title }) + ui:show_lines({ extract:smart_sub(200) }, { title }) end function on_click() @@ -41,6 +41,16 @@ end -- utils -- +function string:smart_sub(max) + local pos1, pos2 = self:find("%.", max-50) + + if pos1 < max+50 then + return self:sub(1, pos1+1) + else + return self:sub(1, max) + end +end + function get_extract(parsed) for k,v in pairs(parsed.query.pages) do for k, v in pairs(v) do diff --git a/samples/chart-sample.lua b/samples/chart-sample.lua index ff218bb..e2afcd0 100644 --- a/samples/chart-sample.lua +++ b/samples/chart-sample.lua @@ -4,5 +4,5 @@ function on_resume() { 1628503740654, 300000000 }, { 1628505740654, 987654321 }, } - ui:show_chart("Test", points, "x:date y:number") + ui:show_chart(points, "x:date y:number") end diff --git a/samples/chart-sample2.lua b/samples/chart-sample2.lua index fa13104..3a3da1f 100644 --- a/samples/chart-sample2.lua +++ b/samples/chart-sample2.lua @@ -8,7 +8,7 @@ end function on_network_result(result) tab = get_tab_ajson(result) - ui:show_chart("Covid", tab, "x:date y:number") + ui:show_chart(tab, "x:date y:number") end function totime(str)