-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the AiLert wiki! Here you'll find comprehensive documentation about the project, how to use it, and how to contribute.
AiLert is an open-source newsletter platform that aggregates AI-related content from various sources including research papers, GitHub repositories, news sites, and events. It automates the process of tracking and curating AI developments.
- Content aggregation from 150+ sources
- Automated newsletter generation
- Customizable templates
- Source management
- Content categorization
- Engagement tracking
AiLert consists of several core components:
- Content Fetchers
- Data Processors
- Newsletter Builder
- Template Engine
- AWS Integration
- Python 3.8+
- AWS Account (for DynamoDB)
- Git
# Clone the repository
git clone https://github.com/yourusername/ailert.git
cd ailert
# Install dependencies
pip install -r requirements.txt
# Configure AWS credentials
export AWS_ACCESS_KEY_ID="your_access_key"
export AWS_SECRET_ACCESS_KEY="your_secret_key"
export AWS_REGION="your_region"
# Run the application
python main.py
# Build the image
docker build -t ailert .
# Run the container
docker run -d -p 8000:8000 ailert
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_REGION=your_region
Sources are configured in links.py
:
rss_feed = [
"https://example.com/feed",
"https://another-source.com/rss"
]
Templates are stored in /static/
directory:
static/
├── newsletter.html
└── daily_newsletter.html
The fetching system uses async Python to efficiently gather content from multiple sources:
async def fetch_content(session, source):
async with session.get(source.url) as response:
return await response.text()
Handles the assembly and formatting of newsletters:
class NewsletterBuilder:
def __init__(self, dict_vars):
self.template = load_template(self.template_path)
self.news_service = NewsService(rss_feed)
Manages interactions with AWS DynamoDB:
class Dynamo:
def __init__(self, region_name):
self.dynamodb = boto3.resource('dynamodb',
region_name=region_name)
- Configure your sources in
links.py
- Set up your AWS credentials
- Run the application
- Access the dashboard at
http://localhost:8000
- Navigate to
/static/
- Edit
newsletter.html
- Use template variables:
{{content}}
{{brand_name}}
{{current_year}}
- Add new sources to
links.py
- Use the source manager API
- Monitor source health
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dev dependencies
pip install -r requirements-dev.txt
# Run tests
python -m pytest
- Follow PEP 8
- Use type hints
- Write docstrings
- Add tests for new features
- Add new sources
- Improve content processing
- Enhance templates
- Write documentation
- Fix bugs
- Add features
Q: How do I add new sources?
A: Add RSS feeds to links.py
or use the source manager API.
Q: Can I customize the newsletter template?
A: Yes, edit the HTML templates in the /static/
directory.
Q: How do I handle rate limits? A: The fetcher includes automatic rate limiting and retries.
-
Content Management
- Regular source verification
- Content deduplication
- Quality filtering
-
Performance Optimization
- Use async operations
- Implement caching
- Monitor resource usage
-
Template Design
- Mobile-responsive
- Clean formatting
- Consistent styling
- Create an issue for bugs
- Join Discord for help
- Check documentation
- Contact maintainers
Built with 🔔 for the AI community
📚 Documentation · 🤝 Contributing · 💬 Discussions · 🐛 Issues
© 2024 AiLert. Open source & made with ❤️