Repository navigation
Add dailydev digest, with email through SMTPfast (v0.2.0) - #1
Merged
Merged
Conversation
dailydev digest builds a digest from popular, discussed, tag, search, For You or bookmarked posts and prints it as Markdown, text or HTML. --email sends it through SMTPfast with the user's SMTPFAST_API_KEY, --dry-run shows the email without sending, and --schedule prints a weekly cron line and a GitHub Actions workflow for the same command. Claude-Session: https://claude.ai/code/session_01FRYkaYp9vFJjWBjAQdjnQ4
Control characters are now refused in every digest argument and in
SMTPFAST_FROM before any trimming, so the printed cron line and
workflow cannot gain extra lines or steps. --schedule also refuses
${{, which GitHub would evaluate inside the workflow. The missing
SMTPFAST_API_KEY line is checked before the daily.dev token, so it
stays one line when both are missing.
Claude-Session: https://claude.ai/code/session_01FRYkaYp9vFJjWBjAQdjnQ4
A repeated option keeps only its last value after parsing, so printing the raw command line could carry an unchecked first value into the cron line or the workflow. The scheduled command is now rebuilt from the parsed and checked values. U+2028 and U+2029 are refused too, because some YAML parsers read them as line breaks. Claude-Session: https://claude.ai/code/session_01FRYkaYp9vFJjWBjAQdjnQ4
A search word such as --email=x given after -- now stays after -- in the scheduled command, so a replay cannot turn it into an option. Bidi controls are refused in the From, To and subject values, and any SMTPfast response text that quotes the key back has it replaced. Claude-Session: https://claude.ai/code/session_01FRYkaYp9vFJjWBjAQdjnQ4
The key is now replaced before a long SMTPfast message is cut, so no fragment is left at the cut. U+061C, U+200E and U+200F are refused in the email headers, and --schedule joins a value that starts with - to its option, so the scheduled command reads it back the same way. Claude-Session: https://claude.ai/code/session_01FRYkaYp9vFJjWBjAQdjnQ4
Recipients no longer see each other's addresses. --email now sends one email per address in one call to SMTPfast's batch endpoint, prints the result for each recipient, and exits 1 if any email was not sent. The dry run still lists every recipient. --email takes up to 100 addresses, the batch limit. Claude-Session: https://claude.ai/code/session_01FRYkaYp9vFJjWBjAQdjnQ4
Only a DNS, connect or TLS failure now says SMTPfast could not be reached and that no email was sent. A reset after the request went out, or an answer cut off while it is read, says the emails may or may not have gone out and to check the dashboard first. Queued emails are shown as accepted, and --json keeps SMTPfast's exact status. The README names the batch endpoint. Claude-Session: https://claude.ai/code/session_01FRYkaYp9vFJjWBjAQdjnQ4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
dailydev digest, which builds a digest from popular, discussed, tag, search, For You or bookmarked posts and prints it as Markdown, text or HTML.--emailsends one email per recipient in one SMTPfast batch call with the user's ownSMTPFAST_API_KEYand reports the result for each recipient (--dry-runsends nothing), and--scheduleprints a weekly cron line and a GitHub Actions workflow. No new dependencies.Bumps the version to 0.2.0. Not tagged or published.
https://claude.ai/code/session_01FRYkaYp9vFJjWBjAQdjnQ4