Convert email workflow to RSS feed workflow#36
Conversation
Co-authored-by: greenbrettmichael <10648075+greenbrettmichael@users.noreply.github.com>
Co-authored-by: greenbrettmichael <10648075+greenbrettmichael@users.noreply.github.com>
…fy, fix test assertion Co-authored-by: greenbrettmichael <10648075+greenbrettmichael@users.noreply.github.com>
|
@copilot improve the formatting of the rss feed The CDATA field should not be visible. The bullets should be seperated with new lines. The title should be removed from the body since its already the title for the feed entry. The duration links do not appear correctly. |
…to HTML, fix links Co-authored-by: greenbrettmichael <10648075+greenbrettmichael@users.noreply.github.com>
... Fixed in commit 806305b. The RSS feed formatting has been significantly improved: Changes made:
Before: After (rendered in RSS reader): All formatting issues resolved - bullets are properly separated, links are clickable, and no duplicate title or visible CDATA. Tested with proper HTML rendering simulation. |
There was a problem hiding this comment.
Pull request overview
This PR successfully converts the email-based workflow to an RSS feed workflow by removing all Resend email dependencies and implementing RSS feed generation functionality.
Key Changes:
- Removed email functionality and replaced with RSS feed generation that outputs to
feed.xml - Renamed
email_list.jsontoqueries.jsonand removed theemailfield requirement - Updated OpenAI prompts to generate individual video summaries optimized for RSS readers
Reviewed changes
Copilot reviewed 10 out of 12 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| app.py | Core refactoring: removed email functions, added RSS feed generation with XML formatting, updated config loader from load_email_list_config to load_queries_config, modified main loop to generate per-video summaries |
| requirements.txt | Removed resend dependency, kept markdown for HTML conversion in RSS feed |
| queries.json.example | New example config file without email fields, demonstrates channel and search URL options |
| pyproject.toml | Removed resend from mypy ignore configuration |
| .env.example | Removed Resend API key configuration variables |
| .gitignore | Added queries.json and feed.xml to ignore list |
| README.md | Comprehensive documentation updates explaining RSS workflow, removed email references, added RSS feed usage examples |
| tests/test_rss_feed.py | New comprehensive test suite (7 tests) covering RSS generation, truncation, overwriting, and error handling |
| tests/test_queries_config.py | New test suite (21 tests) replacing email config tests, validates channel and search URL configurations |
| tests/test_openai_digest.py | Updated test assertions to match new OpenAI prompt format without title/link in summary body |
| tests/test_email.py | Removed - no longer needed |
| tests/test_email_list_config.py | Removed - replaced by test_queries_config.py |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot resolve feedback. for "RSS feed readers expect a full URL" please make this configurable in the env file |
…function, fix datetime, add deduplication Co-authored-by: greenbrettmichael <10648075+greenbrettmichael@users.noreply.github.com>
All feedback resolved in commit c34a0eb. Changes made:
All 61 tests passing, linters clean. The feed URL configuration is available in |
- Update Mypy command to check only app.py for type hints. - Delete obsolete email_list.json.example file as it is no longer needed.
Conversion Plan: Email Workflow to RSS Feed
generate_newsletter_digesttogenerate_video_summarydatetime.utcnow()withdatetime.now(timezone.utc)FEED_BASE_URLenvironment variableSummary of Code Review Fixes
All 8 issues from the code review have been addressed:
generate_newsletter_digest→generate_video_summaryfor clarityutcnow()withdatetime.now(timezone.utc)register_namespace()FEED_BASE_URLenv varEnvironment Configuration:
Users can now set
FEED_BASE_URLin.envto configure the RSS feed's self-reference URL:All 61 tests passing, all linters clean!
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.