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
