Closed rgaudin closed 7 months ago
The name here is a bit confusing. It is not the same as the name in the opds catalog. As said :
For a kiwix-serve started with a list of ZIM files, ZIM names are derived from the filename by dropping the extension and replacing certain characters (spaces are replaced with underscores, and + symbols are replaced with the text plus).
The "name" is inferred from the filename (and potentially dropping the date information if no --nodatealiases
).
This is the "name" you will found in the link in <link type="text/html" href="/content/wikipedia_fr_test_2023-01"/>
By default (without --nodatealiases
), kiwix-serve generate aliases without date for all zim file.
So wikipedia_fr_test_2023-01.zim
has two names : wikipedia_fr_test_2023-01
and wikipedia_fr_test
(the nodate alias)
So requesting /content/wikipedia_fr_test_2023-01
or /content/wikipedia_fr_test
returns the same thing.
This is useful for link where we want url be valid even if we have updated the zim file.
What is printed on stderr is the conflict between the alias of two zim files : wikipedia_fr_test_2023-01.zim
and wikipedia_fr_test_2022-01.zim
(or any configuration where we could have a alias being the same as another name/alias)
"Ignored" means that the conflicting name (the last to add in the library) is not adding in the mapping. For the exemple just above we would have:
The name here is a bit confusing. It is not the same as the name in the opds catalog. As said :
For a kiwix-serve started with a list of ZIM files, ZIM names are derived from the filename by dropping the extension and replacing certain characters (spaces are replaced with underscores, and + symbols are replaced with the text plus).
I mentioned in the Issue title that I was using --library
so I was expecting XML Name as the doc says:
For a kiwix-serve started with the --library option, ZIM names come from the library XML file.
I understand the behavior now ; thank you. If this last part applies only to the bookPath, it should be clearly stated I believe.
I understand the behavior now ; thank you. If this last part applies only to the bookPath, it should be clearly stated I believe.
The "Zim name" is used in url and also in all query string taking a Zim name (for exemple in https://kiwix-tools.readthedocs.io/en/latest/kiwix-serve.html#catalog-v2-entries or https://kiwix-tools.readthedocs.io/en/latest/kiwix-serve.html#search). It is not related to the bookPath only.
Exactly my point! ZIM name references different thing depending on how kiwix-serve was started. That's fine and clear in the documentation.
But regardless of how kiwix-serve was started, conflict management only regards the kind of ZIM name that is filename-based (and used in URL ; that's why I called if bookPath). So the documentation is misleading because that conflict paragraph follows the ones that explain how ZIM name can be different.
Exactly my point! ZIM name references different thing depending on how kiwix-serve was started. That's fine and clear in the documentation.
Unfortunately, it seems that the documentation doesn't agree with the code.
For a kiwix-serve started with the --library option, ZIM names come from the library XML file.
This statement appears to be wrong.
I am now working on fixing both the behaviour of kiwix-serve and its documentation. I will file a separate ticket about the discovered inconsistencies.
See #663
Documentation says:
I find the wording (“otherwise, are ignored”) not clear about what to expect:
name
(that's kiwix-serve's behavior)The problem is that there is no such warning on STDERR. See example below with a library using a duplicate name (properly applied to OPDS response) but no warning on the terminal