- Created a Dockerfile to build and deploy the application using a multi-stage build process.
- Added a GitHub Actions workflow to automatically build and publish the Docker image to GitHub Container Registry on pushes to the main branch.
- Updated go.mod and go.sum to reflect dependency upgrades and changes.
- Modified the RSS generator to extend the photo expiration time from 10 minutes to 12 hours.
- Updated rate limiter configuration to allow for environment variable customization.
- Load and validate BASE_URL, store in Config
- RSSGenerator now receives Config; adds <enclosure> for photo messages using BaseURL
- RateLimiter tracks feed and image limiters; provide FeedRateLimit and ImageRateLimit middleware
- Update routes to use the new middlewares and inject Config into RSSGenerator
- Stop ticker and signal goroutine exit in RegisterCleanup OnStop hook
- Call cancel() explicitly after AuthStatus instead of defer to prevent premature context cancellation
- Use consistent logger parameter in OnStop hook
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Implement per-client rate limiting (5 requests per 3 seconds)
- Change /channel/:id routes to /feed/:id for consistency
- Add data/ to .gitignore
- Include RateLimit middleware on GET /feed/:id endpoint