|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
|
|
<id>urn:uuid:2853dacf-ed79-42f5-8e8a-a7bb3d1ae6a2</id>
|
|
|
|
<link rel="self"
|
|
|
|
href="{{url_for('feed_index')}}"
|
|
|
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
|
|
|
<link rel="start"
|
|
|
|
href="{{url_for('feed_index')}}"
|
|
|
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
|
|
|
<link rel="up"
|
|
|
|
href="{{url_for('feed_index')}}"
|
|
|
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
|
|
|
<link rel="next"
|
|
|
|
title="{{_('Next')}}"
|
|
|
|
href="{{ next_url }}"
|
|
|
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
|
|
|
<link rel="search"
|
|
|
|
href="{{url_for('feed_osd')}}"
|
|
|
|
type="application/opensearchdescription+xml"/>
|
|
|
|
<title>Calibre Web</title>
|
|
|
|
<author>
|
|
|
|
<name>Calibre Web</name>
|
|
|
|
<uri>https://github.com/janeczku/calibre-web</uri>
|
|
|
|
</author>
|
|
|
|
|
|
|
|
{% for entry in entries %}
|
|
|
|
<entry>
|
|
|
|
<title>{{entry.title}}</title>
|
|
|
|
<id>{{entry.uuid}}</id>
|
|
|
|
<updated>{{entry.timestamp}}</updated>
|
|
|
|
<author>
|
|
|
|
<name>{{entry.authors[0].name}}</name>
|
|
|
|
<uri>{{entry.authors[0].name}}</uri>
|
|
|
|
</author>
|
|
|
|
<language>{{entry.language}}</language>
|
|
|
|
{% for tag in entry.tags %}
|
|
|
|
<category scheme="http://www.bisg.org/standards/bisac_subject/index.html"
|
|
|
|
term="{{tag.name}}"
|
|
|
|
label="{{tag.name}}"/>
|
|
|
|
{% endfor %}
|
|
|
|
<summary>{% if entry.comments[0] %}{{entry.comments[0].text|striptags}}{% endif %}</summary>
|
|
|
|
{% if entry.has_cover %}
|
|
|
|
<link rel="http://opds-spec.org/image" href="{{ url_for('feed_get_cover', cover_path=entry.path) }}" type="image/jpg"/>
|
|
|
|
<link rel="http://opds-spec.org/cover" href="{{ url_for('feed_get_cover', cover_path=entry.path) }}" type="image/jpg"/>
|
|
|
|
<link rel="http://opds-spec.org/image/thumbnail" href="{{ url_for('feed_get_cover', cover_path=entry.path) }}" type="image/jpg"/>
|
|
|
|
{% endif %}
|
|
|
|
{% for format in entry.data %}
|
|
|
|
<link rel="http://opds-spec.org/acquisition" href="{{ url_for('get_opds_download_link', book_id=entry.id, format=format.format|lower)}}"
|
|
|
|
length="{{format.uncompressed_size}}" mtime="{{entry.timestamp}}"
|
|
|
|
{% if format.format|lower == "epub" %}
|
|
|
|
type="application/epub+zip"/>
|
|
|
|
{% else %}
|
|
|
|
type="application/x-mobipocket-ebook"/>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
</entry>
|
|
|
|
{% endfor %}
|
|
|
|
{% for author in authors %}
|
|
|
|
<entry>
|
|
|
|
<title>{{author.name}}</title>
|
|
|
|
<id>{{ url_for('feed_author', name=author.name) }}</id>
|
|
|
|
<link type="application/atom+xml;profile=opds-catalog;type=feed;kind=acquisition" href="{{url_for('feed_author', name=author.name)}}" />
|
|
|
|
<link type="application/atom+xml" href="{{url_for('feed_author', name=author.name)}}" rel="subsection"/>
|
|
|
|
</entry>
|
|
|
|
{% endfor %}
|
|
|
|
{% for entry in categorys %}
|
|
|
|
<entry>
|
|
|
|
<title>{{entry.name}}</title>
|
|
|
|
<id>{{ url_for('feed_category', name=entry.name) }}</id>
|
|
|
|
<link type="application/atom+xml;profile=opds-catalog;type=feed;kind=acquisition" href="{{url_for('feed_category', name=entry.name)}}" />
|
|
|
|
<link type="application/atom+xml" href="{{url_for('feed_category', name=entry.name)}}" rel="subsection"/>
|
|
|
|
</entry>
|
|
|
|
{% endfor %}
|
|
|
|
{% for entry in series %}
|
|
|
|
<entry>
|
|
|
|
<title>{{entry.name}}</title>
|
|
|
|
<id>{{ url_for('feed_series', name=entry.name) }}</id>
|
|
|
|
<link type="application/atom+xml;profile=opds-catalog;type=feed;kind=acquisition" href="{{url_for('feed_series', name=entry.name)}}" />
|
|
|
|
<link type="application/atom+xml" href="{{url_for('feed_series', name=entry.name)}}" rel="subsection"/>
|
|
|
|
</entry>
|
|
|
|
{% endfor %}
|
|
|
|
</feed>
|