Skip to main content

Reads the OpenVoiceOS blog aloud - provider skill for ovos-skill-common-reading

Project description

OVOS Blog

A provider skill for ovos-common-reading-pipeline-plugin, reading the OpenVoiceOS blog aloud.

This exists to prove a point: common-reading isn't just for fairy tales. It's an "article" provider, not a storyteller.

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.

Install

pip install ovos-skill-ovosblog ovos-common-reading-pipeline-plugin

Source

Feeds from https://blog.openvoiceos.org/feed.xml (RSS 2.0). The feed already contains full article HTML in <description>, not just a summary, so no separate page fetch is needed - just the feed itself (refreshed at most once an hour, matching the feed's own <ttl>60</ttl>).

Translation

The feed is English-only. If the device language isn't English, this provider machine-translates:

  • titles, before matching a spoken phrase against them (a Danish user speaks a Danish phrase, so that's what has to be matched - not the English original), and
  • the full article text, when actually reading it aloud.

using whatever ovos-plugin-manager language-translation plugin is configured (OVOSLangTranslationFactory.create()).

Every search response includes a "machine_translated": true/false field - ovos-common-reading-pipeline-plugin is expected to disclose this before reading the content aloud, so users know it's a machine translation rather than an original-language text.

If no translation plugin is installed/configured, this provider does not respond to searches at all for a non-English device - it would be misleading to offer an article it can only actually deliver in English when the user asked in (and expects) their own language. (English devices never need a translator and always get a response.)

Note for anyone comparing providers: unlike ovos-skill-andersen-tales/ovos-skill-grimm-tales/ ovos-skill-andrew-lang-tales, which check a fixed SUPPORTED_LANGUAGES set at load time and refuse to load at all otherwise, this provider always loads regardless of device language - it can't know in advance whether a translation plugin will be available, so it always registers its bus events and decides per-search instead (see above).

Collection hints

Responds to collection_hint values in the device's own language - e.g. "ovos blog"/"openvoiceos blog" on English, "ovos nyheder" on Danish, "blog de ovos" on Spanish - matched fuzzily against that language's own alias list (see locale/<lang>/collection.voc). Unlike ovos-skill-andersen-tales/ovos-skill-grimm-tales (a fixed set of languages), this provider works on any device language, so aliases fall back to English for any language we haven't bothered translating

Content type

Responds to content_type hints of "article", "blog", "news", or "post". Ignores everything else (e.g. "story", "poem").

"Surprise me"

A search with no specific phrase but a matching collection_hint (e.g. "read me something from the OVOS blog") returns the most recent post, by pubDate.

Credits

Content and feed from blog.openvoiceos.org, maintained by the OpenVoiceOS community.

Category

News

Tags

#news #blog #openvoiceos #rss #provider

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

ovos_skill_ovosblog-0.1.2.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

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

ovos_skill_ovosblog-0.1.2-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file ovos_skill_ovosblog-0.1.2.tar.gz.

File metadata

  • Download URL: ovos_skill_ovosblog-0.1.2.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ovos_skill_ovosblog-0.1.2.tar.gz
Algorithm Hash digest
SHA256 42b9102fba103bee9c9f742f026fa0346294e4db09e0ba58aff25221511bf1c7
MD5 ffcc6daf5dbd0830c5412da946bdd51a
BLAKE2b-256 0a2ecad6f2e0136412253da50f3f16554480f78ceb0f6e9b932800450c4866e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ovos_skill_ovosblog-0.1.2.tar.gz:

Publisher: publish.yml on andlo/ovos-skill-ovosblog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ovos_skill_ovosblog-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_skill_ovosblog-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fcd0343d6322014e8a505c756037340b6f24204801680595a03ab380630c2467
MD5 8478611b3171735bbdb56f8f58899197
BLAKE2b-256 934f58bf91cc5d81d50930e8c230abdaf17f67ff497f6573c15822c2ff062809

See more details on using hashes here.

Provenance

The following attestation bundles were made for ovos_skill_ovosblog-0.1.2-py3-none-any.whl:

Publisher: publish.yml on andlo/ovos-skill-ovosblog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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