opds(fix): avoid infinite loop on paging

pull/2658/head
Qingping Hou 7 years ago committed by Frans de Jonge
parent 4f40250b88
commit ee0e337433

@ -474,6 +474,8 @@ end
function OPDSBrowser:appendCatalog(item_table_url)
local new_table = self:genItemTableFromURL(item_table_url)
if #new_table == 0 then return false end
for _, item in ipairs(new_table) do
table.insert(self.item_table, item)
end
@ -728,11 +730,20 @@ end
function OPDSBrowser:onNext()
logger.dbg("fetch next page catalog")
local hrefs = self.item_table.hrefs
-- self.page_num comes from menu.lua
local page_num = self.page_num
while page_num == self.page_num and hrefs and hrefs.next do
self:appendCatalog(hrefs.next)
-- fetch more entries until we fill out one page or reach the end
while page_num == self.page_num do
local hrefs = self.item_table.hrefs
if hrefs and hrefs.next then
if not self:appendCatalog(hrefs.next) then
break -- reach end of paging
end
else
break
end
end
return true
end

Loading…
Cancel
Save