Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ReaderDictionary: merge dict & dict_ext results #8523

Merged
merged 1 commit into from Dec 7, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
19 changes: 12 additions & 7 deletions frontend/apps/reader/modules/readerdictionary.lua
Expand Up @@ -776,25 +776,30 @@ function ReaderDictionary:rawSdcv(words, dict_names, fuzzy_search, lookup_progre
-- so it's safe to split. Ideally luajson would support jsonl but
-- unfortunately it doesn't and it also seems to decode the last
-- object rather than the first one if there are multiple.
local result_word_idx = 0
for _, entry_str in ipairs(util.splitToArray(results_str, "\n")) do
result_word_idx = result_word_idx + 1
local ok, results = pcall(JSON.decode, entry_str)
if ok and results then
table.insert(all_results, results)
else
if not ok or not results then
logger.warn("JSON data cannot be decoded", results)
-- Need to insert an empty table so that the word entries
-- match up to the result entries (so that callers can
-- batch lookups to reduce the cost of bulk lookups while
-- still being able to figure out which lookup came from
-- which word).
table.insert(all_results, {})
results = {}
end
if all_results[result_word_idx] then
util.arrayAppend(all_results[result_word_idx], results)
else
table.insert(all_results, results)
end
end
if result_word_idx ~= #words then
logger.warn("sdcv returned a different number of results than the number of words")
end
end
end
if #all_results ~= #words then
logger.warn("sdcv returned a different number of results than the number of words")
end
return lookup_cancelled, all_results
end

Expand Down