Add a uuid to the headers for OPDS feeds. Allows OPDS consuming applications to distinguish between different calibre installs. Fixes #1756666 [OPDS feed id should be unique](https://bugs.launchpad.net/calibre/+bug/1756666)

This commit is contained in:
Kovid Goyal 2018-03-22 21:22:36 +05:30
parent 0a89d65246
commit 6a5e979b0b
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -21,6 +21,8 @@ from calibre import guess_type, prepare_string_for_xml as xml
from calibre.utils.icu import sort_key
from calibre.utils.date import as_utc, timestampfromdt, is_date_undefined
from calibre.utils.search_query_parser import ParseException
from calibre.utils.config import prefs
from calibre import force_unicode
from calibre.srv.errors import HTTPNotFound, HTTPInternalServerError
from calibre.srv.routes import endpoint
@ -39,6 +41,7 @@ def unhexlify(x):
def atom(ctx, rd, endpoint, output):
rd.outheaders.set('Content-Type', 'application/atom+xml; charset=UTF-8', replace_all=True)
rd.outheaders.set('Calibre-Instance-Id', force_unicode(prefs['installation_uuid'], 'utf-8'), replace_all=True)
if isinstance(output, bytes):
ans = output # Assume output is already UTF-8 XML
elif isinstance(output, type('')):