2015-08-02 18:59:11 +00:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2020-05-18 18:07:02 +00:00
|
|
|
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/terms/" xmlns:dcterms="http://purl.org/dc/terms/">
|
2023-10-28 07:05:24 +00:00
|
|
|
<icon>{{ url_for('static', filename='favicon.ico') }}</icon>
|
2015-08-02 18:59:11 +00:00
|
|
|
<id>urn:uuid:2853dacf-ed79-42f5-8e8a-a7bb3d1ae6a2</id>
|
2018-08-18 15:35:23 +00:00
|
|
|
<updated>{{ current_time }}</updated>
|
2015-08-02 18:59:11 +00:00
|
|
|
<link rel="self"
|
2017-01-09 18:10:39 +00:00
|
|
|
href="{{request.script_root + request.full_path}}"
|
2017-01-07 17:08:12 +00:00
|
|
|
type="application/atom+xml;profile=opds-catalog;type=feed;kind=navigation"/>
|
2015-08-02 18:59:11 +00:00
|
|
|
<link rel="start"
|
2019-07-13 18:45:48 +00:00
|
|
|
href="{{url_for('opds.feed_index')}}"
|
2017-01-07 17:08:12 +00:00
|
|
|
type="application/atom+xml;profile=opds-catalog;type=feed;kind=navigation"/>
|
2015-08-02 18:59:11 +00:00
|
|
|
<link rel="up"
|
2019-07-13 18:45:48 +00:00
|
|
|
href="{{url_for('opds.feed_index')}}"
|
2017-01-07 17:08:12 +00:00
|
|
|
type="application/atom+xml;profile=opds-catalog;type=feed;kind=navigation"/>
|
2021-03-21 10:54:39 +00:00
|
|
|
{% if pagination and pagination.has_prev %}
|
2017-01-09 18:10:39 +00:00
|
|
|
<link rel="first"
|
|
|
|
href="{{request.script_root + request.path}}"
|
|
|
|
type="application/atom+xml;profile=opds-catalog;type=feed;kind=navigation"/>
|
2017-01-12 19:43:36 +00:00
|
|
|
{% endif %}
|
2021-03-21 10:54:39 +00:00
|
|
|
{% if pagination and pagination.has_next %}
|
2016-11-09 18:24:33 +00:00
|
|
|
<link rel="next"
|
|
|
|
title="{{_('Next')}}"
|
2017-01-09 18:10:39 +00:00
|
|
|
href="{{ request.script_root + request.path }}?offset={{ pagination.next_offset }}"
|
|
|
|
type="application/atom+xml;profile=opds-catalog;type=feed;kind=navigation"/>
|
|
|
|
{% endif %}
|
2021-03-21 10:54:39 +00:00
|
|
|
{% if pagination and pagination.has_prev %}
|
2017-01-09 18:10:39 +00:00
|
|
|
<link rel="previous"
|
|
|
|
href="{{request.script_root + request.path}}?offset={{ pagination.previous_offset }}"
|
2017-01-07 17:08:12 +00:00
|
|
|
type="application/atom+xml;profile=opds-catalog;type=feed;kind=navigation"/>
|
|
|
|
{% endif %}
|
2018-10-30 21:33:19 +00:00
|
|
|
<link rel="search"
|
2019-07-13 18:45:48 +00:00
|
|
|
href="{{url_for('opds.feed_osd')}}"
|
2018-10-30 21:33:19 +00:00
|
|
|
type="application/opensearchdescription+xml"/>
|
2023-05-27 14:25:06 +00:00
|
|
|
<link type="application/atom+xml" rel="search" title="{{_('Search')}}" href="{{url_for('opds.feed_normal_search')}}/{searchTerms}" />
|
2017-01-29 20:06:08 +00:00
|
|
|
<title>{{instance}}</title>
|
2015-08-02 18:59:11 +00:00
|
|
|
<author>
|
2017-01-29 20:06:08 +00:00
|
|
|
<name>{{instance}}</name>
|
2016-04-15 16:23:00 +00:00
|
|
|
<uri>https://github.com/janeczku/calibre-web</uri>
|
2015-08-02 18:59:11 +00:00
|
|
|
</author>
|
|
|
|
|
2017-03-19 16:32:49 +00:00
|
|
|
{% if entries and entries[0] %}
|
2015-08-02 18:59:11 +00:00
|
|
|
{% for entry in entries %}
|
|
|
|
<entry>
|
2022-03-26 18:35:56 +00:00
|
|
|
<title>{{entry.Books.title}}</title>
|
|
|
|
<id>urn:uuid:{{entry.Books.uuid}}</id>
|
|
|
|
<updated>{{entry.Books.atom_timestamp}}</updated>
|
2022-05-22 17:40:21 +00:00
|
|
|
{% for author in entry.Books.authors %}
|
2018-11-01 12:44:00 +00:00
|
|
|
<author>
|
2022-05-22 17:40:21 +00:00
|
|
|
<name>{{author.name}}</name>
|
2018-11-01 12:44:00 +00:00
|
|
|
</author>
|
2022-05-22 17:40:21 +00:00
|
|
|
{% endfor %}
|
2022-03-26 18:35:56 +00:00
|
|
|
{% if entry.Books.publishers.__len__() > 0 %}
|
2018-10-30 21:33:19 +00:00
|
|
|
<publisher>
|
2022-03-26 18:35:56 +00:00
|
|
|
<name>{{entry.Books.publishers[0].name}}</name>
|
2018-10-30 21:33:19 +00:00
|
|
|
</publisher>
|
|
|
|
{% endif %}
|
2022-06-09 20:35:44 +00:00
|
|
|
<published>{{entry.Books.pubdate.strftime("%Y-%m-%dT%H:%M:%S+00:00")}}</published>
|
2022-03-26 18:35:56 +00:00
|
|
|
{% for lang in entry.Books.languages %}
|
2019-12-15 12:32:34 +00:00
|
|
|
<dcterms:language>{{lang.lang_code}}</dcterms:language>
|
|
|
|
{% endfor %}
|
2022-03-26 18:35:56 +00:00
|
|
|
{% for tag in entry.Books.tags %}
|
2015-08-02 18:59:11 +00:00
|
|
|
<category scheme="http://www.bisg.org/standards/bisac_subject/index.html"
|
|
|
|
term="{{tag.name}}"
|
|
|
|
label="{{tag.name}}"/>
|
|
|
|
{% endfor %}
|
2022-03-26 18:35:56 +00:00
|
|
|
{% if entry.Books.comments[0] %}<summary>{{entry.Books.comments[0].text|striptags}}</summary>{% endif %}
|
|
|
|
{% if entry.Books.has_cover %}
|
|
|
|
<link type="image/jpeg" href="{{url_for('opds.feed_get_cover', book_id=entry.Books.id)}}" rel="http://opds-spec.org/image"/>
|
|
|
|
<link type="image/jpeg" href="{{url_for('opds.feed_get_cover', book_id=entry.Books.id)}}" rel="http://opds-spec.org/image/thumbnail"/>
|
2015-08-02 18:59:11 +00:00
|
|
|
{% endif %}
|
2022-03-26 18:35:56 +00:00
|
|
|
{% for format in entry.Books.data %}
|
|
|
|
<link rel="http://opds-spec.org/acquisition" href="{{ url_for('opds.opds_download_link', book_id=entry.Books.id, book_format=format.format|lower)}}"
|
|
|
|
length="{{format.uncompressed_size}}" mtime="{{entry.Books.atom_timestamp}}" type="{{format.format|lower|mimetype}}"/>
|
2015-08-02 18:59:11 +00:00
|
|
|
{% endfor %}
|
|
|
|
</entry>
|
|
|
|
{% endfor %}
|
2017-03-07 18:10:17 +00:00
|
|
|
{% endif %}
|
2017-02-03 12:20:35 +00:00
|
|
|
{% for entry in listelements %}
|
2016-11-09 18:24:33 +00:00
|
|
|
<entry>
|
2020-04-02 16:23:24 +00:00
|
|
|
{% if entry.__class__.__name__ == 'Shelf' and entry.is_public == 1 %}
|
|
|
|
<title>{{entry.name}} {{_('(Public)')}}</title>
|
|
|
|
{% else %}
|
2016-11-09 18:24:33 +00:00
|
|
|
<title>{{entry.name}}</title>
|
2020-04-02 16:23:24 +00:00
|
|
|
{% endif %}
|
2017-04-02 08:05:07 +00:00
|
|
|
<id>{{ url_for(folder, book_id=entry.id) }}</id>
|
2017-10-01 15:16:57 +00:00
|
|
|
<link rel="subsection" type="application/atom+xml;profile=opds-catalog" href="{{url_for(folder, book_id=entry.id)}}"/>
|
2016-12-28 14:51:58 +00:00
|
|
|
</entry>
|
2016-11-09 18:24:33 +00:00
|
|
|
{% endfor %}
|
2021-03-22 16:46:15 +00:00
|
|
|
{% for entry in letterelements %}
|
|
|
|
<entry>
|
|
|
|
<title>{{entry['name']}}</title>
|
|
|
|
<id>{{ url_for(folder, book_id=entry['id']) }}</id>
|
|
|
|
<link rel="subsection" type="application/atom+xml;profile=opds-catalog" href="{{url_for(folder, book_id=entry['id'])}}"/>
|
|
|
|
</entry>
|
|
|
|
{% endfor %}
|
2015-08-02 18:59:11 +00:00
|
|
|
</feed>
|