[Calibre] React to SEND_BOOK_METADATA opcode (#13920)

Fixes #12922.
This commit is contained in:
Emre
2025-06-17 12:27:11 +02:00
committed by GitHub
parent 4dc4339bc7
commit 72573fb393
2 changed files with 21 additions and 2 deletions

View File

@@ -134,12 +134,19 @@ end
-- add a book to our books table
function CalibreMetadata:addBook(book)
-- prevent duplicate entries
if not self:updateBook(book) then
table.insert(self.books, #self.books + 1, slim(book))
end
end
-- update a book in our books table if exists
function CalibreMetadata:updateBook(book)
local _, index = self:getBookUuid(book.lpath)
if index then
self.books[index] = slim(book)
else
table.insert(self.books, #self.books + 1, slim(book))
return true
end
return false
end
-- remove a book from our books table

View File

@@ -430,6 +430,8 @@ function CalibreWireless:onReceiveJSON(data)
self:getBookCount(arg)
elseif opcode == OPCODES.SEND_BOOK then
self:sendBook(arg)
elseif opcode == OPCODES.SEND_BOOK_METADATA then
self:sendBookMetadata(arg)
elseif opcode == OPCODES.DELETE_BOOK then
self:deleteBook(arg)
elseif opcode == OPCODES.GET_BOOK_FILE_SEGMENT then
@@ -707,6 +709,16 @@ function CalibreWireless:sendBook(arg)
end
end
function CalibreWireless:sendBookMetadata(arg)
logger.dbg("SEND_BOOK_METADATA", arg)
CalibreMetadata:updateBook(arg.data)
if (arg.index + 1) == arg.count then
CalibreMetadata:saveBookList()
end
end
function CalibreWireless:deleteBook(arg)
logger.dbg("DELETE_BOOK", arg)
self:sendJsonData('OK', {})