mirror of
https://github.com/calibrain/shelfmark.git
synced 2026-10-05 07:31:13 +01:00
Adds support for `content_type=combined` in URL search parameters, letting users force combined-mode searches via a bookmarkable link rather than relying on the last-used preference from localStorage. The override is applied only in Universal mode and only when combined mode is actually available (universal enabled, `show_combined_selector` on, neither content type blocked by policy). Otherwise, it's silently ignored, consistent with how `content_type=ebook`/`audiobook` already behave outside Universal. Existing `content_type=ebook`/`audiobook` URLs now also force combined mode off, so the URL is authoritative regardless of prior preference. Also adds a per-user `FORCE_COMBINED_SEARCH` setting that locks combined mode on whenever it's available. URL `content_type=ebook`/`audiobook` overrides are also superseded by force-combined for the same reason: the search bar wouldn't let users switch back, so honoring the URL param would leave them in a state they couldn't escape from.
90 lines
2.5 KiB
Markdown
90 lines
2.5 KiB
Markdown
# URL Search Parameters
|
|
|
|
You can trigger searches directly via URL by adding query parameters. This enables bookmarking searches and sharing links.
|
|
|
|
## Basic Usage
|
|
|
|
```
|
|
http://your-server:8084/?q=harry+potter
|
|
```
|
|
|
|
## Supported Parameters
|
|
|
|
| Parameter | Description | Example |
|
|
|-----------|-------------|---------|
|
|
| `q` or `query` | Main search query | `/?q=dune` |
|
|
| `author` | Filter by author name | `/?author=frank+herbert` |
|
|
| `title` | Filter by book title | `/?title=foundation` |
|
|
| `isbn` | Filter by ISBN | `/?isbn=978-0747532699` |
|
|
| `lang` | Filter by language (ISO 639-1 code) | `/?lang=en` |
|
|
| `format` | Filter by file format | `/?format=epub` |
|
|
| `content` | Filter by content type | `/?content=fiction` |
|
|
| `content_type` | Select media type (`ebook`, `audiobook`, or `combined`) in Universal mode only | `/?q=dune&content_type=audiobook` |
|
|
| `sort` | Sort order for results | `/?sort=newest` |
|
|
|
|
## Multiple Values
|
|
|
|
Some parameters support multiple values by repeating the parameter:
|
|
|
|
```
|
|
/?lang=en&lang=de&lang=fr
|
|
/?format=epub&format=mobi&format=azw3
|
|
```
|
|
|
|
## Examples
|
|
|
|
**Simple search:**
|
|
```
|
|
/?q=lord+of+the+rings
|
|
```
|
|
|
|
**Search with author filter:**
|
|
```
|
|
/?q=dune&author=frank+herbert
|
|
```
|
|
|
|
**Search with format and language:**
|
|
```
|
|
/?q=harry+potter&format=epub&lang=en
|
|
```
|
|
|
|
**Author search with multiple formats:**
|
|
```
|
|
/?author=stephen+king&format=epub&format=mobi
|
|
```
|
|
|
|
**Search with sort order:**
|
|
```
|
|
/?q=science+fiction&sort=newest
|
|
```
|
|
|
|
**Universal search as audiobook:**
|
|
```
|
|
/?q=dune&content_type=audiobook
|
|
```
|
|
|
|
**Universal search forcing combined (ebook + audiobook):**
|
|
```
|
|
/?q=dune&content_type=combined
|
|
```
|
|
|
|
## Search Mode Behavior
|
|
|
|
### Direct Mode
|
|
|
|
When Search Mode is set to Direct, all parameters are used to filter results from the configured direct source.
|
|
`content_type` is ignored in Direct mode.
|
|
|
|
### Universal Mode
|
|
|
|
`q`, `sort`, and `content_type` are used. Other parameters (author, title, format, etc.) are silently ignored since metadata providers have their own search capabilities.
|
|
|
|
`content_type=combined` forces combined mode (search ebook and audiobook providers together), overriding the last-used preference. It is silently ignored if combined mode is unavailable (e.g. the combined selector is disabled in settings, or either content type is blocked by request policy).
|
|
|
|
## Notes
|
|
|
|
- URL parameters are read once on page load
|
|
- The URL is not updated when you perform searches manually
|
|
- Spaces should be encoded as `+` or `%20`
|
|
- Invalid or unknown parameters are silently ignored
|