Skip to main content

Andrew Lang Tales (provider)

A provider skill for ovos-common-reading-pipeline-plugin, delivering Andrew Lang's twelve "Coloured" Fairy Books.

"These fairy tales are the oldest stories in the world." — Andrew Lang, preface to The Green Fairy Book

Tests PyPI version

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.

English only, no translation. Unlike ovos-skill-andersen-tales/ ovos-skill-grimm-tales (real per-language sources) or ovos-skill-ovosblog/ovos-skill-arxiv-papers (machine-translated), this provider has no non-English content and does not attempt to translate - the stories themselves are long, literary prose, where per-request machine translation is both expensive and a much bigger quality risk than translating a short blog post or paper abstract (see ovos-common-reading-pipeline-plugin#5 for the reasoning). It answers searches made in English (en-*) and stays silent for every other language, whatever the device's own language is (see "Languages" below).

Install

pip install ovos-skill-andrew-lang-tales ovos-common-reading-pipeline-plugin

Story index

Unlike the other providers here, the story index (title, book, author, Project Gutenberg anchor per story) is bundled with this package (locale/en-us/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.

382 stories across 11 of Andrew Lang's 12 "Coloured" Fairy Books (the 12th, the Olive Fairy Book, uses an incompatible page-based anchor scheme on Gutenberg and isn't included - tracked as a known gap, see scripts/build_lang_index.py's docstring).

The index was built once via scripts/build_lang_index.py, which:

  • Fetches Andrew Lang's master index (Gutenberg ebook #30580)
  • Repairs anchors for books Gutenberg has since re-published with a different scheme (Red and Brown Fairy Books)
  • Validates every entry actually extracts real text before including it

Languages

English only. Andrew Lang's Fairy Books are sourced from Project Gutenberg in English; no other language editions exist for this collection, and this provider makes no attempt to machine-translate (see the note above).

The provider always loads, and decides per search whether to answer: a search made in English gets an answer, any other language gets none. The language of a search is the pipeline plugin's lang field, else the language of the session the search came from, else (an older plugin sends neither) the device's own language. That matters on a HiveMind hub, where one ovos-core serves many users at once, each session in its own language: a French session must not get English stories, and an English session must still get them on a hub whose own language is French. A ping that names a language (the same way) only gets a pong when that is English. Fetching a story is never gated on language - it is addressed to this provider directly.

Title matching

Titles match regardless of case, accents, punctuation, a leading article and a leading "Story Of" / "History Of" / "Tale Of", so "the six swans" finds The Six Swans and "the three bears" finds The Story Of The Three Bears at full confidence. For "X, Or Y" titles each half counts too, slightly below the whole title: "cinderella" finds Cinderella, Or The Little Glass Slipper and "puss in boots" The Master Cat; Or, Puss In Boots. A search that names no title at all ("tell me a story") gets one random story at confidence 0.9, or 1.0 when it named this collection.

Collection hints

Responds to collection_hint values like "andrew lang", "lang", "the fairy books", matched fuzzily (see COLLECTION_ALIASES in __init__.py). "lang" alone is short enough to be worth double-checking for false positives - verified via match_one against "grimm", "andersen", "arxiv", "language", etc.

Content type

Identifies as content_type: "story" or "tale". A search with a content_type hint for anything else (e.g. "article", "paper") gets no response from this provider.

Credits

Content sourced from Project Gutenberg. Scraping/extraction logic ported from ovos-skill-worldtales (archived - this provider supersedes it).

Category

Entertainment

Tags

#stories #fairytales #gutenberg #provider

Metadata

Release files for ovos-skill-andrew-lang-tales 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-skill-andrew-lang-tales 0.1.5
File Size Uploaded
ovos_skill_andrew_lang_tales-0.1.5.tar.gz 38.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-skill-andrew-lang-tales 0.1.5
File Interpreter ABI Platform
ovos_skill_andrew_lang_tales-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 69.0 kB

Release files / ovos_skill_andrew_lang_tales-0.1.5.tar.gz

Download URL ovos_skill_andrew_lang_tales-0.1.5.tar.gz
Size 38.1 kB
Tags Source
SHA-256 checksum
How to use checksums
90ffa6d336d457b675e69ecf083beb017cef968a0e32ce5585097a72dcadd3cf
BLAKE2b-256 checksum
How to use checksums
c5abb119117e5f074daa6784771a78a8d2b77e1890c0f388ac379781b6dfba15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / ovos_skill_andrew_lang_tales-0.1.5-py3-none-any.whl

Download URL ovos_skill_andrew_lang_tales-0.1.5-py3-none-any.whl
Size 30.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2a753f2a1424420608daeddf9dab3d28c551828fcf3444c7071098cdc1631760
BLAKE2b-256 checksum
How to use checksums
fb6d90494f65d6d1832aca2b98432f1806b8279dc6ee072ed11a5de12254c883
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page