Quote:
Originally Posted by davidfor
I checked a few books that I have like this. They all show the covers on my devices.
This can work, but, it depends on how old the backup was. And what changed in between. I wouldn't expect the ids for covers for purchased books to change, but, it isn't something I have really checked.
The book is described by the row in the content table with "contentType=6". The column "Title" is what I usually use when searching for a book. The "ImageId" is used as part of the filename of the covers. You will need to do a search to find the actual file. My Kobo Utilities plugin does have a function to open the directory holding the cover image for any book on the device. You can use this to check if the cover image is on the disk when it disappears, and what it now looks like.
If the database isn't being corrupted, then I don't know. If it was something that happened after a while of use, I would suspect it was memory leak or other bug triggering the loss. But, unless the database is being updated, the image id should be recovered after the power cycle. Otherwise, something would have to be removing the actual file.
|
Well, finally I have solved the problem with the covers

.
I expect it will survive after next syncs (I have done one, without losing the covers ...).
Basically, it seems that when a book (edition?) is not longer available in the kobo store, an update is done to the database (KoboReader.sqlite) during a sync, and the pointer to the cover is changed with and
id that does not exist. Nevertheless, the image with the previous cover still exists with the
old id within the folder
.kobo-images.
I have opened the database of an old backup which has not the problem and looking for the book title in the field
"Title" (NOT in the field
"BookTitle", this was my mistake), I identified the old cover id (in the field
"ImageId") and copied it to the actual database ImageId field for the corresponding book (looking for the title again in the field
Title, not
BookTitle). By the way, check that the entry you are changing has a field
contentType=6. Other entries of the same book has different numbers (e.g. 9 or 899).
Saving the changes, I have now the covers still "alive" after some power cycles
As always, if someone try this, first make a backup of the content of the memory or at least of the database KoboReader.sqlite.
And finally, thank you to davidfor for his hints to solve the problem.