mirror of
https://github.com/koreader/koreader.git
synced 2025-12-13 20:36:53 +01:00
[plugin] Wallabag: separate option to delete ‘on hold’ articles (#12722)
Before this change, on hold articles were deleted if `Remotely delete finished articles` was enabled. To make this configurable new option `Remotely delete on hold articles` has been added. Fixes #12698.
This commit is contained in:
@@ -50,6 +50,7 @@ function Wallabag:init()
|
||||
-- default values so that user doesn't have to explicitly set them
|
||||
self.is_delete_finished = true
|
||||
self.is_delete_read = false
|
||||
self.is_delete_abandoned = false
|
||||
self.is_auto_delete = false
|
||||
self.is_sync_remote_delete = false
|
||||
self.is_archiving_deleted = true
|
||||
@@ -71,6 +72,9 @@ function Wallabag:init()
|
||||
if self.wb_settings.data.wallabag.is_delete_finished ~= nil then
|
||||
self.is_delete_finished = self.wb_settings.data.wallabag.is_delete_finished
|
||||
end
|
||||
if self.wb_settings.data.wallabag.is_delete_abandoned ~= nil then
|
||||
self.is_delete_abandoned = self.wb_settings.data.wallabag.is_delete_abandoned
|
||||
end
|
||||
if self.wb_settings.data.wallabag.send_review_as_tags ~= nil then
|
||||
self.send_review_as_tags = self.wb_settings.data.wallabag.send_review_as_tags
|
||||
end
|
||||
@@ -99,6 +103,7 @@ function Wallabag:init()
|
||||
self.articles_per_sync = self.wb_settings.data.wallabag.articles_per_sync
|
||||
end
|
||||
self.remove_finished_from_history = self.wb_settings.data.wallabag.remove_finished_from_history or false
|
||||
self.remove_abandoned_from_history = self.wb_settings.data.wallabag.remove_abandoned_from_history or false
|
||||
self.download_original_document = self.wb_settings.data.wallabag.download_original_document
|
||||
self.download_queue = self.wb_settings.data.wallabag.download_queue or {}
|
||||
|
||||
@@ -151,7 +156,7 @@ function Wallabag:addToMainMenu(menu_items)
|
||||
NetworkMgr:runWhenOnline(connect_callback)
|
||||
end,
|
||||
enabled_func = function()
|
||||
return self.is_delete_finished or self.is_delete_read
|
||||
return self.is_delete_finished or self.is_delete_read or self.is_delete_abandoned
|
||||
end,
|
||||
},
|
||||
{
|
||||
@@ -277,6 +282,14 @@ function Wallabag:addToMainMenu(menu_items)
|
||||
self.is_delete_read = not self.is_delete_read
|
||||
self:saveSettings()
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = _("Remotely delete articles on hold"),
|
||||
checked_func = function() return self.is_delete_abandoned end,
|
||||
callback = function()
|
||||
self.is_delete_abandoned = not self.is_delete_abandoned
|
||||
self:saveSettings()
|
||||
end,
|
||||
separator = true,
|
||||
},
|
||||
{
|
||||
@@ -339,6 +352,17 @@ function Wallabag:addToMainMenu(menu_items)
|
||||
self.remove_read_from_history = not self.remove_read_from_history
|
||||
self:saveSettings()
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = _("Remove articles on hold from history"),
|
||||
keep_menu_open = true,
|
||||
checked_func = function()
|
||||
return self.remove_abandoned_from_history or false
|
||||
end,
|
||||
callback = function()
|
||||
self.remove_abandoned_from_history = not self.remove_abandoned_from_history
|
||||
self:saveSettings()
|
||||
end,
|
||||
separator = true,
|
||||
},
|
||||
{
|
||||
@@ -820,7 +844,7 @@ function Wallabag:processLocalFiles(mode)
|
||||
end
|
||||
|
||||
local num_deleted = 0
|
||||
if self.is_delete_finished or self.is_delete_read then
|
||||
if self.is_delete_finished or self.is_delete_read or self.is_delete_abandoned then
|
||||
local info = InfoMessage:new{ text = _("Processing local files…") }
|
||||
UIManager:show(info)
|
||||
UIManager:forceRePaint()
|
||||
@@ -836,11 +860,16 @@ function Wallabag:processLocalFiles(mode)
|
||||
local summary = doc_settings:readSetting("summary")
|
||||
local status = summary and summary.status
|
||||
local percent_finished = doc_settings:readSetting("percent_finished")
|
||||
if status == "complete" or status == "abandoned" then
|
||||
if status == "complete" then
|
||||
if self.is_delete_finished then
|
||||
self:removeArticle(entry_path)
|
||||
num_deleted = num_deleted + 1
|
||||
end
|
||||
elseif status == "abandoned" then
|
||||
if self.is_delete_abandoned then
|
||||
self:removeArticle(entry_path)
|
||||
num_deleted = num_deleted + 1
|
||||
end
|
||||
elseif percent_finished == 1 then -- 100% read
|
||||
if self.is_delete_read then
|
||||
self:removeArticle(entry_path)
|
||||
@@ -1157,6 +1186,7 @@ function Wallabag:saveSettings()
|
||||
auto_tags = self.auto_tags,
|
||||
is_delete_finished = self.is_delete_finished,
|
||||
is_delete_read = self.is_delete_read,
|
||||
is_delete_abandoned = self.is_delete_abandoned,
|
||||
is_archiving_deleted = self.is_archiving_deleted,
|
||||
is_auto_delete = self.is_auto_delete,
|
||||
is_sync_remote_delete = self.is_sync_remote_delete,
|
||||
@@ -1235,12 +1265,15 @@ function Wallabag:onCloseDocument()
|
||||
local document_full_path = self.ui.document.file
|
||||
local summary = self.ui.doc_settings:readSetting("summary")
|
||||
local status = summary and summary.status
|
||||
local is_finished = status == "complete" or status == "abandoned"
|
||||
local is_finished = status == "complete"
|
||||
local is_read = self:getLastPercent() == 1
|
||||
local is_abandoned = status == "abandoned"
|
||||
|
||||
if document_full_path
|
||||
and self.directory
|
||||
and ( (self.remove_finished_from_history and is_finished) or (self.remove_read_from_history and is_read) )
|
||||
and ( (self.remove_finished_from_history and is_finished)
|
||||
or (self.remove_read_from_history and is_read)
|
||||
or (self.remove_abandoned_from_history and is_abandoned) )
|
||||
and self.directory == string.sub(document_full_path, 1, string.len(self.directory)) then
|
||||
ReadHistory:removeItemByPath(document_full_path)
|
||||
self.ui:setLastDirForFileBrowser(self.directory)
|
||||
|
||||
Reference in New Issue
Block a user