mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 21:03:01 +00:00
245 lines
7.1 KiB
Markdown
245 lines
7.1 KiB
Markdown
# Adding Custom RSS Feeds & Sports - Complete Guide
|
|
|
|
This guide shows you **3 different ways** to add custom RSS feeds like F1, MotoGP, or any personal feeds to your news manager.
|
|
|
|
## Quick Examples
|
|
|
|
### F1 Racing Feeds
|
|
```bash
|
|
# BBC F1 (Recommended - works well)
|
|
python3 add_custom_feed_example.py add "BBC F1" "http://feeds.bbci.co.uk/sport/formula1/rss.xml"
|
|
|
|
# Motorsport.com F1
|
|
python3 add_custom_feed_example.py add "Motorsport F1" "https://www.motorsport.com/rss/f1/news/"
|
|
|
|
# Formula1.com Official
|
|
python3 add_custom_feed_example.py add "F1 Official" "https://www.formula1.com/en/latest/all.xml"
|
|
```
|
|
|
|
### Other Sports
|
|
```bash
|
|
# MotoGP
|
|
python3 add_custom_feed_example.py add "MotoGP" "https://www.motogp.com/en/rss/news"
|
|
|
|
# Tennis
|
|
python3 add_custom_feed_example.py add "Tennis" "https://www.atptour.com/en/rss/news"
|
|
|
|
# Golf
|
|
python3 add_custom_feed_example.py add "Golf" "https://www.pgatour.com/news.rss"
|
|
|
|
# Soccer/Football
|
|
python3 add_custom_feed_example.py add "ESPN Soccer" "https://www.espn.com/espn/rss/soccer/news"
|
|
```
|
|
|
|
### Personal/Blog Feeds
|
|
```bash
|
|
# Personal blog
|
|
python3 add_custom_feed_example.py add "My Blog" "https://myblog.com/rss.xml"
|
|
|
|
# Tech news
|
|
python3 add_custom_feed_example.py add "TechCrunch" "https://techcrunch.com/feed/"
|
|
|
|
# Local news
|
|
python3 add_custom_feed_example.py add "Local News" "https://localnews.com/rss"
|
|
```
|
|
|
|
---
|
|
|
|
## Method 1: Command Line (Easiest)
|
|
|
|
### Add a Feed
|
|
```bash
|
|
python3 add_custom_feed_example.py add "FEED_NAME" "RSS_URL"
|
|
```
|
|
|
|
### List All Feeds
|
|
```bash
|
|
python3 add_custom_feed_example.py list
|
|
```
|
|
|
|
### Remove a Feed
|
|
```bash
|
|
python3 add_custom_feed_example.py remove "FEED_NAME"
|
|
```
|
|
|
|
### Example: Adding F1
|
|
```bash
|
|
# Step 1: Check current feeds
|
|
python3 add_custom_feed_example.py list
|
|
|
|
# Step 2: Add BBC F1 feed
|
|
python3 add_custom_feed_example.py add "BBC F1" "http://feeds.bbci.co.uk/sport/formula1/rss.xml"
|
|
|
|
# Step 3: Verify it was added
|
|
python3 add_custom_feed_example.py list
|
|
```
|
|
|
|
---
|
|
|
|
## Method 2: Web Interface
|
|
|
|
1. **Open Web Interface**: Go to `http://your-display-ip:5000`
|
|
2. **Navigate to News Tab**: Click the "News Manager" tab
|
|
3. **Add Custom Feed**:
|
|
- Enter feed name in "Feed Name" field (e.g., "BBC F1")
|
|
- Enter RSS URL in "RSS Feed URL" field
|
|
- Click "Add Feed" button
|
|
4. **Enable the Feed**: Check the checkbox next to your new feed
|
|
5. **Save Settings**: Click "Save News Settings"
|
|
|
|
---
|
|
|
|
## Method 3: Direct Config Edit
|
|
|
|
Edit `config/config.json` directly:
|
|
|
|
```json
|
|
{
|
|
"news_manager": {
|
|
"enabled": true,
|
|
"enabled_feeds": ["NFL", "NCAA FB", "BBC F1"],
|
|
"custom_feeds": {
|
|
"BBC F1": "http://feeds.bbci.co.uk/sport/formula1/rss.xml",
|
|
"Motorsport F1": "https://www.motorsport.com/rss/f1/news/",
|
|
"My Blog": "https://myblog.com/rss.xml"
|
|
},
|
|
"headlines_per_feed": 2
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Finding RSS Feeds
|
|
|
|
### Popular Sports RSS Feeds
|
|
|
|
| Sport | Source | RSS URL |
|
|
|-------|--------|---------|
|
|
| **F1** | BBC Sport | `http://feeds.bbci.co.uk/sport/formula1/rss.xml` |
|
|
| **F1** | Motorsport.com | `https://www.motorsport.com/rss/f1/news/` |
|
|
| **MotoGP** | Official | `https://www.motogp.com/en/rss/news` |
|
|
| **Tennis** | ATP Tour | `https://www.atptour.com/en/rss/news` |
|
|
| **Golf** | PGA Tour | `https://www.pgatour.com/news.rss` |
|
|
| **Soccer** | ESPN | `https://www.espn.com/espn/rss/soccer/news` |
|
|
| **Boxing** | ESPN | `https://www.espn.com/espn/rss/boxing/news` |
|
|
| **UFC/MMA** | ESPN | `https://www.espn.com/espn/rss/mma/news` |
|
|
|
|
### How to Find RSS Feeds
|
|
1. **Look for RSS icons** on websites
|
|
2. **Check `/rss`, `/feed`, or `/rss.xml`** paths
|
|
3. **Use RSS discovery tools** like RSS Feed Finder
|
|
4. **Check site footers** for RSS links
|
|
|
|
### Testing RSS Feeds
|
|
```bash
|
|
# Test if a feed works before adding it
|
|
python3 -c "
|
|
import feedparser
|
|
import requests
|
|
url = 'YOUR_RSS_URL_HERE'
|
|
try:
|
|
response = requests.get(url, timeout=10)
|
|
feed = feedparser.parse(response.content)
|
|
print(f'SUCCESS: Feed works! Title: {feed.feed.get(\"title\", \"N/A\")}')
|
|
print(f'{len(feed.entries)} articles found')
|
|
if feed.entries:
|
|
print(f'Latest: {feed.entries[0].title}')
|
|
except Exception as e:
|
|
print(f'ERROR: {e}')
|
|
"
|
|
```
|
|
|
|
---
|
|
|
|
## Advanced Configuration
|
|
|
|
### Controlling Feed Behavior
|
|
|
|
```json
|
|
{
|
|
"news_manager": {
|
|
"headlines_per_feed": 3, // Headlines from each feed
|
|
"scroll_speed": 2, // Pixels per frame
|
|
"scroll_delay": 0.02, // Seconds between updates
|
|
"rotation_enabled": true, // Rotate content to avoid repetition
|
|
"rotation_threshold": 3, // Cycles before rotating
|
|
"update_interval": 300 // Seconds between feed updates
|
|
}
|
|
}
|
|
```
|
|
|
|
### Feed Priority
|
|
Feeds are displayed in the order they appear in `enabled_feeds`:
|
|
```json
|
|
"enabled_feeds": ["NFL", "BBC F1", "NCAA FB"] // NFL first, then F1, then NCAA
|
|
```
|
|
|
|
### Custom Display Names
|
|
You can use any display name for feeds:
|
|
```bash
|
|
python3 add_custom_feed_example.py add "Formula 1" "http://feeds.bbci.co.uk/sport/formula1/rss.xml"
|
|
python3 add_custom_feed_example.py add "Basketball News" "https://www.espn.com/espn/rss/nba/news"
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Feed Not Working?
|
|
1. **Test the RSS URL** using the testing command above
|
|
2. **Check for HTTPS vs HTTP** - some feeds require secure connections
|
|
3. **Verify the feed format** - must be valid RSS or Atom
|
|
4. **Check rate limiting** - some sites block frequent requests
|
|
|
|
### Common Issues
|
|
- **403 Forbidden**: Site blocks automated requests (try different feed)
|
|
- **SSL Errors**: Use HTTP instead of HTTPS if available
|
|
- **No Content**: Feed might be empty or incorrectly formatted
|
|
- **Slow Loading**: Increase timeout in news manager settings
|
|
|
|
### Feed Alternatives
|
|
If one feed doesn't work, try alternatives:
|
|
- **ESPN feeds** sometimes have access restrictions
|
|
- **BBC feeds** are generally reliable
|
|
- **Official sport websites** often have RSS feeds
|
|
- **News aggregators** like Google News have topic-specific feeds
|
|
|
|
---
|
|
|
|
## Real-World Example: Complete F1 Setup
|
|
|
|
```bash
|
|
# 1. List current setup
|
|
python3 add_custom_feed_example.py list
|
|
|
|
# 2. Add multiple F1 sources for better coverage
|
|
python3 add_custom_feed_example.py add "BBC F1" "http://feeds.bbci.co.uk/sport/formula1/rss.xml"
|
|
python3 add_custom_feed_example.py add "Motorsport F1" "https://www.motorsport.com/rss/f1/news/"
|
|
|
|
# 3. Add other racing series
|
|
python3 add_custom_feed_example.py add "MotoGP" "https://www.motogp.com/en/rss/news"
|
|
|
|
# 4. Verify all feeds work
|
|
python3 simple_news_test.py
|
|
|
|
# 5. Check final configuration
|
|
python3 add_custom_feed_example.py list
|
|
```
|
|
|
|
Result: Your display will now rotate between NFL, NCAA FB, BBC F1, Motorsport F1, and MotoGP headlines!
|
|
|
|
---
|
|
|
|
## Pro Tips
|
|
|
|
1. **Start Small**: Add one feed at a time and test it
|
|
2. **Mix Sources**: Use multiple sources for the same sport for better coverage
|
|
3. **Monitor Performance**: Too many feeds can slow down updates
|
|
4. **Use Descriptive Names**: "BBC F1" is better than just "F1"
|
|
5. **Test Regularly**: RSS feeds can change or break over time
|
|
6. **Backup Config**: Save your `config.json` before making changes
|
|
|
|
---
|
|
|
|
**Need help?** The news manager is designed to be flexible and user-friendly. Start with the command line method - it's the easiest way to get started! |