Bootleglibrary
====================

The digital bootleg library in its current configuration lives on a Calibre-web installation on a RPi4.

The path to the library (books and metadata.db) should be:
    
/media/usb/'Bootleg Library'

or something similar.

There are two USB drives auto-mounted to the RPi, one for the library (mounted to the path mentioned above) and one for the backup. 

Every Monday at 02:00 a cronjob runs to backup from the library USB to the backup USB.

More about how the library is set up here: https://pzwiki.wdka.nl/mediadesign/User:Simon/Trim4/prototypes/bootleg_library_setup

Login (after http-password)

Default admin login

Username: admin 
Password: admin123

-----

The library is currently down because of an error with the database, which is malformed, giving the following error:

(sqlite3.DatabaseError) database disk image is malformed

Most likely this is because the USB has become corrupted, including the metadata.db file.

However, each folder of each book includes a metadata.opf file. From these, it is possible to regenerate the metadata.db file, using calibredb: https://manual.calibre-ebook.com/generated/en/calibredb.html#restore-database

It is possible to recover the database by running calibredb from the command line, as suggested by the developer of calibre, Kovid Goyal (in post #2): https://www.mobileread.com/forums/showthread.php?t=262064

I tried this, and Calibre couldn't find a file needed to regenerate the database "metadata_pre_restore.db". This file, and the "metadata.db" file are supposed to be automatically generated when installing Calibre.

4 Oct 2023
Restoring with calibre was tricky as the library rebuilding tools (calibredb restore_database) and also using Calibre's graphical interface to restore a library, both only found those books that had an OPF file. Unfortunately, it seems that the OPF file isn't automatically created when books are added (and perhaps not edited) in calibre-web. SO... it's possible to use calibredb's add command to re-add all the books back and rebuild everything. BUT, the downside here is that all the the books will get renumbered and thus break all existing links (which feels like a big pity as someone who likes to link to specific books / pages).

SO what I am doing is:

# Locally on my laptop, I rebuild a new library with:

        calibredb add -r -1 --library-path=tmp/ Bootleg\ Library/

where tmp is a new directory...

NB: all the books that are found and added get an OPF file.
    
# Copy the OPF file from the newly generated library, into the old library for books that have no OPF file already. In doing this, REWRITE the OPF calibre_id to match the old ID (which is in the folder name).
For this I used the script [add_missing_opf.py](scripts/add_missing_opf.py)

# Finally ran
	    calibredb restore_database
	
Sources / Links
-------------------------
* [git](https://git.xpub.nl/XPUB/bootleglibrary)
* [pad](https://pad.xpub.nl/p/bootleg_library_setup)


