Ludwig Bechstein's German fairy tales provider skill for ovos-common-reading-pipeline-plugin
Project description
Bechstein Tales (provider)
A provider skill for ovos-common-reading-pipeline-plugin, delivering Ludwig Bechstein's German fairy tales.
Bechstein was a contemporary of the Brothers Grimm and published his own hugely popular collection - a genuinely different source, not just "more Grimm" (though a few titles overlap, since both drew from the same regional oral tradition).
This skill has no standalone voice interface. It registers no intents and never speaks. It only answers ovos.common_reading.* bus messages, so you also need ovos-common-reading-pipeline-plugin installed and added to your pipeline config for it to be useful at all.
German only, no translation. Same situation as
ovos-skill-andrew-lang-tales, just for German instead of English - full fairy tale prose is a bigger translation cost/quality risk than a blog post or abstract. On any device language other than German, this provider never loads at all:initialize()checks the device's language againstSUPPORTED_LANGUAGES = {"de"}before loading the index or registering any bus events, logging why. Set your OVOS device's language to German (de-*) to use this provider.
Install
pip install ovos-skill-bechstein-tales ovos-common-reading-pipeline-plugin
Story index
The story index (title, anchor per story) is bundled with this
package (locale/de-de/index.json), not scraped live - browsing/
matching needs no internet at all. Only fetching a specific story's
actual text (once chosen) needs a live request to Project Gutenberg.
80 stories from Ludwig Bechstein's Märchenbuch (Project Gutenberg
ebook #63465). The index was built once via scripts/build_index.py,
which parses the book's own "Inhalt" (table of contents) table rather
than assuming every <div class="chapter"> is a real story - one entry
("Alphabetisches Verzeichnis der Märchen", the book's own index) was
correctly excluded this way since it has no story paragraphs.
Two real bugs were found and fixed while building this:
- Encoding: the Gutenberg page doesn't declare a charset in its HTTP
headers, so
requestsdefaulted to ISO-8859-1 and mangled German text (Aschenbrödel→Aschenbrödel). Fixed by settingr.encoding = "utf-8"explicitly. - Drop caps:
get_text(' ', strip=True)inserts a spurious space at drop-cap span boundaries (<span>E</span>s war einmal→E s war einmal, splitting the first word). Fixed by extracting text with no separator and instead collapsing the source HTML's line-wrapped whitespace with a regex - the same class of bug asovos-skill-ovosblog's inline-<code>finding, different cause.
Collection hints
Responds to collection_hint values like "bechstein", "ludwig
bechstein", matched fuzzily (see COLLECTION_ALIASES in __init__.py).
Content type
Identifies as content_type: "story" or "tale". A search with a
content_type hint for anything else gets no response from this
provider.
Credits
Content sourced from Project Gutenberg. Scraping/extraction/caching logic ported from ovos-skill-andrew-lang-tales.
Category
Entertainment
Tags
#stories #fairytales #bechstein #german #provider
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ovos_skill_bechstein_tales-0.1.0.tar.gz.
File metadata
- Download URL: ovos_skill_bechstein_tales-0.1.0.tar.gz
- Upload date:
- Size: 25.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db4b6814c1bea90c1dcec709676df76a40f4d295b01dd1b1980eff9c393efd2f
|
|
| MD5 |
2390822779a1a5b6ca092d3f807be453
|
|
| BLAKE2b-256 |
b9cc96162291246e103c33b43e989c7948c131e1a6293e11070407589d339ae2
|
Provenance
The following attestation bundles were made for ovos_skill_bechstein_tales-0.1.0.tar.gz:
Publisher:
publish.yml on andlo/ovos-skill-bechstein-tales
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ovos_skill_bechstein_tales-0.1.0.tar.gz -
Subject digest:
db4b6814c1bea90c1dcec709676df76a40f4d295b01dd1b1980eff9c393efd2f - Sigstore transparency entry: 2214998799
- Sigstore integration time:
-
Permalink:
andlo/ovos-skill-bechstein-tales@6889f9377163c3c38b2284eebb575cf9258d12c1 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/andlo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6889f9377163c3c38b2284eebb575cf9258d12c1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ovos_skill_bechstein_tales-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ovos_skill_bechstein_tales-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
972e12af5d6bfb65f14355accaef7ecef59c20fbe9524df551298721a45ad6c1
|
|
| MD5 |
e1bacbaf0156fa6528d40bc4f547dd81
|
|
| BLAKE2b-256 |
a6c22abbe1612d141e8439eafb1437dea73bb81e381dc1b71054b13f3e73f64a
|
Provenance
The following attestation bundles were made for ovos_skill_bechstein_tales-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on andlo/ovos-skill-bechstein-tales
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ovos_skill_bechstein_tales-0.1.0-py3-none-any.whl -
Subject digest:
972e12af5d6bfb65f14355accaef7ecef59c20fbe9524df551298721a45ad6c1 - Sigstore transparency entry: 2214998819
- Sigstore integration time:
-
Permalink:
andlo/ovos-skill-bechstein-tales@6889f9377163c3c38b2284eebb575cf9258d12c1 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/andlo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@6889f9377163c3c38b2284eebb575cf9258d12c1 -
Trigger Event:
push
-
Statement type: