2 Commits

Author SHA1 Message Date
evan 69048954e4 fix(opds): add inline search template for simpler clients
continuous-integration/drone/push Build is passing
Some OPDS clients (e.g. crosspoint-reader) don't resolve the
OpenSearch descriptor and only detect search via a rel="search"
link whose href contains {searchTerms} directly. Add such a link
alongside the existing descriptor so these clients can search.
2026-07-18 21:19:20 -04:00
evan ff44db311d chore: better tags
continuous-integration/drone/push Build is passing
2026-07-03 13:59:22 -04:00
2 changed files with 26 additions and 4 deletions
+18 -4
View File
@@ -3,8 +3,10 @@ type: docker
name: default name: default
trigger: trigger:
branch: ref:
- master - refs/heads/master
- refs/tags/**
- refs/pull/**
steps: steps:
# Unit Tests # Unit Tests
@@ -19,14 +21,26 @@ steps:
commands: commands:
- git fetch --tags - git fetch --tags
# Compute docker tag: git tag for tag builds, pr-<num> for PRs, dev for master
- name: compute tags
image: alpine
commands:
- |
if [ "$DRONE_BUILD_EVENT" = "tag" ]; then
echo "$DRONE_TAG" > .tags
elif [ "$DRONE_BUILD_EVENT" = "pull_request" ]; then
echo "pr-$DRONE_PULL_REQUEST" > .tags
else
echo "dev" > .tags
fi
- cat .tags
# Publish docker image # Publish docker image
- name: publish docker - name: publish docker
image: plugins/docker image: plugins/docker
settings: settings:
repo: gitea.va.reichard.io/evan/antholume repo: gitea.va.reichard.io/evan/antholume
registry: gitea.va.reichard.io registry: gitea.va.reichard.io
tags:
- dev
custom_dns: custom_dns:
- 8.8.8.8 - 8.8.8.8
username: username:
+8
View File
@@ -39,6 +39,14 @@ func (api *API) opdsEntry(c *gin.Context) {
TypeLink: "application/opensearchdescription+xml", TypeLink: "application/opensearchdescription+xml",
Href: "/api/opds/search.xml", Href: "/api/opds/search.xml",
}, },
// Inline Search Template - Simpler OPDS clients (e.g. crosspoint-reader) don't resolve the
// OpenSearch descriptor and require the {searchTerms} template directly on a rel="search" link.
{
Title: "Search AnthoLume",
Rel: "search",
TypeLink: "application/atom+xml;profile=opds-catalog;kind=acquisition",
Href: "/api/opds/documents?search={searchTerms}",
},
}, },
Entries: []opds.Entry{ Entries: []opds.Entry{