libkiwix
libkiwix copied to clipboard
Access books using a metadata-based ID
Although there are tickets that intersects with this discussion, such as #864; I'd like to express this one independently and clearly.
Request
Being able to build a kiwix-serve URL with only in-ZIM (thus Metadata) information.
Ideally, I'd like to be able to call /viewer#{bookId} or /content/{bookId} and get to said book. bookId here being the ZIM UUID.
Why would one need this?
- The
bookNameto a book is based on the filename on disk at time of addition to kiwix-serve. This is thus somewhat volatile. - The
bookNamecan be extracted from the OPDS catalog (link to/content/), of a running kiwix-serve. Needs live-querying of kiwix-serve.
Assuming I want to link to a specific content from outside of kiwix-serve ; if I can't rely on a running OPDS endpoint (as the libkiwix viewer does), I have to:
- known the filename passed to kiwix-serve
- duplicate and maintain part of libkiwix code to generate the
bookName.
Adding support for this seems quite simple.
If the BookName part of URL looks like a UUID, it can be tested first and if it matches, a redirection to the current format happen.
This would ensures continuity of current behavior and allows UUID-based link to be presented as human in URL of browsers.
100% agree. A minima, at the core, any end-point should be available easily for a machine: ie. using the ZIM id.
Other URL/ZIM identifiers should be considered as aliases. Such aliases cozld be very important but this the topic of #864.
13.4!
13.2.0, sorry my bad.