From 72ae80870ca406728ee155d43de93a948e0fdd31 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 23 Apr 2017 23:27:29 -0700 Subject: [PATCH] quickstart fix (#2804) * translation text fix * quickstart(fix): go back to home dir after document close * quickstart(fix): purge old quick start files * spec: fix quickstart tests --- .ci/helper_shellchecks.sh | 2 +- .travis.yml | 2 ++ frontend/apps/cloudstorage/ftp.lua | 2 +- .../apps/filemanager/filemanagerconverter.lua | 2 +- frontend/apps/reader/modules/readermenu.lua | 10 +++--- .../ui/elements/common_info_menu_table.lua | 2 +- frontend/ui/quickstart.lua | 36 +++++++++++++------ plugins/calibrecompanion.koplugin/main.lua | 2 +- spec/unit/quickstart_spec.lua | 2 +- 9 files changed, 39 insertions(+), 21 deletions(-) diff --git a/.ci/helper_shellchecks.sh b/.ci/helper_shellchecks.sh index fe1b6592e..3956a49ab 100755 --- a/.ci/helper_shellchecks.sh +++ b/.ci/helper_shellchecks.sh @@ -14,7 +14,7 @@ for shellscript in "${shellscript_locations[@]}"; do shellcheck "${shellscript}" || SHELLSCRIPT_ERROR=1 echo -e "${ANSI_GREEN}Running shfmt on ${shellscript}" if [ "$(cat "${shellscript}")" != "$(shfmt -i 4 "${shellscript}")" ]; then - echo -e "${ANSI_RED}Warning: ${shellscript} does not abide by coding style" + echo -e "${ANSI_RED}Warning: ${shellscript} does not abide by coding style, diff for expected style:" shfmt -i 4 "${shellscript}" | diff "${shellscript}" - || SHELLSCRIPT_ERROR=1 fi done diff --git a/.travis.yml b/.travis.yml index d945ace0b..67763ef1f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,8 @@ cache: before_cache: # don't quote like you normally would or it won't expand - rm -frv ${TRAVIS_BUILD_DIR}/base/build/*/cache/* + # don't cache unit tests + - rm -frv ${TRAVIS_BUILD_DIR}/base/build/*/spec addons: apt: diff --git a/frontend/apps/cloudstorage/ftp.lua b/frontend/apps/cloudstorage/ftp.lua index eb420e87b..be02310e5 100644 --- a/frontend/apps/cloudstorage/ftp.lua +++ b/frontend/apps/cloudstorage/ftp.lua @@ -1,5 +1,5 @@ local ConfirmBox = require("ui/widget/confirmbox") -local FtpApi = require("frontend/apps/cloudstorage/ftpapi") +local FtpApi = require("apps/cloudstorage/ftpapi") local InfoMessage = require("ui/widget/infomessage") local MultiInputDialog = require("ui/widget/multiinputdialog") local ReaderUI = require("apps/reader/readerui") diff --git a/frontend/apps/filemanager/filemanagerconverter.lua b/frontend/apps/filemanager/filemanagerconverter.lua index 79761ccdb..fb4f763de 100644 --- a/frontend/apps/filemanager/filemanagerconverter.lua +++ b/frontend/apps/filemanager/filemanagerconverter.lua @@ -38,7 +38,7 @@ local FileConverter = { ---- @string title an optional title for the HTML document ---- @treturn string an HTML document function FileConverter:mdToHtml(markdown, title) - local MD = require("frontend/apps/filemanager/lib/md") + local MD = require("apps/filemanager/lib/md") local md_options = { prependHead = "\n\n\n", insertHead = string.format("%s\n\n\n", title), diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index 00bd0ae4f..3a927faab 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -3,11 +3,12 @@ local Device = require("device") local Event = require("ui/event") local InputContainer = require("ui/widget/container/inputcontainer") local Screensaver = require("ui/screensaver") +local QuickStart = require("ui/quickstart") local UIManager = require("ui/uimanager") local logger = require("logger") local dbg = require("dbg") -local _ = require("gettext") local Screen = Device.screen +local _ = require("gettext") local ReaderMenu = InputContainer:new{ tab_item_table = nil, @@ -42,12 +43,13 @@ function ReaderMenu:init() callback = function() self:onTapCloseMenu() self.ui:onClose() - local FileManager = require("apps/filemanager/filemanager") - local lastdir = nil + local lastdir local last_file = G_reader_settings:readSetting("lastfile") - if last_file then + -- ignore quickstart guide as last_file so we can go back to home dir + if last_file and last_file ~= QuickStart.quickstart_filename then lastdir = last_file:match("(.*)/") end + local FileManager = require("apps/filemanager/filemanager") if FileManager.instance then FileManager.instance:reinit(lastdir) else diff --git a/frontend/ui/elements/common_info_menu_table.lua b/frontend/ui/elements/common_info_menu_table.lua index 59e35207e..521e3ac0e 100644 --- a/frontend/ui/elements/common_info_menu_table.lua +++ b/frontend/ui/elements/common_info_menu_table.lua @@ -26,7 +26,7 @@ common_info.help = { common_info.quickstart_guide = { text = _("Quickstart guide"), callback = function() - local QuickStart = require("frontend/ui/quickstart") + local QuickStart = require("ui/quickstart") local ReaderUI = require("apps/reader/readerui") ReaderUI:showReader(QuickStart:getQuickStart()) end diff --git a/frontend/ui/quickstart.lua b/frontend/ui/quickstart.lua index 4f6694c6b..57f99dfe1 100644 --- a/frontend/ui/quickstart.lua +++ b/frontend/ui/quickstart.lua @@ -2,16 +2,17 @@ ]] local DataStorage = require("datastorage") local FileConverter = require("apps/filemanager/filemanagerconverter") +local DocSettings = require("docsettings") local Version = require("version") -local _ = require("gettext") +local FFIUtil = require("ffi/util") +local T = FFIUtil.template local lfs = require("libs/libkoreader-lfs") -local T = require("ffi/util").template +local _ = require("gettext") local QuickStart = { quickstart_force_show_version = 201511982, } -local quickstart_shown_version = G_reader_settings:readSetting("quickstart_shown_version") or nil local language = G_reader_settings:readSetting("language") or "en" local version = Version:getNormalizedCurrentVersion() local rev = Version:getCurrentRevision() @@ -27,10 +28,10 @@ Turning pages can be done either by swiping left and right or by single taps on ### Contents -* [menu](#menu) - * [main menu](#main-menu) - * [settings](#settings) -* [file browser](#file-browser) +* [Menu](#menu) + * [Main menu](#main-menu) + * [Settings](#settings) +* [File browser](#file-browser) ## Menu @@ -63,11 +64,11 @@ shown yet or if display is forced through a higher version number than when it was first shown. ]] function QuickStart:isShown() - if quickstart_shown_version == nil then return false end - return (quickstart_shown_version >= self.quickstart_force_show_version) + local shown_version = G_reader_settings:readSetting("quickstart_shown_version") + return shown_version ~= nil and (shown_version >= self.quickstart_force_show_version) end ---[[--Generates the quickstart guide in the user's language and returns its location. +--[[-- Generates the quickstart guide in the user's language and returns its location. The fileformat is `quickstart-en-v2015.11-985-g88308992.html`, `en` being the language of the generated file and `v2015.11-985-g88308992` the KOReader version @@ -77,16 +78,29 @@ used to generate the file. ]] function QuickStart:getQuickStart() local quickstart_dir = ("%s/help"):format(DataStorage:getDataDir()) - local quickstart_filename = ("%s/quickstart-%s-%s.html"):format(quickstart_dir, language, rev) if lfs.attributes(quickstart_dir, "mode") ~= "dir" then lfs.mkdir(quickstart_dir) end + + local quickstart_filename = ("%s/quickstart-%s-%s.html"):format(quickstart_dir, language, rev) if lfs.attributes(quickstart_filename, "mode") ~= "file" then + -- purge old quickstart guides + local iter, dir_obj = lfs.dir(quickstart_dir) + for f in iter, dir_obj do + if f:match("quickstart-.*%.html") then + local file_abs_path = FFIUtil.realpath(("%s/%s"):format(quickstart_dir, f)) + os.remove(file_abs_path) + DocSettings:open(file_abs_path):purge() + end + end + local quickstart_html = FileConverter:mdToHtml(quickstart_guide, _("KOReader Quickstart Guide")) if quickstart_html then FileConverter:writeStringToFile(quickstart_html, quickstart_filename) end end + -- remember filemaname for file manager + self.quickstart_filename = quickstart_filename G_reader_settings:saveSetting("quickstart_shown_version", version) return quickstart_filename end diff --git a/plugins/calibrecompanion.koplugin/main.lua b/plugins/calibrecompanion.koplugin/main.lua index dce7909d9..fb2f6c25e 100644 --- a/plugins/calibrecompanion.koplugin/main.lua +++ b/plugins/calibrecompanion.koplugin/main.lua @@ -81,7 +81,7 @@ end function CalibreCompanion:addToMainMenu(menu_items) menu_items.calibre_wireless_connection = { - text = _("Calibre wireless connection"), + text = _("calibre wireless connection"), sub_item_table = { { text_func = function() diff --git a/spec/unit/quickstart_spec.lua b/spec/unit/quickstart_spec.lua index 5f7d65881..746e95207 100644 --- a/spec/unit/quickstart_spec.lua +++ b/spec/unit/quickstart_spec.lua @@ -1,6 +1,6 @@ describe("QuickStart module", function() setup(function() - require("commonrequire") + require("commonrequire") end) it("should return false shown_version lower than force_show_version", function() G_reader_settings:saveSetting("quickstart_shown_version", 1)