A comprehensive RSS feed aggregator and news reader specifically designed for cybersecurity professionals. This application automatically fetches, analyzes, and summarizes security news from leading infosec sources, providing AI-powered relevance scoring and threat analysis.
- RSS Feed Aggregation: Automatically fetches news from 15+ leading infosec sources
 - AI-Powered Analysis: Uses OpenAI to generate summaries and threat analysis
 - Relevance Scoring: Intelligent filtering based on cybersecurity keywords
 - Real-time Updates: Scheduled feed updates every 30 minutes (configurable)
 - Modern Web Interface: Responsive, intuitive dashboard
 
- The Hacker News
 - SecurityWeek
 - ThreatPost
 - Dark Reading
 - Bleeping Computer
 - KrebsOnSecurity
 - Schneier on Security
 - CSO Online
 - SC Magazine
 - Infosecurity Magazine
 - Help Net Security
 - Security Affairs
 - The Record
 - CyberScoop
 - Cyber Security Hub
 
- Smart Filtering: Filter by source, relevance score, and date
 - Search Functionality: Full-text search across all articles
 - Threat Analysis: AI-powered severity assessment and recommendations
 - Keyword Management: Customizable relevance keywords
 - Database Management: Cleanup old articles and manage storage
 - Feed Health Monitoring: Test and monitor RSS feed accessibility
 
- Python 3.8 or higher
 - OpenAI API key (optional, for AI features)
 - Modern web browser
 
- 
Clone the repository
git clone <repository-url> cd Infosec_New_Reader
 - 
Create a virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
 - 
Install dependencies
pip install -r requirements.txt
 - 
Set up environment variables Create a
.envfile in the project root:# OpenAI API Configuration (optional) OPENAI_API_KEY=your_openai_api_key_here # Flask Configuration FLASK_SECRET_KEY=your_secret_key_here FLASK_DEBUG=True
 - 
Initialize the database The database will be automatically created when you first run the application.
 
- 
Activate the virtual environment
source venv/bin/activate # On Windows: venv\Scripts\activate
 - 
Run the application
python app.py
 - 
Access the web interface Open your browser and navigate to
http://localhost:5000 
On first run, the application will:
- Create the SQLite database
 - Perform an initial RSS feed fetch
 - Start the scheduled update service
 
You can manually trigger RSS feed updates by:
- Clicking the "Update Feeds" button in the navigation
 - Using the API endpoint: 
POST /api/update 
- Quick statistics overview
 - Latest news preview
 - Quick action buttons
 - Popular keywords display
 
- Comprehensive news feed with filtering
 - Relevance score indicators
 - Source filtering
 - Article details modal
 
- Full-text search across all articles
 - Advanced filtering options
 - Search result highlighting
 - Search tips and suggestions
 
- RSS feed status monitoring
 - Feed health testing
 - Source-specific article viewing
 - Feed accessibility reports
 
- Application configuration
 - Database management
 - Keyword customization
 - API configuration
 
Edit config.py to add or modify RSS feeds:
RSS_FEEDS = {
    "Source Name": "https://source.com/rss/feed",
    # Add more feeds here
}Customize keywords in config.py:
RELEVANCE_KEYWORDS = [
    "vulnerability", "exploit", "breach",
    # Add your custom keywords
]Modify the update frequency in config.py:
UPDATE_INTERVAL_MINUTES = 30  # Change as neededGET /api/news- Get latest news articlesGET /api/search?q=<query>- Search articlesGET /api/news?source=<source>- Get articles by source
POST /api/update- Manual feed updateGET /api/statistics- System statisticsGET /api/sources- Available sourcesGET /api/feeds/status- Feed statusGET /api/feeds/test- Test feed accessibilityGET /api/keywords- Relevance keywords
The application uses SQLite with the following tables:
id: Primary keytitle: Article titlelink: Article URLdescription: Article descriptioncontent: Full article contentsummary: AI-generated summarysource: RSS feed sourcepublished_date: Publication daterelevance_score: Calculated relevance (0-10)keywords_found: JSON array of matched keywords
id: Primary keyname: Feed nameurl: RSS feed URLlast_fetch: Last fetch timestampstatus: Feed status (active/inactive)
- Article Summarization: Generate concise summaries
 - Threat Analysis: Assess severity and provide recommendations
 - Content Classification: Categorize articles by threat type
 
If OpenAI API is not configured, the application will:
- Use simple text extraction for summaries
 - Calculate relevance based on keyword matching
 - Provide basic threat categorization
 
- API keys are stored in environment variables
 - Database is local and not exposed externally
 - Input validation on all API endpoints
 - Rate limiting on RSS feed requests
 - Secure headers and CORS configuration
 
python -c "from news_agent import news_agent; print(news_agent.test_feeds())"python -c "from database import NewsDatabase; db = NewsDatabase(); print(db.get_article_count())"python -c "from news_agent import news_agent; print(news_agent.manual_update())"- Database indexing on frequently queried fields
 - Pagination for large result sets
 - Caching of feed status
 - Efficient keyword matching
 - Background processing for AI operations
 
- Feed health monitoring
 - Database size tracking
 - Update frequency monitoring
 - Error logging and reporting
 
- 
RSS Feeds Not Updating
- Check internet connectivity
 - Verify RSS feed URLs are accessible
 - Check feed status in Sources page
 
 - 
AI Features Not Working
- Verify OpenAI API key is set
 - Check API key permissions
 - Review error logs
 
 - 
Database Issues
- Check file permissions for database directory
 - Verify SQLite is installed
 - Check available disk space
 
 - 
Web Interface Not Loading
- Verify Flask is running
 - Check port 5000 is available
 - Review browser console for errors
 
 
Application logs are printed to the console. For production deployment, consider using a proper logging framework.
- Monitor database size
 - Clean up old articles periodically
 - Update RSS feed URLs if needed
 - Review and update relevance keywords
 
- Regular database backups recommended
 - Export configuration files
 - Backup custom keywords and settings
 
- Fork the repository
 - Create a feature branch
 - Make your changes
 - Add tests if applicable
 - Submit a pull request
 
This project is licensed under the MIT License - see the LICENSE file for details.
- RSS feed sources for providing security news
 - OpenAI for AI capabilities
 - Bootstrap for the UI framework
 - Python community for excellent libraries
 
For issues and questions:
- Check the troubleshooting section
 - Review the logs
 - Create an issue on GitHub
 - Check the documentation
 
Note: This application is designed for educational and professional use. Always verify information from multiple sources and follow your organization's security policies.