Guru
Posts: 791
Karma: 1538394
Join Date: Sep 2013
Device: Kobo Sage
|
Kobo Utilities: Update ToC Errors
I'm having trouble using Kobo Utilities' Update ToC abilities with 3 of my epubs (going to my Kobo Forma as a kepub). I've tried many things and am to the point where I've used Calibre's Edit ToC function, removed the entire ToC entries, used the Generate ToC From All Headings (Removing Duplicates) function to repopulate it, removing everything but the actual chapters, adding my own entries to the Cover and the Jacket, and then indenting the Chapters under their Parts (I've also made the Part names unique and changed their locations to the first bits of text in each case). Here's what one of those ToCs currently looks like:
No matter what I do, when I try to Update the ToC to the Kobo, I always get the following error:
Quote:
calibre, version 5.34.0
ERROR: Unhandled exception: <b>ConstraintError</b>:ConstraintError: UNIQUE constraint failed: content.ContentID
calibre 5.34 [64bit] embedded-python: True is64bit: True
Windows-10-10.0.19041 Windows ('64bit', 'WindowsPE')
('Windows', '10', '10.0.19041')
Python 3.8.5
Windows: ('10', '10.0.19041', '', 'Multiprocessor Free')
Interface language: None
Successfully initialized third party plugins: DeDRM (7, 1, 0) && GetFileName (0, 1, 1) && Goodreads (1, 5, 1) && Kobo Utilities (2, 14, 1) && KoboTouchExtended (3, 5, 4) && Modify ePub (1, 6, 3) && Quality Check (1, 11, 4)
Traceback (most recent call last):
File "calibre_plugins.koboutilities.action", line 5361, in update_book_toc_on_device
File "calibre_plugins.koboutilities.action", line 5789, in update_device_toc_for_books
File "calibre_plugins.koboutilities.action", line 5813, in update_device_toc_for_book
File "calibre_plugins.koboutilities.action", line 5926, in addChapterToDatabase
apsw.ConstraintError: ConstraintError: UNIQUE constraint failed: content.ContentID
|
I've had these kinds of errors before. But, I've always been able to find the non-unique thing that was causing it. This time, I can't. As far as I can tell, all the labels for the ToC elements are unique and all the places they point are as well. In order, the above labels point to:
Cover > OEBPS/titlepage.xhtml
Review > OEBPS/jacket.xhtml
Part I - Things Slow Down > OEBPS/part-001.xhtml#toc_2
Chapter 1 > OEBPS/part-001-chapter-001.xhtml
...
all the other chapters and parts change in the obvious way by having unique chapter and part strings.
The relevant part of the calibre debug log looks like:
Code:
DEBUG: 31.1 update_button_clicked - ids_to_sync= [1462]
DEBUG: 32.7 update_book_toc_on_device - len(update_books)=1
DEBUG: 32.7 update_book_toc_on_device - update_books=1
DEBUG: 32.7 update_book_toc_on_device - filtered update_books=1
DEBUG: 32.7 version=Kobo Utilities v2.14.1
DEBUG: 32.7 update_device_toc_for_books - books= [{'good': False, 'calibre_id': 1462, 'title': 'Immortal and the Island of Impossible Things', 'author': 'Gene Doucette', 'author_sort': 'Doucette, Gene', 'comment': 'Chapters need to be updated in Kobo eReader database', 'url': '', 'added': False, 'library_chapters': [{'title': 'Cover', 'path': 'titlepage.xhtml-1', 'toc_depth': 1, 'added': False}, {'title': 'Review', 'path': 'jacket.xhtml-1', 'toc_depth': 1, 'added': False}, {'title': 'Part I - Things Slow Down', 'path': 'part-001.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 1', 'path': 'part-001-chapter-001.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 2', 'path': 'part-001-chapter-002.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 3', 'path': 'part-001-chapter-003.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 4', 'path': 'part-001-chapter-004.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 5', 'path': 'part-001-chapter-005.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 6', 'path': 'part-001-chapter-006.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Part II - There and Back Again', 'path': 'part-002.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 7', 'path': 'part-002-chapter-007.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 8', 'path': 'part-002-chapter-008.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 9', 'path': 'part-002-chapter-009.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 10', 'path': 'part-002-chapter-010.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 11', 'path': 'part-002-chapter-011.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 12', 'path': 'part-002-chapter-012.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 13', 'path': 'part-002-chapter-013.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Part III - The Priestess', 'path': 'part-003.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 14', 'path': 'part-003-chapter-014.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 15', 'path': 'part-003-chapter-015.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 16', 'path': 'part-003-chapter-016.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 17', 'path': 'part-003-chapter-017.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 18', 'path': 'part-003-chapter-018.xhtml-2', 'toc_depth': 2, 'added': False}], 'kobo_chapters': [{'title': 'Cover', 'path': 'titlepage.xhtml-1', 'toc_depth': 1, 'added': False}, {'title': 'Review', 'path': 'jacket.xhtml-1', 'toc_depth': 1, 'added': False}, {'title': 'Part I - Things Slow Down', 'path': 'part-001.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 1', 'path': 'part-001-chapter-001.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 2', 'path': 'part-001-chapter-002.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 3', 'path': 'part-001-chapter-003.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 4', 'path': 'part-001-chapter-004.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 5', 'path': 'part-001-chapter-005.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 6', 'path': 'part-001-chapter-006.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Part II - There and Back Again', 'path': 'part-002.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 7', 'path': 'part-002-chapter-007.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 8', 'path': 'part-002-chapter-008.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 9', 'path': 'part-002-chapter-009.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 10', 'path': 'part-002-chapter-010.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 11', 'path': 'part-002-chapter-011.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 12', 'path': 'part-002-chapter-012.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 13', 'path': 'part-002-chapter-013.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Part III - The Priestess', 'path': 'part-003.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 14', 'path': 'part-003-chapter-014.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 15', 'path': 'part-003-chapter-015.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 16', 'path': 'part-003-chapter-016.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 17', 'path': 'part-003-chapter-017.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 18', 'path': 'part-003-chapter-018.xhtml-2', 'toc_depth': 2, 'added': False}], 'kobo_database_chapters': [{'chapterContentId': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml-1', 'VolumeIndex': 0, 'title': 'Cover', 'path': 'titlepage.xhtml-1', 'adobe_location': None, 'ChapterIDBookmarked': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml', 'toc_depth': 1, 'added': True}, {'chapterContentId': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml-1', 'VolumeIndex': 1, 'title': 'Review', 'path': 'jacket.xhtml-1', 'adobe_location': None, 'ChapterIDBookmarked': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml', 'toc_depth': 1, 'added': True}, {'chapterContentId': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part-001', 'VolumeIndex': 2, 'title': 'Part I - Things Slow Down', 'path': 'part-001', 'adobe_location': None, 'ChapterIDBookmarked': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part', 'toc_depth': 1, 'added': True}], 'kobo_format_status': True, 'kobo_database_status': False, 'can_update_toc': True, 'ContentID': 'file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub', 'kobo_format': 'KEPUB', 'library_format': 'EPUB', 'library_opf_name': 'OEBPS/volume.opf', 'library_opf_dir': 'OEBPS', 'library_manifest': [{'path': 'titlepage.xhtml', 'file_size': 842, 'name': 'OEBPS/titlepage.xhtml'}, {'path': 'jacket.xhtml', 'file_size': 5687, 'name': 'OEBPS/jacket.xhtml'}, {'path': 'cover.xhtml', 'file_size': 1133, 'name': 'OEBPS/cover.xhtml'}, {'path': 'title-page.xhtml', 'file_size': 1297, 'name': 'OEBPS/title-page.xhtml'}, {'path': 'copyright.xhtml', 'file_size': 2543, 'name': 'OEBPS/copyright.xhtml'}, {'path': 'epigraph.xhtml', 'file_size': 1862, 'name': 'OEBPS/epigraph.xhtml'}, {'path': 'contents.xhtml', 'file_size': 8919, 'name': 'OEBPS/contents.xhtml'}, {'path': 'part-001.xhtml', 'file_size': 1333, 'name': 'OEBPS/part-001.xhtml'}, {'path': 'part-001-chapter-001.xhtml', 'file_size': 42848, 'name': 'OEBPS/part-001-chapter-001.xhtml'}, {'path': 'part-001-chapter-002.xhtml', 'file_size': 42602, 'name': 'OEBPS/part-001-chapter-002.xhtml'}, {'path': 'part-001-chapter-003.xhtml', 'file_size': 59382, 'name': 'OEBPS/part-001-chapter-003.xhtml'}, {'path': 'part-001-chapter-004.xhtml', 'file_size': 54956, 'name': 'OEBPS/part-001-chapter-004.xhtml'}, {'path': 'part-001-chapter-005.xhtml', 'file_size': 53079, 'name': 'OEBPS/part-001-chapter-005.xhtml'}, {'path': 'part-001-chapter-006.xhtml', 'file_size': 20019, 'name': 'OEBPS/part-001-chapter-006.xhtml'}, {'path': 'part-002.xhtml', 'file_size': 1338, 'name': 'OEBPS/part-002.xhtml'}, {'path': 'part-002-chapter-007.xhtml', 'file_size': 59342, 'name': 'OEBPS/part-002-chapter-007.xhtml'}, {'path': 'part-002-chapter-008.xhtml', 'file_size': 49634, 'name': 'OEBPS/part-002-chapter-008.xhtml'}, {'path': 'part-002-chapter-009.xhtml', 'file_size': 29194, 'name': 'OEBPS/part-002-chapter-009.xhtml'}, {'path': 'part-002-chapter-010.xhtml', 'file_size': 36479, 'name': 'OEBPS/part-002-chapter-010.xhtml'}, {'path': 'part-002-chapter-011.xhtml', 'file_size': 43436, 'name': 'OEBPS/part-002-chapter-011.xhtml'}, {'path': 'part-002-chapter-012.xhtml', 'file_size': 62009, 'name': 'OEBPS/part-002-chapter-012.xhtml'}, {'path': 'part-002-chapter-013.xhtml', 'file_size': 41559, 'name': 'OEBPS/part-002-chapter-013.xhtml'}, {'path': 'part-003.xhtml', 'file_size': 1332, 'name': 'OEBPS/part-003.xhtml'}, {'path': 'part-003-chapter-014.xhtml', 'file_size': 37636, 'name': 'OEBPS/part-003-chapter-014.xhtml'}, {'path': 'part-003-chapter-015.xhtml', 'file_size': 52748, 'name': 'OEBPS/part-003-chapter-015.xhtml'}, {'path': 'part-003-chapter-016.xhtml', 'file_size': 36516, 'name': 'OEBPS/part-003-chapter-016.xhtml'}, {'path': 'part-003-chapter-017.xhtml', 'file_size': 37353, 'name': 'OEBPS/part-003-chapter-017.xhtml'}, {'path': 'part-003-chapter-018.xhtml', 'file_size': 11591, 'name': 'OEBPS/part-003-chapter-018.xhtml'}, {'path': 'part-003-about-the-author.xhtml', 'file_size': 6056, 'name': 'OEBPS/part-003-about-the-author.xhtml'}, {'path': 'part-003-also-by-gene-doucette.xhtml', 'file_size': 41912, 'name': 'OEBPS/part-003-also-by-gene-doucette.xhtml'}], 'library_container': <calibre.ebooks.oeb.polish.container.EpubContainer object at 0x00000272CF957100>, 'kobo_opf_name': 'OEBPS/volume.opf', 'kobo_opf_dir': 'OEBPS', 'kobo_manifest': [{'path': 'titlepage.xhtml', 'file_size': 848, 'name': 'OEBPS/titlepage.xhtml'}, {'path': 'jacket.xhtml', 'file_size': 7991, 'name': 'OEBPS/jacket.xhtml'}, {'path': 'cover.xhtml', 'file_size': 1305, 'name': 'OEBPS/cover.xhtml'}, {'path': 'title-page.xhtml', 'file_size': 1446, 'name': 'OEBPS/title-page.xhtml'}, {'path': 'copyright.xhtml', 'file_size': 2963, 'name': 'OEBPS/copyright.xhtml'}, {'path': 'epigraph.xhtml', 'file_size': 2102, 'name': 'OEBPS/epigraph.xhtml'}, {'path': 'contents.xhtml', 'file_size': 10149, 'name': 'OEBPS/contents.xhtml'}, {'path': 'part-001.xhtml', 'file_size': 1482, 'name': 'OEBPS/part-001.xhtml'}, {'path': 'part-001-chapter-001.xhtml', 'file_size': 63920, 'name': 'OEBPS/part-001-chapter-001.xhtml'}, {'path': 'part-001-chapter-002.xhtml', 'file_size': 68480, 'name': 'OEBPS/part-001-chapter-002.xhtml'}, {'path': 'part-001-chapter-003.xhtml', 'file_size': 94826, 'name': 'OEBPS/part-001-chapter-003.xhtml'}, {'path': 'part-001-chapter-004.xhtml', 'file_size': 89265, 'name': 'OEBPS/part-001-chapter-004.xhtml'}, {'path': 'part-001-chapter-005.xhtml', 'file_size': 85258, 'name': 'OEBPS/part-001-chapter-005.xhtml'}, {'path': 'part-001-chapter-006.xhtml', 'file_size': 30822, 'name': 'OEBPS/part-001-chapter-006.xhtml'}, {'path': 'part-002.xhtml', 'file_size': 1487, 'name': 'OEBPS/part-002.xhtml'}, {'path': 'part-002-chapter-007.xhtml', 'file_size': 92908, 'name': 'OEBPS/part-002-chapter-007.xhtml'}, {'path': 'part-002-chapter-008.xhtml', 'file_size': 79298, 'name': 'OEBPS/part-002-chapter-008.xhtml'}, {'path': 'part-002-chapter-009.xhtml', 'file_size': 46283, 'name': 'OEBPS/part-002-chapter-009.xhtml'}, {'path': 'part-002-chapter-010.xhtml', 'file_size': 58518, 'name': 'OEBPS/part-002-chapter-010.xhtml'}, {'path': 'part-002-chapter-011.xhtml', 'file_size': 70309, 'name': 'OEBPS/part-002-chapter-011.xhtml'}, {'path': 'part-002-chapter-012.xhtml', 'file_size': 101615, 'name': 'OEBPS/part-002-chapter-012.xhtml'}, {'path': 'part-002-chapter-013.xhtml', 'file_size': 65236, 'name': 'OEBPS/part-002-chapter-013.xhtml'}, {'path': 'part-003.xhtml', 'file_size': 1481, 'name': 'OEBPS/part-003.xhtml'}, {'path': 'part-003-chapter-014.xhtml', 'file_size': 59786, 'name': 'OEBPS/part-003-chapter-014.xhtml'}, {'path': 'part-003-chapter-015.xhtml', 'file_size': 86375, 'name': 'OEBPS/part-003-chapter-015.xhtml'}, {'path': 'part-003-chapter-016.xhtml', 'file_size': 62098, 'name': 'OEBPS/part-003-chapter-016.xhtml'}, {'path': 'part-003-chapter-017.xhtml', 'file_size': 59505, 'name': 'OEBPS/part-003-chapter-017.xhtml'}, {'path': 'part-003-chapter-018.xhtml', 'file_size': 19394, 'name': 'OEBPS/part-003-chapter-018.xhtml'}, {'path': 'part-003-about-the-author.xhtml', 'file_size': 8931, 'name': 'OEBPS/part-003-about-the-author.xhtml'}, {'path': 'part-003-also-by-gene-doucette.xhtml', 'file_size': 55439, 'name': 'OEBPS/part-003-also-by-gene-doucette.xhtml'}], 'kobo_container': <calibre.ebooks.oeb.polish.container.EpubContainer object at 0x00000272CF957070>, 'kobo_database_manifest': [], 'icon': 'toc.png'}]
DEBUG: 32.9 update_device_toc_for_books - book= {'good': False, 'calibre_id': 1462, 'title': 'Immortal and the Island of Impossible Things', 'author': 'Gene Doucette', 'author_sort': 'Doucette, Gene', 'comment': 'Chapters need to be updated in Kobo eReader database', 'url': '', 'added': False, 'library_chapters': [{'title': 'Cover', 'path': 'titlepage.xhtml-1', 'toc_depth': 1, 'added': False}, {'title': 'Review', 'path': 'jacket.xhtml-1', 'toc_depth': 1, 'added': False}, {'title': 'Part I - Things Slow Down', 'path': 'part-001.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 1', 'path': 'part-001-chapter-001.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 2', 'path': 'part-001-chapter-002.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 3', 'path': 'part-001-chapter-003.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 4', 'path': 'part-001-chapter-004.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 5', 'path': 'part-001-chapter-005.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 6', 'path': 'part-001-chapter-006.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Part II - There and Back Again', 'path': 'part-002.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 7', 'path': 'part-002-chapter-007.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 8', 'path': 'part-002-chapter-008.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 9', 'path': 'part-002-chapter-009.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 10', 'path': 'part-002-chapter-010.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 11', 'path': 'part-002-chapter-011.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 12', 'path': 'part-002-chapter-012.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 13', 'path': 'part-002-chapter-013.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Part III - The Priestess', 'path': 'part-003.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 14', 'path': 'part-003-chapter-014.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 15', 'path': 'part-003-chapter-015.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 16', 'path': 'part-003-chapter-016.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 17', 'path': 'part-003-chapter-017.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 18', 'path': 'part-003-chapter-018.xhtml-2', 'toc_depth': 2, 'added': False}], 'kobo_chapters': [{'title': 'Cover', 'path': 'titlepage.xhtml-1', 'toc_depth': 1, 'added': False}, {'title': 'Review', 'path': 'jacket.xhtml-1', 'toc_depth': 1, 'added': False}, {'title': 'Part I - Things Slow Down', 'path': 'part-001.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 1', 'path': 'part-001-chapter-001.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 2', 'path': 'part-001-chapter-002.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 3', 'path': 'part-001-chapter-003.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 4', 'path': 'part-001-chapter-004.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 5', 'path': 'part-001-chapter-005.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 6', 'path': 'part-001-chapter-006.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Part II - There and Back Again', 'path': 'part-002.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 7', 'path': 'part-002-chapter-007.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 8', 'path': 'part-002-chapter-008.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 9', 'path': 'part-002-chapter-009.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 10', 'path': 'part-002-chapter-010.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 11', 'path': 'part-002-chapter-011.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 12', 'path': 'part-002-chapter-012.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 13', 'path': 'part-002-chapter-013.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Part III - The Priestess', 'path': 'part-003.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}, {'title': 'Chapter 14', 'path': 'part-003-chapter-014.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 15', 'path': 'part-003-chapter-015.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 16', 'path': 'part-003-chapter-016.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 17', 'path': 'part-003-chapter-017.xhtml-2', 'toc_depth': 2, 'added': False}, {'title': 'Chapter 18', 'path': 'part-003-chapter-018.xhtml-2', 'toc_depth': 2, 'added': False}], 'kobo_database_chapters': [{'chapterContentId': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml-1', 'VolumeIndex': 0, 'title': 'Cover', 'path': 'titlepage.xhtml-1', 'adobe_location': None, 'ChapterIDBookmarked': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml', 'toc_depth': 1, 'added': True}, {'chapterContentId': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml-1', 'VolumeIndex': 1, 'title': 'Review', 'path': 'jacket.xhtml-1', 'adobe_location': None, 'ChapterIDBookmarked': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml', 'toc_depth': 1, 'added': True}, {'chapterContentId': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part-001', 'VolumeIndex': 2, 'title': 'Part I - Things Slow Down', 'path': 'part-001', 'adobe_location': None, 'ChapterIDBookmarked': '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part', 'toc_depth': 1, 'added': True}], 'kobo_format_status': True, 'kobo_database_status': False, 'can_update_toc': True, 'ContentID': 'file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub', 'kobo_format': 'KEPUB', 'library_format': 'EPUB', 'library_opf_name': 'OEBPS/volume.opf', 'library_opf_dir': 'OEBPS', 'library_manifest': [{'path': 'titlepage.xhtml', 'file_size': 842, 'name': 'OEBPS/titlepage.xhtml'}, {'path': 'jacket.xhtml', 'file_size': 5687, 'name': 'OEBPS/jacket.xhtml'}, {'path': 'cover.xhtml', 'file_size': 1133, 'name': 'OEBPS/cover.xhtml'}, {'path': 'title-page.xhtml', 'file_size': 1297, 'name': 'OEBPS/title-page.xhtml'}, {'path': 'copyright.xhtml', 'file_size': 2543, 'name': 'OEBPS/copyright.xhtml'}, {'path': 'epigraph.xhtml', 'file_size': 1862, 'name': 'OEBPS/epigraph.xhtml'}, {'path': 'contents.xhtml', 'file_size': 8919, 'name': 'OEBPS/contents.xhtml'}, {'path': 'part-001.xhtml', 'file_size': 1333, 'name': 'OEBPS/part-001.xhtml'}, {'path': 'part-001-chapter-001.xhtml', 'file_size': 42848, 'name': 'OEBPS/part-001-chapter-001.xhtml'}, {'path': 'part-001-chapter-002.xhtml', 'file_size': 42602, 'name': 'OEBPS/part-001-chapter-002.xhtml'}, {'path': 'part-001-chapter-003.xhtml', 'file_size': 59382, 'name': 'OEBPS/part-001-chapter-003.xhtml'}, {'path': 'part-001-chapter-004.xhtml', 'file_size': 54956, 'name': 'OEBPS/part-001-chapter-004.xhtml'}, {'path': 'part-001-chapter-005.xhtml', 'file_size': 53079, 'name': 'OEBPS/part-001-chapter-005.xhtml'}, {'path': 'part-001-chapter-006.xhtml', 'file_size': 20019, 'name': 'OEBPS/part-001-chapter-006.xhtml'}, {'path': 'part-002.xhtml', 'file_size': 1338, 'name': 'OEBPS/part-002.xhtml'}, {'path': 'part-002-chapter-007.xhtml', 'file_size': 59342, 'name': 'OEBPS/part-002-chapter-007.xhtml'}, {'path': 'part-002-chapter-008.xhtml', 'file_size': 49634, 'name': 'OEBPS/part-002-chapter-008.xhtml'}, {'path': 'part-002-chapter-009.xhtml', 'file_size': 29194, 'name': 'OEBPS/part-002-chapter-009.xhtml'}, {'path': 'part-002-chapter-010.xhtml', 'file_size': 36479, 'name': 'OEBPS/part-002-chapter-010.xhtml'}, {'path': 'part-002-chapter-011.xhtml', 'file_size': 43436, 'name': 'OEBPS/part-002-chapter-011.xhtml'}, {'path': 'part-002-chapter-012.xhtml', 'file_size': 62009, 'name': 'OEBPS/part-002-chapter-012.xhtml'}, {'path': 'part-002-chapter-013.xhtml', 'file_size': 41559, 'name': 'OEBPS/part-002-chapter-013.xhtml'}, {'path': 'part-003.xhtml', 'file_size': 1332, 'name': 'OEBPS/part-003.xhtml'}, {'path': 'part-003-chapter-014.xhtml', 'file_size': 37636, 'name': 'OEBPS/part-003-chapter-014.xhtml'}, {'path': 'part-003-chapter-015.xhtml', 'file_size': 52748, 'name': 'OEBPS/part-003-chapter-015.xhtml'}, {'path': 'part-003-chapter-016.xhtml', 'file_size': 36516, 'name': 'OEBPS/part-003-chapter-016.xhtml'}, {'path': 'part-003-chapter-017.xhtml', 'file_size': 37353, 'name': 'OEBPS/part-003-chapter-017.xhtml'}, {'path': 'part-003-chapter-018.xhtml', 'file_size': 11591, 'name': 'OEBPS/part-003-chapter-018.xhtml'}, {'path': 'part-003-about-the-author.xhtml', 'file_size': 6056, 'name': 'OEBPS/part-003-about-the-author.xhtml'}, {'path': 'part-003-also-by-gene-doucette.xhtml', 'file_size': 41912, 'name': 'OEBPS/part-003-also-by-gene-doucette.xhtml'}], 'library_container': <calibre.ebooks.oeb.polish.container.EpubContainer object at 0x00000272CF957100>, 'kobo_opf_name': 'OEBPS/volume.opf', 'kobo_opf_dir': 'OEBPS', 'kobo_manifest': [{'path': 'titlepage.xhtml', 'file_size': 848, 'name': 'OEBPS/titlepage.xhtml'}, {'path': 'jacket.xhtml', 'file_size': 7991, 'name': 'OEBPS/jacket.xhtml'}, {'path': 'cover.xhtml', 'file_size': 1305, 'name': 'OEBPS/cover.xhtml'}, {'path': 'title-page.xhtml', 'file_size': 1446, 'name': 'OEBPS/title-page.xhtml'}, {'path': 'copyright.xhtml', 'file_size': 2963, 'name': 'OEBPS/copyright.xhtml'}, {'path': 'epigraph.xhtml', 'file_size': 2102, 'name': 'OEBPS/epigraph.xhtml'}, {'path': 'contents.xhtml', 'file_size': 10149, 'name': 'OEBPS/contents.xhtml'}, {'path': 'part-001.xhtml', 'file_size': 1482, 'name': 'OEBPS/part-001.xhtml'}, {'path': 'part-001-chapter-001.xhtml', 'file_size': 63920, 'name': 'OEBPS/part-001-chapter-001.xhtml'}, {'path': 'part-001-chapter-002.xhtml', 'file_size': 68480, 'name': 'OEBPS/part-001-chapter-002.xhtml'}, {'path': 'part-001-chapter-003.xhtml', 'file_size': 94826, 'name': 'OEBPS/part-001-chapter-003.xhtml'}, {'path': 'part-001-chapter-004.xhtml', 'file_size': 89265, 'name': 'OEBPS/part-001-chapter-004.xhtml'}, {'path': 'part-001-chapter-005.xhtml', 'file_size': 85258, 'name': 'OEBPS/part-001-chapter-005.xhtml'}, {'path': 'part-001-chapter-006.xhtml', 'file_size': 30822, 'name': 'OEBPS/part-001-chapter-006.xhtml'}, {'path': 'part-002.xhtml', 'file_size': 1487, 'name': 'OEBPS/part-002.xhtml'}, {'path': 'part-002-chapter-007.xhtml', 'file_size': 92908, 'name': 'OEBPS/part-002-chapter-007.xhtml'}, {'path': 'part-002-chapter-008.xhtml', 'file_size': 79298, 'name': 'OEBPS/part-002-chapter-008.xhtml'}, {'path': 'part-002-chapter-009.xhtml', 'file_size': 46283, 'name': 'OEBPS/part-002-chapter-009.xhtml'}, {'path': 'part-002-chapter-010.xhtml', 'file_size': 58518, 'name': 'OEBPS/part-002-chapter-010.xhtml'}, {'path': 'part-002-chapter-011.xhtml', 'file_size': 70309, 'name': 'OEBPS/part-002-chapter-011.xhtml'}, {'path': 'part-002-chapter-012.xhtml', 'file_size': 101615, 'name': 'OEBPS/part-002-chapter-012.xhtml'}, {'path': 'part-002-chapter-013.xhtml', 'file_size': 65236, 'name': 'OEBPS/part-002-chapter-013.xhtml'}, {'path': 'part-003.xhtml', 'file_size': 1481, 'name': 'OEBPS/part-003.xhtml'}, {'path': 'part-003-chapter-014.xhtml', 'file_size': 59786, 'name': 'OEBPS/part-003-chapter-014.xhtml'}, {'path': 'part-003-chapter-015.xhtml', 'file_size': 86375, 'name': 'OEBPS/part-003-chapter-015.xhtml'}, {'path': 'part-003-chapter-016.xhtml', 'file_size': 62098, 'name': 'OEBPS/part-003-chapter-016.xhtml'}, {'path': 'part-003-chapter-017.xhtml', 'file_size': 59505, 'name': 'OEBPS/part-003-chapter-017.xhtml'}, {'path': 'part-003-chapter-018.xhtml', 'file_size': 19394, 'name': 'OEBPS/part-003-chapter-018.xhtml'}, {'path': 'part-003-about-the-author.xhtml', 'file_size': 8931, 'name': 'OEBPS/part-003-about-the-author.xhtml'}, {'path': 'part-003-also-by-gene-doucette.xhtml', 'file_size': 55439, 'name': 'OEBPS/part-003-also-by-gene-doucette.xhtml'}], 'kobo_container': <calibre.ebooks.oeb.polish.container.EpubContainer object at 0x00000272CF957070>, 'kobo_database_manifest': [], 'icon': 'toc.png'}
DEBUG: 32.9 update_device_toc_for_books - ContentID= file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub
DEBUG: 32.9 remove_all_toc_entries - contentId= file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub
DEBUG: 33.0 update_device_toc_for_book - bookTitle=Immortal and the Island of Impossible Things, len(book['library_chapters'])=23
DEBUG: 33.0 update_device_toc_for_book - chapter= {'title': 'Cover', 'path': 'titlepage.xhtml-1', 'toc_depth': 1, 'added': False}
DEBUG: 33.0 update_device_toc_for_book - chapterContentId= file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml-1
DEBUG: 33.0 getDatabaseChapterId - chapterContentId=None
DEBUG: 33.0 update_device_toc_for_book - has_chapter= False
DEBUG: 33.0 addChapterToDatabase - regex matches= ('/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml-1', '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml')
DEBUG: 33.0 addChapterToDatabase - insertContentData= ('/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml-1', 899, 'application/x-kobo-epub+zip', 'file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub', 'Immortal and the Island of Impossible Things', 'Cover', None, 0, '', 1, '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!titlepage.xhtml')
DEBUG: 33.0 update_device_toc_for_book - chapter= {'title': 'Review', 'path': 'jacket.xhtml-1', 'toc_depth': 1, 'added': False}
DEBUG: 33.0 update_device_toc_for_book - chapterContentId= file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml-1
DEBUG: 33.0 getDatabaseChapterId - chapterContentId=None
DEBUG: 33.0 update_device_toc_for_book - has_chapter= False
DEBUG: 33.0 addChapterToDatabase - regex matches= ('/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml-1', '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml')
DEBUG: 33.0 addChapterToDatabase - insertContentData= ('/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml-1', 899, 'application/x-kobo-epub+zip', 'file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub', 'Immortal and the Island of Impossible Things', 'Review', None, 1, '', 1, '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!jacket.xhtml')
DEBUG: 33.0 update_device_toc_for_book - chapter= {'title': 'Part I - Things Slow Down', 'path': 'part-001.xhtml#toc_2-1', 'toc_depth': 1, 'fragment': 'toc_2', 'added': False}
DEBUG: 33.0 update_device_toc_for_book - chapterContentId= file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part-001.xhtml#toc_2-1
DEBUG: 33.1 getDatabaseChapterId - chapterContentId=None
DEBUG: 33.1 update_device_toc_for_book - has_chapter= False
DEBUG: 33.1 addChapterToDatabase - regex matches= ('/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part-001', '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part')
DEBUG: 33.1 addChapterToDatabase - insertContentData= ('/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part-001', 899, 'application/x-kobo-epub+zip', 'file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub', 'Immortal and the Island of Impossible Things', 'Part I - Things Slow Down', None, 2, '', 1, '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part')
DEBUG: 33.1 update_device_toc_for_book - chapter= {'title': 'Chapter 1', 'path': 'part-001-chapter-001.xhtml-2', 'toc_depth': 2, 'added': False}
DEBUG: 33.1 update_device_toc_for_book - chapterContentId= file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part-001-chapter-001.xhtml-2
DEBUG: 33.1 getDatabaseChapterId - chapterContentId=None
DEBUG: 33.1 update_device_toc_for_book - has_chapter= False
DEBUG: 33.1 addChapterToDatabase - regex matches= ('/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part-001', '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part')
DEBUG: 33.1 addChapterToDatabase - insertContentData= ('/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part-001', 899, 'application/x-kobo-epub+zip', 'file:///mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub', 'Immortal and the Island of Impossible Things', 'Chapter 1', None, 3, '', 2, '/mnt/onboard/Doucette, Gene/Immortal and the Island of Impossible Things - Gene Doucette.kepub.epub!OEBPS!part')
calibre 5.34 [64bit] embedded-python: True is64bit: True
Windows-10-10.0.19041 Windows ('64bit', 'WindowsPE')
('Windows', '10', '10.0.19041')
Python 3.8.5
Windows: ('10', '10.0.19041', '', 'Multiprocessor Free')
Interface language: None
Successfully initialized third party plugins: DeDRM (7, 1, 0) && GetFileName (0, 1, 1) && Goodreads (1, 5, 1) && Kobo Utilities (2, 14, 1) && KoboTouchExtended (3, 5, 4) && Modify ePub (1, 6, 3) && Quality Check (1, 11, 4)
Traceback (most recent call last):
File "calibre_plugins.koboutilities.action", line 5361, in update_book_toc_on_device
File "calibre_plugins.koboutilities.action", line 5789, in update_device_toc_for_books
File "calibre_plugins.koboutilities.action", line 5813, in update_device_toc_for_book
File "calibre_plugins.koboutilities.action", line 5926, in addChapterToDatabase
apsw.ConstraintError: ConstraintError: UNIQUE constraint failed: content.ContentID
I can attach a whole log if necessary. But, can anyone see what I might be missing here?
|