From ebb290f0ba89472403bb313c3894a676b9c75e6c Mon Sep 17 00:00:00 2001 From: Nick Savage Date: Sat, 21 Jan 2017 20:00:02 -0500 Subject: [PATCH] OPDSCatalog: Normalize default and user-added catalogs This patch makes the OPDS Browser treat the default catalogs (Project Gutenberg, Feedbooks, etc.) the same as a user-added catalog. This makes them removable and editable if the user so chooses. --- frontend/apps/opdscatalog/opdscatalog.lua | 24 ------------------ frontend/ui/widget/opdsbrowser.lua | 31 +++++++++++++++++------ 2 files changed, 23 insertions(+), 32 deletions(-) diff --git a/frontend/apps/opdscatalog/opdscatalog.lua b/frontend/apps/opdscatalog/opdscatalog.lua index 403a8e935..38bf21921 100644 --- a/frontend/apps/opdscatalog/opdscatalog.lua +++ b/frontend/apps/opdscatalog/opdscatalog.lua @@ -9,37 +9,13 @@ local Blitbuffer = require("ffi/blitbuffer") local ReaderUI = require("apps/reader/readerui") local ConfirmBox = require("ui/widget/confirmbox") local T = require("ffi/util").template - local OPDSCatalog = InputContainer:extend{ title = _("OPDS Catalog"), - opds_servers = { - { - title = "Project Gutenberg", - subtitle = "Free ebooks since 1971.", - url = "http://m.gutenberg.org/ebooks.opds/?format=opds", - }, - { - title = "Feedbooks", - subtitle = "", - url = "http://www.feedbooks.com/publicdomain/catalog.atom", - }, - { - title = "ManyBooks", - subtitle = "Online Catalog for Manybooks.net", - url = "http://manybooks.net/opds/index.php", - }, - { - title = "Internet Archive", - subtitle = "Internet Archive Catalog", - url = "http://bookserver.archive.org/catalog/", - }, - }, onExit = function() end, } function OPDSCatalog:init() local opds_browser = OPDSBrowser:new{ - opds_servers = self.opds_servers, title = self.title, show_parent = self, is_popout = false, diff --git a/frontend/ui/widget/opdsbrowser.lua b/frontend/ui/widget/opdsbrowser.lua index ac39e7b85..7869df6ba 100644 --- a/frontend/ui/widget/opdsbrowser.lua +++ b/frontend/ui/widget/opdsbrowser.lua @@ -58,7 +58,29 @@ local OPDSBrowser = Menu:extend{ } function OPDSBrowser:init() - self.item_table = self:genItemTableFromRoot(self.opds_servers) + local servers = G_reader_settings:readSetting("opds_servers") + if not servers then -- If there are no saved servers, add some defaults + servers = { + { + title = "Project Gutenberg", + url = "http://m.gutenberg.org/ebooks.opds/?format=opds", + }, + { + title = "Feedbooks", + url = "http://www.feedbooks.com/publicdomain/catalog.atom", + }, + { + title = "ManyBooks", + url = "http://manybooks.net/opds/index.php", + }, + { + title = "Internet Archive", + url = "http://bookserver.archive.org/catalog/", + }, + } + G_reader_settings:saveSetting("opds_servers", servers) + end + self.item_table = self:genItemTableFromRoot() Menu.init(self) -- call parent's init() end @@ -168,13 +190,6 @@ end function OPDSBrowser:genItemTableFromRoot() local item_table = {} - for _, server in ipairs(self.opds_servers) do - table.insert(item_table, { - text = server.title, - content = server.subtitle, - url = server.url, - }) - end local added_servers = G_reader_settings:readSetting("opds_servers") or {} for _, server in ipairs(added_servers) do table.insert(item_table, {