forked from genewildish/Mainline
Major changes: - Pipeline architecture with capability-based dependency resolution - Effects plugin system with performance monitoring - Display abstraction with multiple backends (terminal, null, websocket) - Camera system for viewport scrolling - Sensor framework for real-time input - Command-and-control system via ntfy - WebSocket display backend for browser clients - Comprehensive test suite and documentation Issue #48: ADR for preset scripting language included This commit consolidates 110 individual commits into a single feature integration that can be reviewed and tested before further refinement.
1.9 KiB
1.9 KiB
name, description, compatibility, metadata
| name | description | compatibility | metadata | ||||
|---|---|---|---|---|---|---|---|
| mainline-sources | Adding new RSS feeds and data sources to Mainline | opencode |
|
What This Skill Covers
This skill covers how to add new data sources (RSS feeds, poetry) to Mainline.
Key Concepts
Feeds Dictionary (engine/sources.py)
All feeds are defined in a simple dictionary:
FEEDS = {
"Feed Name": "https://example.com/feed.xml",
# Category comments help organize:
# Science & Technology
# Economics & Business
# World & Politics
# Culture & Ideas
}
Poetry Sources
Project Gutenberg URLs for public domain literature:
POETRY_SOURCES = {
"Author Name": "https://www.gutenberg.org/cache/epub/1234/pg1234.txt",
}
Language & Script Mapping
The sources.py also contains language/script detection mappings used for auto-translation and font selection.
Adding a New RSS Feed
- Edit
engine/sources.py - Add entry to
FEEDSdict under appropriate category:"My Feed": "https://example.com/feed.xml", - The feed will be automatically discovered on next run
Feed Requirements
- Must be valid RSS or Atom XML
- Should have
<title>elements for items - Must be HTTP/HTTPS accessible
Adding Poetry Sources
- Edit
engine/sources.py - Add to
POETRY_SOURCESdict:"Author": "https://www.gutenberg.org/cache/epub/XXXX/pgXXXX.txt",
Poetry Requirements
- Plain text (UTF-8)
- Project Gutenberg format preferred
- No DRM-protected sources
Data Flow
Feeds are fetched via engine/fetch.py:
fetch_feed(url)- Fetches and parses RSS/Atom- Results cached for fast restarts
- Filtered via
engine/filter.pyfor content cleaning
Categories
Organize new feeds by category using comments:
- Science & Technology
- Economics & Business
- World & Politics
- Culture & Ideas