====== 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//index.json
===== Maintenance =====
==== Clearing a Feed ====
To reset a feed completely:
1. Delete output//
2. Delete cache/.xml
3. Re-run feed_read.py --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