Reads daily CC-licensed flash sci-fi from 365tomorrows.com aloud - provider skill for ovos-common-reading-pipeline-plugin
Project description
365tomorrows Stories (provider)
A provider skill for ovos-common-reading-pipeline-plugin, reading flash science fiction from 365tomorrows.com aloud - the full archive (~7600 stories at time of writing), not just the latest few.
A new short story (≤600 words) every day since 2005, licensed CC BY-NC-ND 3.0 - attribution required, non-commercial, no derivatives (reading the text aloud unmodified is a straightforward reproduction, not a derivative work).
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.
Install
pip install ovos-skill-365tomorrows-stories ovos-common-reading-pipeline-plugin
Source
Indexes the full archive, not just recent stories: paginates
through WordPress's REST API (wp-json/wp/v2/posts, filtered to the
"Story" category - excludes the site's separate "Voices of Tomorrow"
audio posts and "Fragments"), ~7600 stories at time of writing across
~76 pages of 100. Refreshed at most once every 24 hours (the archive is
mostly static - only ~1 new story/day).
Each listing page already includes full post content, so the index
captures each story's author (parsed from its first paragraph, always
Author: <name>) without a second request per story - only reading a
specific chosen story needs one more request, to that story's own
wp-json/wp/v2/posts/<id> endpoint.
(An earlier version of this skill used the RSS feed instead, which only exposes the ~10 most recent stories - the REST API change was made specifically to reach the full archive.)
Translation
Unlike the Gutenberg-sourced fairy-tale providers in this family
(ovos-skill-andersen-tales, ovos-skill-grimm-tales,
ovos-skill-bechstein-tales, ovos-skill-cosquin-tales,
ovos-skill-andrew-lang-tales), this provider does machine-translate
for non-English devices - same approach as ovos-skill-ovosblog/
ovos-skill-arxiv-papers. These are short (≤600 word), self-contained
stories, a much smaller translation-quality risk than a full fairy
tale's literary prose (see the reasoning in
ovos-common-reading-pipeline-plugin#5).
Matches search phrases against translated titles and discloses via
"machine_translated": true/false in the search response. If no
translation plugin is available, this provider does not respond to
searches at all for a non-English device, rather than silently offering
English content the user didn't ask for.
Collection hints
Responds to collection_hint values in the device's own language -
e.g. "365 tomorrows"/"tomorrows" on English, "science fiction noveller"
on Danish, "racconti di fantascienza" on Italian - matched fuzzily
against that language's own alias list (see
locale/<lang>/collection.voc). Like ovos-skill-ovosblog/
ovos-skill-arxiv-papers, this provider works on any device language,
so aliases fall back to English for any language we haven't bothered
translating - see ovos-common-reading-pipeline-plugin#26.
The collection name itself ("365tomorrows") stays untranslated - it's a
proper noun.
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.
"Surprise me"
A search with no specific phrase but a matching collection_hint
returns the most recent story, by publish date.
Credits
Content from 365tomorrows.com, licensed
CC BY-NC-ND 3.0.
Author credited per-story via the author field in every search
response.
Category
Entertainment
Tags
#stories #scifi #flashfiction #creativecommons #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_365tomorrows_stories-0.1.2.tar.gz.
File metadata
- Download URL: ovos_skill_365tomorrows_stories-0.1.2.tar.gz
- Upload date:
- Size: 28.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff09d51813c329fc6077a65662a1ecc9605e0c8434af7460522c1d3c993ab546
|
|
| MD5 |
35d66a2b9156ace5f7e82a38cd8bc776
|
|
| BLAKE2b-256 |
a4236da9dad9629ee96b7d24030da2fa031673cff326e51dfa46a9c8c6cf88b6
|
Provenance
The following attestation bundles were made for ovos_skill_365tomorrows_stories-0.1.2.tar.gz:
Publisher:
publish.yml on andlo/ovos-skill-365tomorrows-stories
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ovos_skill_365tomorrows_stories-0.1.2.tar.gz -
Subject digest:
ff09d51813c329fc6077a65662a1ecc9605e0c8434af7460522c1d3c993ab546 - Sigstore transparency entry: 2218323731
- Sigstore integration time:
-
Permalink:
andlo/ovos-skill-365tomorrows-stories@62e0d028cdf31f6f16fab104db7661ee728821c1 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/andlo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@62e0d028cdf31f6f16fab104db7661ee728821c1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ovos_skill_365tomorrows_stories-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ovos_skill_365tomorrows_stories-0.1.2-py3-none-any.whl
- Upload date:
- Size: 28.9 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 |
006e488a4787048b07d415015920d9a36ab55d263ffed96aa0ca0b91cf13df12
|
|
| MD5 |
abaf42e578e495eb2e3116570f007141
|
|
| BLAKE2b-256 |
3f15b4a63bc0167f606c3a10e6e7df4130581530f28d0fba550f34440452d525
|
Provenance
The following attestation bundles were made for ovos_skill_365tomorrows_stories-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on andlo/ovos-skill-365tomorrows-stories
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ovos_skill_365tomorrows_stories-0.1.2-py3-none-any.whl -
Subject digest:
006e488a4787048b07d415015920d9a36ab55d263ffed96aa0ca0b91cf13df12 - Sigstore transparency entry: 2218323740
- Sigstore integration time:
-
Permalink:
andlo/ovos-skill-365tomorrows-stories@62e0d028cdf31f6f16fab104db7661ee728821c1 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/andlo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@62e0d028cdf31f6f16fab104db7661ee728821c1 -
Trigger Event:
push
-
Statement type: