- Implement RSS/Atom feed parser using feedparser library - Add RSS platform configuration with sample feeds (HN RSS, Lobsters RSS, Reddit RSS) - Support both RSS 2.0 and Atom formats with automatic detection - Extract and normalize: title, author, link, content, tags, timestamps - HTML entity unescaping and tag stripping for clean content - Fallback handling for missing fields - Users can add any RSS feed URL as a collection source 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
262 lines
6.3 KiB
JSON
262 lines
6.3 KiB
JSON
{
|
|
"platforms": {
|
|
"reddit": {
|
|
"name": "Reddit",
|
|
"icon": "🔺",
|
|
"color": "#ff4500",
|
|
"prefix": "r/",
|
|
"supports_communities": true,
|
|
"communities": [
|
|
{
|
|
"id": "programming",
|
|
"name": "Programming",
|
|
"display_name": "r/programming",
|
|
"icon": "💻",
|
|
"description": "General programming discussions"
|
|
},
|
|
{
|
|
"id": "python",
|
|
"name": "Python",
|
|
"display_name": "r/python",
|
|
"icon": "🐍",
|
|
"description": "Python programming language"
|
|
},
|
|
{
|
|
"id": "javascript",
|
|
"name": "JavaScript",
|
|
"display_name": "r/javascript",
|
|
"icon": "🟨",
|
|
"description": "JavaScript programming"
|
|
},
|
|
{
|
|
"id": "webdev",
|
|
"name": "Web Development",
|
|
"display_name": "r/webdev",
|
|
"icon": "🌐",
|
|
"description": "Web development discussions"
|
|
},
|
|
{
|
|
"id": "technology",
|
|
"name": "Technology",
|
|
"display_name": "r/technology",
|
|
"icon": "⚡",
|
|
"description": "Technology news and discussions"
|
|
}
|
|
]
|
|
},
|
|
"hackernews": {
|
|
"name": "Hacker News",
|
|
"icon": "🧮",
|
|
"color": "#ff6600",
|
|
"prefix": "",
|
|
"supports_communities": false,
|
|
"communities": [
|
|
{
|
|
"id": "front_page",
|
|
"name": "Front Page",
|
|
"display_name": "Hacker News",
|
|
"icon": "🧮",
|
|
"description": "Top stories from Hacker News"
|
|
},
|
|
{
|
|
"id": "new",
|
|
"name": "New Stories",
|
|
"display_name": "HN New",
|
|
"icon": "🆕",
|
|
"description": "Latest submissions"
|
|
},
|
|
{
|
|
"id": "ask",
|
|
"name": "Ask HN",
|
|
"display_name": "Ask HN",
|
|
"icon": "❓",
|
|
"description": "Questions for the community"
|
|
},
|
|
{
|
|
"id": "show",
|
|
"name": "Show HN",
|
|
"display_name": "Show HN",
|
|
"icon": "🎯",
|
|
"description": "User projects and demos"
|
|
}
|
|
]
|
|
},
|
|
"lobsters": {
|
|
"name": "Lobsters",
|
|
"icon": "🦞",
|
|
"color": "#800020",
|
|
"prefix": "",
|
|
"supports_communities": false,
|
|
"communities": [
|
|
{
|
|
"id": "all",
|
|
"name": "All Stories",
|
|
"display_name": "Lobsters",
|
|
"icon": "🦞",
|
|
"description": "All lobsters stories"
|
|
}
|
|
]
|
|
},
|
|
"github": {
|
|
"name": "GitHub",
|
|
"icon": "🐙",
|
|
"color": "#24292e",
|
|
"prefix": "",
|
|
"supports_communities": false,
|
|
"communities": [
|
|
{
|
|
"id": "trending",
|
|
"name": "Trending",
|
|
"display_name": "GitHub Trending",
|
|
"icon": "📈",
|
|
"description": "Trending repositories"
|
|
},
|
|
{
|
|
"id": "releases",
|
|
"name": "Releases",
|
|
"display_name": "New Releases",
|
|
"icon": "🎉",
|
|
"description": "Latest software releases"
|
|
}
|
|
]
|
|
},
|
|
"devto": {
|
|
"name": "Dev.to",
|
|
"icon": "📝",
|
|
"color": "#0a0a0a",
|
|
"prefix": "",
|
|
"supports_communities": false,
|
|
"communities": [
|
|
{
|
|
"id": "top",
|
|
"name": "Top Posts",
|
|
"display_name": "Dev.to Top",
|
|
"icon": "⭐",
|
|
"description": "Most popular dev posts"
|
|
},
|
|
{
|
|
"id": "latest",
|
|
"name": "Latest",
|
|
"display_name": "Dev.to Latest",
|
|
"icon": "🆕",
|
|
"description": "Recently published articles"
|
|
}
|
|
]
|
|
},
|
|
"stackoverflow": {
|
|
"name": "Stack Overflow",
|
|
"icon": "📚",
|
|
"color": "#f48024",
|
|
"prefix": "",
|
|
"supports_communities": false,
|
|
"communities": [
|
|
{
|
|
"id": "featured",
|
|
"name": "Featured",
|
|
"display_name": "SO Featured",
|
|
"icon": "⭐",
|
|
"description": "Featured questions"
|
|
},
|
|
{
|
|
"id": "newest",
|
|
"name": "Newest",
|
|
"display_name": "SO Newest",
|
|
"icon": "🆕",
|
|
"description": "Recent questions"
|
|
}
|
|
]
|
|
},
|
|
"rss": {
|
|
"name": "RSS Feeds",
|
|
"icon": "📡",
|
|
"color": "#ee802f",
|
|
"prefix": "",
|
|
"supports_communities": true,
|
|
"communities": [
|
|
{
|
|
"id": "https://hnrss.org/frontpage",
|
|
"name": "HN RSS",
|
|
"display_name": "HN RSS Feed",
|
|
"icon": "🧮",
|
|
"description": "Hacker News front page via RSS"
|
|
},
|
|
{
|
|
"id": "https://lobste.rs/rss",
|
|
"name": "Lobsters RSS",
|
|
"display_name": "Lobsters RSS Feed",
|
|
"icon": "🦞",
|
|
"description": "Lobsters community via RSS"
|
|
},
|
|
{
|
|
"id": "https://www.reddit.com/r/programming/.rss",
|
|
"name": "r/programming RSS",
|
|
"display_name": "r/programming RSS",
|
|
"icon": "💻",
|
|
"description": "Reddit programming subreddit via RSS"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"collection_targets": [
|
|
{
|
|
"platform": "reddit",
|
|
"community": "programming",
|
|
"max_posts": 75,
|
|
"priority": "high"
|
|
},
|
|
{
|
|
"platform": "reddit",
|
|
"community": "python",
|
|
"max_posts": 75,
|
|
"priority": "high"
|
|
},
|
|
{
|
|
"platform": "reddit",
|
|
"community": "javascript",
|
|
"max_posts": 50,
|
|
"priority": "medium"
|
|
},
|
|
{
|
|
"platform": "reddit",
|
|
"community": "webdev",
|
|
"max_posts": 50,
|
|
"priority": "medium"
|
|
},
|
|
{
|
|
"platform": "reddit",
|
|
"community": "technology",
|
|
"max_posts": 50,
|
|
"priority": "medium"
|
|
},
|
|
{
|
|
"platform": "hackernews",
|
|
"community": "front_page",
|
|
"max_posts": 100,
|
|
"priority": "high"
|
|
},
|
|
{
|
|
"platform": "hackernews",
|
|
"community": "ask",
|
|
"max_posts": 25,
|
|
"priority": "medium"
|
|
},
|
|
{
|
|
"platform": "hackernews",
|
|
"community": "show",
|
|
"max_posts": 25,
|
|
"priority": "medium"
|
|
},
|
|
{
|
|
"platform": "lobsters",
|
|
"community": "all",
|
|
"max_posts": 30,
|
|
"priority": "medium"
|
|
},
|
|
{
|
|
"platform": "rss",
|
|
"community": "https://hnrss.org/frontpage",
|
|
"max_posts": 50,
|
|
"priority": "low"
|
|
}
|
|
]
|
|
} |