|
|
|
@ -39,6 +39,7 @@ function Wallabag:init()
|
|
|
|
|
self.is_delete_read = false
|
|
|
|
|
self.is_auto_delete = false
|
|
|
|
|
self.is_sync_remote_delete = false
|
|
|
|
|
self.is_archiving_deleted = false
|
|
|
|
|
self.filter_tag = ""
|
|
|
|
|
self.articles_per_sync = 30
|
|
|
|
|
|
|
|
|
@ -62,6 +63,9 @@ function Wallabag:init()
|
|
|
|
|
if self.wb_settings.data.wallabag.is_sync_remote_delete ~= nil then
|
|
|
|
|
self.is_sync_remote_delete = self.wb_settings.data.wallabag.is_sync_remote_delete
|
|
|
|
|
end
|
|
|
|
|
if self.wb_settings.data.wallabag.is_archiving_deleted ~= nil then
|
|
|
|
|
self.is_archiving_deleted = self.wb_settings.data.wallabag.is_archiving_deleted
|
|
|
|
|
end
|
|
|
|
|
if self.wb_settings.data.wallabag.filter_tag then
|
|
|
|
|
self.filter_tag = self.wb_settings.data.wallabag.filter_tag
|
|
|
|
|
end
|
|
|
|
@ -189,6 +193,14 @@ function Wallabag:addToMainMenu(menu_items)
|
|
|
|
|
self:saveSettings()
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
text = _("Mark as read instead of deleting"),
|
|
|
|
|
checked_func = function() return self.is_archiving_deleted end,
|
|
|
|
|
callback = function()
|
|
|
|
|
self.is_archiving_deleted = not self.is_archiving_deleted
|
|
|
|
|
self:saveSettings()
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
text = _("Process deletions when downloading"),
|
|
|
|
|
checked_func = function() return self.is_auto_delete end,
|
|
|
|
@ -524,12 +536,12 @@ function Wallabag:processLocalFiles( mode )
|
|
|
|
|
local percent_finished = docinfo.data.percent_finished
|
|
|
|
|
if status == "complete" or status == "abandoned" then
|
|
|
|
|
if self.is_delete_finished then
|
|
|
|
|
self:deleteArticle( entry_path )
|
|
|
|
|
self:removeArticle( entry_path )
|
|
|
|
|
num_deleted = num_deleted + 1
|
|
|
|
|
end
|
|
|
|
|
elseif percent_finished == 1 then -- 100% read
|
|
|
|
|
if self.is_delete_read then
|
|
|
|
|
self:deleteArticle( entry_path )
|
|
|
|
|
self:removeArticle( entry_path )
|
|
|
|
|
num_deleted = num_deleted + 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@ -563,11 +575,27 @@ function Wallabag:addArticle(article_url)
|
|
|
|
|
return self:callAPI("POST", "/api/entries.json", headers, body_JSON, "")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function Wallabag:deleteArticle( path )
|
|
|
|
|
logger.dbg("Wallabag: deleting article ", path )
|
|
|
|
|
function Wallabag:removeArticle( path )
|
|
|
|
|
logger.dbg("Wallabag: removing article ", path )
|
|
|
|
|
local id = self:getArticleID( path )
|
|
|
|
|
if id then
|
|
|
|
|
self:callAPI( "DELETE", "/api/entries/" .. id .. ".json", nil, "", "" )
|
|
|
|
|
if self.is_archiving_deleted then
|
|
|
|
|
local body = {
|
|
|
|
|
archive = 1
|
|
|
|
|
}
|
|
|
|
|
local bodyJSON = JSON.encode(body)
|
|
|
|
|
|
|
|
|
|
local headers = {
|
|
|
|
|
["Content-type"] = "application/json",
|
|
|
|
|
["Accept"] = "application/json, */*",
|
|
|
|
|
["Content-Length"] = tostring(#bodyJSON),
|
|
|
|
|
["Authorization"] = "Bearer " .. self.access_token,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
self:callAPI( "PATCH", "/api/entries/" .. id .. ".json", headers, bodyJSON, "" )
|
|
|
|
|
else
|
|
|
|
|
self:callAPI( "DELETE", "/api/entries/" .. id .. ".json", nil, "", "" )
|
|
|
|
|
end
|
|
|
|
|
self:deleteLocalArticle( path )
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@ -778,6 +806,7 @@ function Wallabag:saveSettings( )
|
|
|
|
|
filter_tag = self.filter_tag,
|
|
|
|
|
is_delete_finished = self.is_delete_finished,
|
|
|
|
|
is_delete_read = self.is_delete_read,
|
|
|
|
|
is_archiving_deleted = self.is_archiving_deleted,
|
|
|
|
|
is_auto_delete = self.is_auto_delete,
|
|
|
|
|
is_sync_remote_delete = self.is_sync_remote_delete,
|
|
|
|
|
articles_per_sync = self.articles_per_sync
|
|
|
|
|