I’m developing a comic book curation app and it has OPDS capability. For local development, I run the app locally. It is a React-based frontend, with a nodejs/express backend.
The OPDS server is a route configured in Express. I am testing this server against Panels, specifically,
Support Info:
Version: 2.8.2 Build: 202109171623 Env: Production
Support Identifier: [redacted]
Anytime I try to add a source via the OPDS option in Panels, it complains that it can’t find it.
Weirdly, my sever endpoint is been hit by Panels, I guess there is some error that I can’t see on my end. Is there a way I can debug this?
Could you send us a couple of examples of your OPDS feeds? After authenticating with the server, Panels tries to parse the root feed. Sounds like that is what is causing the problem.
Maybe we are requiring a field that should be optional or something like that…
If you send us some of your feeds, we’ll make sure to write tests with them and make it work.
An OPDS feed is an Atom feed. According to the Atom RFC and the OPDS documentation
atom:feed elements MUST contain exactly one atom:id element.
atom:entry elements MUST contain exactly one atom:id element.
The feed self link is not required, but recommended
atom:feed elements SHOULD contain one atom:link element with a rel
attribute value of “self”. This is the preferred URI for
retrieving Atom Feed Documents representing this Atom feed.
Also, we’ll be improving our OPDS parser to log the errors and provide better information. Future versions of Panels will record these parsing erros in the Errors section in Settings.
Hello, I was able to add the necessary nodes to the XML. Took me some finagling.
I tried serving it from HTTPS, no dice. My feed URL looks like http://localhost:8050/api/opds
I am still not able to get Panels to connect to the server.
Panels does not require thumbnails to parse the file items. But they won’t appear in the “external library”.
We’ll probably reconsider this decision in the future but, for now, they won’t appear.
like username: test ,password: test. Panels will send the credentials in the Authentication header, but the server should ignore it if auth is not required.