Your comments

Hello Gary,

sorry for having missed your message two weeks ago.

1. The sorting in Ubooquity is done at the database level, and unfortunately the database I use (H2 Database) does not offer any way to plug a custom sorting algorithm. Changing the underlying database is not possible as it would make the program a lot lesse portable (unless I find another full Java embeddable database). So no, nothing in the works.

2. Indeed there is a bug, I'll fix it.

3. I will look into it.


4. I don't understand what you are trying to do. The "items per page" setting is just that: the number of books or comics contained by each displayed page. Each page is plain HTML returned by the server, with a number of books corresponding to the number you chose. The {{nextPageUrl}} is just the URL to another page with the next X books (X being the "items per page").

(I see there are other questions in your previous post, I'll look at them too)

Then probably still have the 2.1.2 version.

I just double-checked: the displayed version for 2.1.5 is 2.1.5.

Image 814

But you're right, I edited the message with a link to the download folder so that the latest version can always be found.

Ubooquity access the disk when

  • An external request is made by a client. E.g when you download or read a book, when you access an admin page, when a user session is started...
  • It scans your folders to import new books (scan that you can schedule with a period beween 15 minutes and 3 weeks, or disable completely).

So either something's wrong outside of Ubooquity, or it receives external requests that trigger disk access like the ones described above.

As Bob said, the database is H2. But there is no plan for an automatic database content migration.

More specifically, the last Ubooquity 2 version uses H2 1.4.193 while Ubooquity 3 currently uses H2 2.2.222.
Any JDBC compatible client will be able to open a Ubooquity database (use "H2 embedded" mode). I personally like to use DBeaver.

If your goal is to migrate the bookmark table, you don't necessarily need to migrate everything.

You might try something like :

  • import all your files in Ubooquity 3
  • create a mapping between the v3 document id and the v2 document id + type (as there are 2 different tables in v2: books and comics, whereas there is only 1 in v3)
  • then you can copy the bookmarks from the old table to the new, applying some conversion function in the process, as the lastupdate field was renamed to updateDate, and the boolean isFinished was replaced by an enumeration with the following values :
    • UNREAD (which you don't need, as the bookmark does not exists in this case)
    • IN_PROGRESS
    • FINISHED

This is just from the top of my head, there might be a better way.

(e.g: once you have the mapping, you might use the bookmark REST API to insert bookmarks, the advantage being that when using the API you don't need to provide the reading status, is is automatically computed by the server)

Let me know if you need any more info.

Should be quite easy to add as a "hidden" feature (you'll have to tinker with the configuration file, it's faster if I don't have to modify the UI for this).

V3 uses a much more recent version of H2 than Ubooquity V2.

So changes in behaviour and reliability are possible, although I would have expected improvements instead of a decline in reliabilty.

In any case, abrupt shutdown can corrupt just about any file, I lost a Windows installation this way once (probably some system file that didn't survive the crash).

Apart from pluging the PC to a UPS, the easiest solution is probably a backup. Either part of a global backup policy (a good thing to have anyway), or just by lauching Ubooquity with a script that would make a copy of the database file each time Ubooquity is launched.

This message comes directly from the database (H2) used inside Ubooquity. 

I didn't know such a tool existed, but I found the part of H2 documentation that explains how to use it:

https://www.h2database.com/html/advanced.html#using_recover_tool


I did not try it though.