Aggregating Crypto News
Overview
Fetch configured RSS feeds on demand, filter dated articles by coin/category and UTC time window, and rank them using keyword and recency scores. Source availability and coverage vary; the tool reports failed and disabled feeds rather than implying every source was checked successfully.
Prerequisites
The user prepares the Python environment before invoking this skill.
- Python 3.8+ installed
- Dependencies:
pip install feedparser requests pyyaml
- Internet connectivity for RSS feed access
Instructions
- Assess user intent - determine filters needed:
- General news: no filters, use defaults
- Coin-specific: extract symbol (BTC, ETH, etc.)
- Category-specific: extract category (defi, nft, regulatory, etc.)
- Time-specific: extract window (1h, 4h, 24h, 7d)
- Run the aggregator with appropriate filters:
# Default scan (top 20, past 24h, relevance sorted)
python ${CLAUDE_SKILL_DIR}/scripts/news_aggregator.py
# Coin-specific scan
python ${CLAUDE_SKILL_DIR}/scripts/news_aggregator.py --coin BTC --period 4h
# Category filter
python ${CLAUDE_SKILL_DIR}/scripts/news_aggregator.py --category defi --top 30
# Multiple filters
python ${CLAUDE_SKILL_DIR}/scripts/news_aggregator.py --coin ETH --category defi --period 24h --top 15
- Export results for downstream processing:
python ${CLAUDE_SKILL_DIR}/scripts/news_aggregator.py --format json --output news.json
- Present results to the user:
- Show source, title, age, and relevance score
- Highlight market-moving keywords if present
- Provide links for full articles
- Summarize configured/disabled, fetched/failed sources and articles found
- Report feed failures, including when other feeds return matching articles
- A zero-match query is distinct from an all-feed failure (exit 1)
- JSON
meta.feed_health records per-source parsed/window/undated counts and latest publication; CSV keeps diagnostics on stderr
- Undated and future-dated items are excluded from the requested time window
Output
Table showing articles ranked by relevance score (0-100) based on market-moving keyword detection, source authority, and recency:
CRYPTO NEWS AGGREGATOR — [generated UTC time]
[rank] [source] [headline] [age] [score]
Summary: [shown] articles | [attempted] sources | [matched] matches
Feed health: [fetched] fetched | [failed] failed | [disabled] disabled
[source]: failed — [HTTP/timeout/parse reason, when applicable]
This is a layout exampl…