diff --git a/frontend/ui/opdsparser.lua b/frontend/ui/opdsparser.lua index 893a523d2..e5f681bf2 100644 --- a/frontend/ui/opdsparser.lua +++ b/frontend/ui/opdsparser.lua @@ -84,7 +84,7 @@ function OPDSParser:parse(text) return s:gsub( "%p", {["&"] = "&", ["<"] = "<", [">"] = ">" } ) end ) local xlex = luxl.new(text, #text) - return self:createFlatXTable(xlex) + return assert(self:createFlatXTable(xlex)) end return OPDSParser diff --git a/frontend/ui/widget/opdsbrowser.lua b/frontend/ui/widget/opdsbrowser.lua index 1559c429f..876865309 100644 --- a/frontend/ui/widget/opdsbrowser.lua +++ b/frontend/ui/widget/opdsbrowser.lua @@ -298,6 +298,9 @@ function OPDSBrowser:fetchFeed(item_url, username, password, method) if xml ~= "" then return xml end + elseif method == "HEAD" then + -- Don't show error messages when we check headers only. + return elseif code == 301 then UIManager:show(InfoMessage:new{ text = T(_("The catalog has been permanently moved. Please update catalog URL to '%1'."), headers['Location']), @@ -401,6 +404,11 @@ function OPDSBrowser:genItemTableFromCatalog(catalog, item_url, username, passwo end if not feed.entry then + if #hrefs == 0 then + UIManager:show(InfoMessage:new{ + text = _("Catalog not found."), + }) + end return item_table end