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
|
-- default values so that user doesn't have to explicitly set them
|
||||||
self.is_delete_finished = true
|
self.is_delete_finished = true
|
||||||
self.is_delete_read = false
|
self.is_delete_read = false
|
||||||
|
self.is_delete_abandoned = false
|
||||||
self.is_auto_delete = false
|
self.is_auto_delete = false
|
||||||
self.is_sync_remote_delete = false
|
self.is_sync_remote_delete = false
|
||||||
self.is_archiving_deleted = true
|
self.is_archiving_deleted = true
|
||||||
@@ -71,6 +72,9 @@ function Wallabag:init()
|
|||||||
if self.wb_settings.data.wallabag.is_delete_finished ~= nil then
|
if self.wb_settings.data.wallabag.is_delete_finished ~= nil then
|
||||||
self.is_delete_finished = self.wb_settings.data.wallabag.is_delete_finished
|
self.is_delete_finished = self.wb_settings.data.wallabag.is_delete_finished
|
||||||
end
|
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
|
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
|
self.send_review_as_tags = self.wb_settings.data.wallabag.send_review_as_tags
|
||||||
end
|
end
|
||||||
@@ -99,6 +103,7 @@ function Wallabag:init()
|
|||||||
self.articles_per_sync = self.wb_settings.data.wallabag.articles_per_sync
|
self.articles_per_sync = self.wb_settings.data.wallabag.articles_per_sync
|
||||||
end
|
end
|
||||||
self.remove_finished_from_history = self.wb_settings.data.wallabag.remove_finished_from_history or false
|
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_original_document = self.wb_settings.data.wallabag.download_original_document
|
||||||
self.download_queue = self.wb_settings.data.wallabag.download_queue or {}
|
self.download_queue = self.wb_settings.data.wallabag.download_queue or {}
|
||||||
|
|
||||||
@@ -151,7 +156,7 @@ function Wallabag:addToMainMenu(menu_items)
|
|||||||
NetworkMgr:runWhenOnline(connect_callback)
|
NetworkMgr:runWhenOnline(connect_callback)
|
||||||
end,
|
end,
|
||||||
enabled_func = function()
|
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,
|
end,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -277,6 +282,14 @@ function Wallabag:addToMainMenu(menu_items)
|
|||||||
self.is_delete_read = not self.is_delete_read
|
self.is_delete_read = not self.is_delete_read
|
||||||
self:saveSettings()
|
self:saveSettings()
|
||||||
end,
|
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,
|
separator = true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -339,6 +352,17 @@ function Wallabag:addToMainMenu(menu_items)
|
|||||||
self.remove_read_from_history = not self.remove_read_from_history
|
self.remove_read_from_history = not self.remove_read_from_history
|
||||||
self:saveSettings()
|
self:saveSettings()
|
||||||
end,
|
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,
|
separator = true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -820,7 +844,7 @@ function Wallabag:processLocalFiles(mode)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local num_deleted = 0
|
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…") }
|
local info = InfoMessage:new{ text = _("Processing local files…") }
|
||||||
UIManager:show(info)
|
UIManager:show(info)
|
||||||
UIManager:forceRePaint()
|
UIManager:forceRePaint()
|
||||||
@@ -836,11 +860,16 @@ function Wallabag:processLocalFiles(mode)
|
|||||||
local summary = doc_settings:readSetting("summary")
|
local summary = doc_settings:readSetting("summary")
|
||||||
local status = summary and summary.status
|
local status = summary and summary.status
|
||||||
local percent_finished = doc_settings:readSetting("percent_finished")
|
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
|
if self.is_delete_finished then
|
||||||
self:removeArticle(entry_path)
|
self:removeArticle(entry_path)
|
||||||
num_deleted = num_deleted + 1
|
num_deleted = num_deleted + 1
|
||||||
end
|
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
|
elseif percent_finished == 1 then -- 100% read
|
||||||
if self.is_delete_read then
|
if self.is_delete_read then
|
||||||
self:removeArticle(entry_path)
|
self:removeArticle(entry_path)
|
||||||
@@ -1157,6 +1186,7 @@ function Wallabag:saveSettings()
|
|||||||
auto_tags = self.auto_tags,
|
auto_tags = self.auto_tags,
|
||||||
is_delete_finished = self.is_delete_finished,
|
is_delete_finished = self.is_delete_finished,
|
||||||
is_delete_read = self.is_delete_read,
|
is_delete_read = self.is_delete_read,
|
||||||
|
is_delete_abandoned = self.is_delete_abandoned,
|
||||||
is_archiving_deleted = self.is_archiving_deleted,
|
is_archiving_deleted = self.is_archiving_deleted,
|
||||||
is_auto_delete = self.is_auto_delete,
|
is_auto_delete = self.is_auto_delete,
|
||||||
is_sync_remote_delete = self.is_sync_remote_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 document_full_path = self.ui.document.file
|
||||||
local summary = self.ui.doc_settings:readSetting("summary")
|
local summary = self.ui.doc_settings:readSetting("summary")
|
||||||
local status = summary and summary.status
|
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_read = self:getLastPercent() == 1
|
||||||
|
local is_abandoned = status == "abandoned"
|
||||||
|
|
||||||
if document_full_path
|
if document_full_path
|
||||||
and self.directory
|
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
|
and self.directory == string.sub(document_full_path, 1, string.len(self.directory)) then
|
||||||
ReadHistory:removeItemByPath(document_full_path)
|
ReadHistory:removeItemByPath(document_full_path)
|
||||||
self.ui:setLastDirForFileBrowser(self.directory)
|
self.ui:setLastDirForFileBrowser(self.directory)
|
||||||
|
|||||||
Reference in New Issue
Block a user