mcpField
R
rss-automation

rss-automation

github.com/aaaaqwqProductivity11193 installsUpdated 1w ago
Repository

About rss-automation

rss-automation monitors and aggregates RSS/Atom feeds for automated content tracking and notifications. It is for users who need filtered updates, duplicate tracking, and scheduled checks.

Key features

  1. 01Parse RSS 2.0 and Atom feeds
  2. 02Filter by keyword, date, and author
  3. 03Track seen entries and identify new items
  4. 04Push new items to notification channels
  5. 05Schedule feed checks with cron

Use cases

  1. 01Track multiple news or technology feeds
  2. 02Receive entries matching keyword or date filters
  3. 03Send new content periodically to Telegram or Slack

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aaaaqwq/agi-super-team --skill rss-automation

After installing, type/rss-automationin Claude Code to confirm it loaded.

Details

From the project README

RSS Automation

  • Author: Daniel Li
  • Copyright © Daniel Li. All rights reserved.

Monitor and aggregate RSS/Atom feeds for automated content tracking and notification.

Capabilities

  • Parse RSS 2.0 and Atom feeds
  • Filter entries by keywords, date, author
  • Track seen/new entries to avoid duplicates
  • Push new items to Telegram, Slack, or other channels
  • Schedule periodic feed checks via cron

Usage

Parse a Feed
import feedparser

feed = feedparser.parse("https://example.com/feed.xml")
for entry in feed.entries[:10]:
    print(f"{entry.title} - {entry.link}")
    print(f"  Published: {entry.get('published', 'N/A')}")
Monitor Multiple Feeds
import feedparser, json, hashlib
from pathlib import Path

SEEN_FILE = Path("~/.openclaw/rss-seen.json").expanduser()

def load_seen():
    if SEEN_FILE.exists():
        return json.loads(SEEN_FILE.read_text())
    return {}

def save_seen(seen):
    SEEN_FILE.write_text(json.dumps(seen))

def check_feed(url, seen):
    feed = feedparser.parse(url)
    new_entries = []
    for entry in feed.entries:
        entry_id = hashlib.md5(entry.link.encode()).hexdigest()
        if entry_id not in seen.get(url, []):
            new_entries.append(entry)
            seen.setdefault(url, []).append(entry_id)
    return new_entries
Cron Integration

Set up a cron job to check feeds periodically:

Schedule: every 2 hours
Payload: "Check RSS feeds and push new items"

Dependencies

pip install feedparser

Feed Sources Examples

SourceFeed URL
Hacker Newshttps://hnrss.org/frontpage
TechCrunchhttps://techcrunch.com/feed/
ArXiv CS.AIhttp://arxiv.org/rss/cs.AI
GitHub TrendingUse web scraping instead

Important Notes

  • Some feeds require User-Agent headers
  • Rate limit feed checks (don't poll more than every 15 minutes)
  • Store seen entries persistently to survive restarts

Comments

Markdown supported