====== 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