Skip to main content

query data exports from the SLUB catalog

Project description

slubfind is a command-line tool and Python library for querying the SLUB catalog — the public library catalog of SLUB Dresden (Saxon State Library - Dresden State and University Library). It retrieves catalog records in multiple formats including SLUBApp data, JSON-LD linked data, Solr responses, and holding/availability information.

Under the hood, slubfind builds on txpyfind, a generic client for TYPO3-find catalog frontends.

Installation

… via PyPI

pip install slubfind

… or from GitHub source

pip install git+https://github.com/slub/slubfind.git

Command-Line Usage

After installation, the slubfind command is available (also via python -m slubfind). The base URL defaults to https://katalog.slub-dresden.de.

Query

Execute a search query:

slubfind query "manfred bonitz"

With a facet filter and pagination:

slubfind query "manfred bonitz" --facet "format_de14=Book, E-Book" --page 1 --count 10

Document

Fetch a single document by ID:

slubfind document 0-1132486122

Scroll

Fetch all results for a query:

slubfind scroll "manfred bonitz" --batch 10

Stream results as JSONL (one JSON object per line), useful for piping:

slubfind scroll "manfred bonitz" --stream | jq .id

Settings

Show TYPO3-find settings:

slubfind settings

Solr Parameters

Show Solr parameters for a query:

slubfind solr-params "manfred bonitz"

Solr Request

Show Solr request URL for a query:

slubfind solr-request "manfred bonitz"

From URL

Use --from-url to query using a SLUB catalog URL instead of individual parameters. This works with query, scroll, solr-params, and solr-request:

slubfind query --from-url "https://katalog.slub-dresden.de/?tx_find_find%5Bq%5D%5Bdefault%5D=manfred+bonitz"
slubfind solr-params --from-url "https://katalog.slub-dresden.de/?tx_find_find%5Bq%5D%5Bdefault%5D=manfred+bonitz"

Show Request URL

Use --show-url to print the request URL instead of fetching the response. This works with all subcommands:

slubfind --show-url document 0-1132486122
slubfind --show-url query "manfred bonitz" --facet "format_de14=Book, E-Book"
slubfind --show-url scroll "manfred bonitz" --batch 10

Export Format

Use --export-format to select the output format. The default is app.

Available formats and their supported subcommands:

  • app (default) — SLUBApp data (query, document)

  • json-ld — JSON-LD linked data (query, document)

  • json-solr-results — Solr results (query only)

  • raw-solr-response — raw Solr response (query only)

  • json-holding-status — access links, supplementary information, and references (document only)

  • json-holding-status-index — availability status, shelf location, and links (document only)

The scroll subcommand always uses raw-solr-response internally. The formats json-all, json-solr-params, and json-solr-request are used internally by the settings, solr-params, and solr-request subcommands.

Fetch a document in JSON-LD format:

slubfind document 0-1132486122 --export-format json-ld

Search in JSON-LD format:

slubfind query "manfred bonitz" --export-format json-ld

Fetch access links and references for a document:

slubfind document 0-320589099 --export-format json-holding-status

Fetch availability status and location for a document:

slubfind document 0-1809383722 --export-format json-holding-status-index

Query with Solr results format:

slubfind query "manfred bonitz" --export-format json-solr-results

Query with raw Solr response:

slubfind query "manfred bonitz" --export-format raw-solr-response

Raw Server Output

Use --no-parser to skip response parsing and print the raw server output. This is useful for inspecting the exact response or piping to other tools:

slubfind query "manfred bonitz" --no-parser
slubfind document 0-1132486122 --no-parser --export-format json-holding-status

Environment Variable

Set SLUBFIND_URL to override the default base URL:

export SLUBFIND_URL=https://katalog.slub-dresden.de
slubfind query "manfred bonitz"

Python Usage Example

from slubfind.client import SlubFind
# create SlubFind instance
slub_find = SlubFind()
# retrieve JSON data (query view, app format)
slub_q = slub_find.app_search("manfred bonitz")
# retrieve JSON data (detail view, app format)
slub_doc = slub_find.app_document("0-1132486122")
# retrieve JSON-LD data (detail view)
slub_jsonld = slub_find.jsonld_document("0-1132486122")
# retrieve JSON-LD data (query view)
slub_jsonld_q = slub_find.jsonld_search("manfred bonitz")
# retrieve access links, references (detail view)
slub_hs = slub_find.holding_status_document("0-1132486122")
# retrieve availability status and location (detail view)
slub_hsi = slub_find.holding_status_index_document("0-1132486122")
# retrieve raw Solr response
slub_raw = slub_find.raw_solr_search("manfred bonitz")
# retrieve Solr result documents only
slub_solr = slub_find.solr_results_search("manfred bonitz")
# retrieve Solr parameters for a query
slub_params = slub_find.solr_params("manfred bonitz")
# retrieve Solr request URL for a query
slub_req = slub_find.solr_request("manfred bonitz")
# retrieve TYPO3-find settings
slub_settings = slub_find.settings()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slubfind-1.15.0.tar.gz (36.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slubfind-1.15.0-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file slubfind-1.15.0.tar.gz.

File metadata

  • Download URL: slubfind-1.15.0.tar.gz
  • Upload date:
  • Size: 36.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for slubfind-1.15.0.tar.gz
Algorithm Hash digest
SHA256 d89b705ef511db51cf6cc487bd0f4668fcf8a742730604b37e17ead8e8751d49
MD5 a832ea19fa46a63c50e36d096b216fcc
BLAKE2b-256 972a430cfacd2ad1184b689e0c39f4dcfc3ea9e2f1679da88b56ed02c3bdb1a2

See more details on using hashes here.

File details

Details for the file slubfind-1.15.0-py3-none-any.whl.

File metadata

  • Download URL: slubfind-1.15.0-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for slubfind-1.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bcd3bdd1f3bee7cd8c75d21e1f0c75c5d8d16d5c871dd8773df83ac9421bd089
MD5 41b92f4ff4d1e3c33376cd7a2b4902ad
BLAKE2b-256 7daedab808b185940aa7ddacf73c15d0de492083eb14853152ec2d367b218b07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page