Basic OPDS support
This commit is contained in:
parent
078b210392
commit
b0a0b68561
6 changed files with 175 additions and 0 deletions
52
templates/index.opds
Normal file
52
templates/index.opds
Normal file
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:odl="http://opds-spec.org/odl"
|
||||
xml:lang="en"
|
||||
xmlns="http://www.w3.org/2005/Atom"
|
||||
xmlns:dcterms="http://purl.org/dc/terms/"
|
||||
xmlns:app="http://www.w3.org/2007/app"
|
||||
xmlns:opds="http://opds-spec.org/2010/catalog"
|
||||
xmlns:thr="http://purl.org/syndication/thread/1.0"
|
||||
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
|
||||
<id>{{.S.BaseURL}}</id>
|
||||
<link rel="self"
|
||||
href="/?fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||
<link rel="start"
|
||||
href="/?fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||
<link rel="search"
|
||||
href="/opensearch.xml"
|
||||
type="application/opensearchdescription+xml"/>
|
||||
|
||||
<title>The Imperial Libary of Trantor</title>
|
||||
<author>
|
||||
<name>The Imperial Library of Trantor</name>
|
||||
<uri>{{.S.BaseURL}}</uri>
|
||||
<email>zenow@riseup.net</email>
|
||||
</author>
|
||||
<updated>{{.S.Updated}}</updated>
|
||||
<icon>{{.S.BaseURL}}/img/favicon.ico</icon>
|
||||
|
||||
<entry>
|
||||
<title>Last books added</title>
|
||||
<link rel="http://opds-spec.org/sort/new"
|
||||
href="/search/?fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||
<updated>{{.S.Updated}}</updated>
|
||||
<id>{{.S.BaseURL}}/search/</id>
|
||||
</entry>
|
||||
{{$updated := .S.Updated}}
|
||||
{{$baseurl := .S.BaseURL}}
|
||||
{{range .Tags}}
|
||||
<entry>
|
||||
<title>{{html .}}</title>
|
||||
<link rel="http://opds-spec.org/facet"
|
||||
href="/search/?q=subject:{{urlquery .}}&fmt=opds"
|
||||
title="{{html .}}"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||
<updated>{{$updated}}</updated>
|
||||
<id>{{$baseurl}}/search/?subject:{{urlquery .}}</id>
|
||||
</entry>
|
||||
{{end}}
|
||||
</feed>
|
100
templates/search.opds
Normal file
100
templates/search.opds
Normal file
|
@ -0,0 +1,100 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:odl="http://opds-spec.org/odl"
|
||||
xml:lang="en"
|
||||
xmlns="http://www.w3.org/2005/Atom"
|
||||
xmlns:dcterms="http://purl.org/dc/terms/"
|
||||
xmlns:app="http://www.w3.org/2007/app"
|
||||
xmlns:opds="http://opds-spec.org/2010/catalog"
|
||||
xmlns:thr="http://purl.org/syndication/thread/1.0"
|
||||
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
|
||||
<id>{{.S.BaseURL}}/search/?q={{.S.Search}}</id>
|
||||
<icon>{{.S.BaseURL}}/img/favicon.ico</icon>
|
||||
|
||||
<link rel="self"
|
||||
href="/search/?q={{.S.Search}}&p={{.Page}}&fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||
<link rel="start"
|
||||
href="/?fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||
<link rel="up"
|
||||
href="/?fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||
{{if .Prev}}
|
||||
<link rel="first"
|
||||
href="/search/?q={{.S.Search}}&fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||
<link rel="previous"
|
||||
href="{{html .Prev}}&fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||
{{end}}
|
||||
{{if .Next}}
|
||||
<link rel="next"
|
||||
href="{{html .Next}}&fmt=opds"
|
||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||
{{end}}
|
||||
<link rel="search"
|
||||
title="Search The Imperial Libary of Trantor"
|
||||
href="/search/?q={searchTerms}&fmt=opds"
|
||||
type="application/atom+xml"/>
|
||||
<link rel="search"
|
||||
href="opensearch.xml"
|
||||
type="application/opensearchdescription+xml"/>
|
||||
|
||||
<opensearch:totalResults>{{.Found}}</opensearch:totalResults>
|
||||
<opensearch:itemsPerPage>{{.ItemsPage}}</opensearch:itemsPerPage>
|
||||
|
||||
<title>search {{.S.Search}}</title>
|
||||
<author>
|
||||
<name>The Imperial Library of Trantor</name>
|
||||
<uri>{{.S.BaseURL}}</uri>
|
||||
<email>zenow@riseup.net</email>
|
||||
</author>
|
||||
<updated>{{.S.Updated}}</updated>
|
||||
|
||||
|
||||
{{$updated := .S.Updated}}
|
||||
{{$baseurl := .S.BaseURL}}
|
||||
{{range .Books}}
|
||||
<entry>
|
||||
<title>{{html .Title}}</title>
|
||||
<id>{{$baseurl}}/book/{{.Id}}</id>
|
||||
<updated>{{$updated}}</updated>
|
||||
|
||||
{{range .Author}}
|
||||
<author>
|
||||
<name>{{html .}}</name>
|
||||
</author>
|
||||
{{end}}
|
||||
{{if .Contributor}}
|
||||
<contributor>
|
||||
<name>{{html .Contributor}}</name>
|
||||
</contributor>
|
||||
{{end}}
|
||||
|
||||
{{if .Isbn}}
|
||||
<dcterms:identifier>urn:isbn:{{.Isbn}}</dcterms:identifier>
|
||||
{{end}}
|
||||
<dcterms:publisher>{{html .Publisher}}</dcterms:publisher>
|
||||
{{if .Date}}
|
||||
<dcterms:issued>{{.Date}}</dcterms:issued>
|
||||
{{end}}
|
||||
|
||||
{{range .Lang}}
|
||||
<dcterms:language>{{.}}</dcterms:language>
|
||||
{{end}}
|
||||
{{range .Subject}}
|
||||
<category term="{{html .}}"
|
||||
label="{{html .}}"/>
|
||||
{{end}}
|
||||
<summary>{{html .Description}}</summary>
|
||||
|
||||
<link type="image/jpeg" href="/cover/{{.Id}}/big/cover.jpg" rel="http://opds-spec.org/image"/>
|
||||
<link type="image/jpg" href="/cover/{{.Id}}/small/thumbnail.jpg" rel="http://opds-spec.org/image/thumbnail" />
|
||||
|
||||
<link rel="http://opds-spec.org/acquisition"
|
||||
href="/download/{{.Id}}/{{urlquery .Title}}.epub"
|
||||
type="application/epub+zip" />
|
||||
</entry>
|
||||
{{end}}
|
||||
</feed>
|
Reference in a new issue