Fix Kobo sync failure behind reverse proxy: rewrite library_sync URL in init response

The HandleInitRequest() function rewrites image URLs to point to the local
Calibre-Web instance, but library_sync was left pointing to storeapi.kobo.com.
This caused Kobo e-readers to call Kobo's servers for sync instead of the local
server, resulting in no books being synced when running behind a reverse proxy.
This commit is contained in:
Noé Sierra-Velasquez
2026-02-19 18:14:14 +01:00
parent 424e493946
commit a9713bd497

View File

@@ -1101,6 +1101,8 @@ def HandleInitRequest():
width="{width}", width="{width}",
height="{height}", height="{height}",
isGreyscale='false')) isGreyscale='false'))
kobo_resources["library_sync"] = calibre_web_url + url_for("kobo.HandleSyncRequest",
auth_token=kobo_auth.get_auth_token())
else: else:
kobo_resources["image_host"] = url_for("web.index", _external=True).strip("/") kobo_resources["image_host"] = url_for("web.index", _external=True).strip("/")
kobo_resources["image_url_quality_template"] = unquote(url_for("kobo.HandleCoverImageRequest", kobo_resources["image_url_quality_template"] = unquote(url_for("kobo.HandleCoverImageRequest",
@@ -1118,6 +1120,9 @@ def HandleInitRequest():
height="{height}", height="{height}",
isGreyscale='false', isGreyscale='false',
_external=True)) _external=True))
kobo_resources["library_sync"] = url_for("kobo.HandleSyncRequest",
auth_token=kobo_auth.get_auth_token(),
_external=True)
response = make_response(jsonify({"Resources": kobo_resources})) response = make_response(jsonify({"Resources": kobo_resources}))
response.headers["x-kobo-apitoken"] = "e30=" response.headers["x-kobo-apitoken"] = "e30="