Amiga-Z Wiki

β€œModern tools for old-school communities.”

User Tools

Site Tools


projects:feed_read

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.

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki