[fix] DocumentRegistry: only add provider once (#5947)

Fixes <https://github.com/koreader/koreader/issues/5946>.
This commit is contained in:
Frans de Jonge
2020-03-13 21:29:13 +01:00
committed by GitHub
parent d65f2c8367
commit c2aac0f71e

View File

@@ -121,13 +121,23 @@ function DocumentRegistry:getProviders(file)
--- @todo some implementation based on mime types?
for _, provider in ipairs(self.providers) do
local added = false
local suffix = string.sub(file, -string.len(provider.extension) - 1)
if string.lower(suffix) == "."..provider.extension then
for i, prov_prev in ipairs(providers) do
if prov_prev.provider == provider.provider then
if prov_prev.weight >= provider.weight then
added = true
else
table.remove(providers, i)
end
end
end
-- if extension == provider.extension then
-- stick highest weighted provider at the front
if #providers >= 1 and provider.weight > providers[1].weight then
if not added and #providers >= 1 and provider.weight > providers[1].weight then
table.insert(providers, 1, provider)
else
elseif not added then
table.insert(providers, provider)
end
end