Closed 57194 closed 3 months ago
Spammed tons of different ISBNs until one finally worked again. It was the one in the above text. That one failed literally dozens of times and now finally did something.
When it succeeded I had a 1.26KB POST request to the aforementioned API endpoint. So I don't know why most of the time an empty POST request is being sent.
Now it's pretty consistently going…for the moment…
This is a known problem, the tool used to fetch metadata is severely rate limited by google. See #59
So I don't know why most of the time an empty POST request is being sent.
Are you sure an empty POST is sent or is it rather that the request is not empty, bu the backend timeouts calling the metadata fetcher tool and then returns an empty response to the frontend ?
When I have some time I'll add other metadata sources to not have to rely on this tool.
You can already use the google books api as a metadata source and not have this problem. see "Adding other metadata providers" at https://bayang.github.io/jelu-web/configuration/index.html
This is a known problem, the tool used to fetch metadata is severely rate limited by google. See #59
I see. Noted.
So I don't know why most of the time an empty POST request is being sent.
Are you sure an empty POST is sent or is it rather that the request is not empty, bu the backend timeouts calling the metadata fetcher tool and then returns an empty response to the frontend ?
I guess the problem is the request never times out ever, so it just reads as 0 bytes? Dunno.
You can already use the google books api as a metadata source and not have this problem. see "Adding other metadata providers" at https://bayang.github.io/jelu-web/configuration/index.html
Is it possible to configure this via environment variables instead of a YAML config file?
You can already use the google books api as a metadata source and not have this problem. see "Adding other metadata providers" at https://bayang.github.io/jelu-web/configuration/index.html
Is it possible to configure this via environment variables instead of a YAML config file?
It should be possible. Jelu uses spring boot config format so any config can be passed through env vars. There are naming conventions though : https://docs.spring.io/spring-boot/reference/features/external-config.html#features.external-config.typesafe-configuration-properties.relaxed-binding
Since configuring plugins in jelu works with lists I found an explanation, you can try it :
see first answer here : https://stackoverflow.com/questions/55106571/environment-variables-for-list-in-spring-boot-configuration
tldr :
properties:
topics:
-
name: topic-01
id: id-1
-
name: topic-02
id: id-2
-
name: topic-03
id: id-3
becomes in env vars :
PROPERTIES_TOPICS_0_NAME=topic-01
PROPERTIES_TOPICS_0_ID=id-01
PROPERTIES_TOPICS_1_NAME=topic-02
PROPERTIES_TOPICS_1_ID=id-02
PROPERTIES_TOPICS_2_NAME=topic-03
PROPERTIES_TOPICS_2_ID=id-03
Awesome! Thanks. :-)
I'll close this one out since #59 already exists anyway.
Environment:
Reproduction:
/add-book
🪄 AUTO FILL
Isbn
field, e.g.9781250186928
FETCH BOOK
Most of the time: nothing happens except a spinning circle and a green bar moving. Only once have I had this succeed on dozens and dozens of attempts with different ISBNs.
When performing Step 4, I see a 0 byte
POST
request is made to/api/v1/metadata
and nothing at all appears in thejelu.log
file nor indocker logs jelu
.The one time it succeeded, I did see a log entry like:
Unfortunately, I didn't catch what the POST request looked like in my browser console that time.
If I manually run something like
docker exec -it jelu /calibre/fetch-ebook-metadata -i 9781250186928
I can see an output almost immediately.