diff --git a/src/calibre/db/backend.py b/src/calibre/db/backend.py index da9f079675..76cf7168b9 100644 --- a/src/calibre/db/backend.py +++ b/src/calibre/db/backend.py @@ -69,7 +69,7 @@ class TrashEntry: book_id: int title: str author: str - book_dir: str + cover_path: str mtime: float formats: Sequence[str] = () @@ -1968,7 +1968,7 @@ class DB: except Exception: continue opf = OPF(os.path.join(x.path, 'metadata.opf'), basedir=x.path) - books.append(TrashEntry(book_id, opf.title or unknown, (opf.authors or au)[0], x.path, mtime)) + books.append(TrashEntry(book_id, opf.title or unknown, (opf.authors or au)[0], os.path.join(x.path, COVER_FILE_NAME), mtime)) base = os.path.join(self.trash_dir, 'f') um = {'title': unknown, 'authors': au} for x in os.scandir(base): @@ -1988,7 +1988,7 @@ class DB: else: formats.add(f.name.upper()) if formats: - files.append(TrashEntry(book_id, metadata.get('title') or unknown, (metadata.get('authors') or au)[0], x.path, mtime, tuple(formats))) + files.append(TrashEntry(book_id, metadata.get('title') or unknown, (metadata.get('authors') or au)[0], '', mtime, tuple(formats))) return books, files def remove_books(self, path_map, permanent=False): diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 3727840c92..2160a92ede 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -2665,7 +2665,13 @@ class Cache: @read_api def list_trash_entries(self): - return self.backend.list_trash_entries() + books, formats = self.backend.list_trash_entries() + ff = [] + for e in formats: + if self._has_id(e.book_id): + ff.append(e) + e.cover_path = self.format_abspath(e.book_id, '__COVER_INTERNAL__') + return books, formats @write_api def move_book_from_trash(self, book_id): diff --git a/src/calibre/db/tests/add_remove.py b/src/calibre/db/tests/add_remove.py index f0dba2f2b1..935ba2f8d2 100644 --- a/src/calibre/db/tests/add_remove.py +++ b/src/calibre/db/tests/add_remove.py @@ -281,11 +281,11 @@ class AddRemoveTest(BaseTest): self.assertEqual(len(b), 1) self.assertEqual(len(f), 0) self.assertEqual(b[0].title, title) - self.assertTrue(os.path.exists(os.path.join(b[0].book_dir, 'metadata.opf'))) + self.assertTrue(os.path.exists(b[0].cover_path)) cache.backend.expire_old_trash(1000) - self.assertTrue(os.path.exists(os.path.join(b[0].book_dir, 'metadata.opf'))) + self.assertTrue(os.path.exists(b[0].cover_path)) cache.backend.expire_old_trash(0) - self.assertFalse(os.path.exists(os.path.join(b[0].book_dir, 'metadata.opf'))) + self.assertFalse(os.path.exists(b[0].cover_path)) # test restoring of books cache = self.init_cache(cl2)