projects:feed_read
Table of Contents
Feed Read v2.2
Overview
Feed Read is a multi-feed RSS engine for Mystic BBS.
Features:
- Multi-feed support
- Stable article IDs (GUID tracking)
- Mystic ANSI output
- Automatic Mystic menu generation
- Per-article storage
- Quote mode for message posting
- Feed caching
- Duplicate prevention
This system allows users to:
- Browse RSS feeds inside Mystic
- Select an article
- Quote or insert the article into a JAM message
Requirements
- Python 3.9+
- feedparser
- unidecode
- Mystic BBS (JAM message base)
Install dependencies:
pip install feedparser unidecode
Directory Structure
feed_read/
│
├── feed_read.py
├── feeds.ini
│
├── feeds/
│ ├── cnn.ini
│ ├── slashdot.ini
│
├── output/
│ ├── cnn.txt
│ ├── cnn/
│ │ ├── index.json
│ │ ├── 1.txt
│
├── cache/
│
└── mystic/
└── feeds.mnu
feeds.ini
[Feeds] cnn = feeds/cnn.ini slashdot = feeds/slashdot.ini [Menu] menuFile = mystic/feeds.mnu menuTitle = RSS Feed Reader
Individual Feed Config
Example: feeds/cnn.ini
[Feed] titleName = CNN News rssurl = https://rss.cnn.com/rss/edition.rss outputFileName = output/cnn.txt maxPosts = 5 cacheMinutes = 15 [Theme] headerColor = |09 titleColor = |10 textColor = |15 [Cleanup] removePattern =
Running Feed Read
Process all feeds:
python3 feed_read.py --all
Process single feed:
python3 feed_read.py --feed cnn
List feeds:
python3 feed_read.py --list
Mystic Integration
Display Feeds
Add menu entry to load:
mystic/feeds.mnu
Quote Article Into Message
From Mystic menu:
python3 feed_read.py --quote cnn 3 > temp/rss.txt
Then open message editor and insert temp/rss.txt.
Insert Without Quote
python3 feed_read.py --article cnn 3 > temp/rss.txt
Stable Article IDs
Article IDs are based on RSS GUID values.
- IDs never shift
- Old articles retain same number
- Only new articles receive new IDs
- Duplicate posts are prevented
Tracking stored in:
output/<feed>/index.json
Maintenance
Clearing a Feed
To reset a feed completely:
1. Delete output/<feed>/ 2. Delete cache/<feed>.xml 3. Re-run feed_read.py --feed <feed>
Adjusting Max Posts
Change:
maxPosts = 5
Changing Colors
Modify Theme section per feed.
Recommended Cron Job
Run every 15 minutes:
*/15 * * * * cd /path/to/feed_read && python3 feed_read.py --all
Security Notes
- Does not execute feed content
- HTML tags are stripped
- Unicode normalized
- No direct JAM writing (Mystic handles message creation)
Future Expansion Ideas
- Category filtering
- Per-user feed subscriptions
- JSON output mode
- HTML export mode
- Direct JAM API writer (advanced)
- Feed health monitoring
Version History
v2.0 – Multi-feed engine v2.1 – Article extraction + quote mode v2.2 – Stable GUID tracking
Author: “BIG” Rich Lawrence License: CC BY-SA 4.0
projects/feed_read.txt · Last modified: by freedomotter
