repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

commit
0a37c05
parent
d32eeb3
author
Eric Bower
date
2025-08-08 22:19:21 -0400 EDT
fix(feeds): remove references to `digest_interval`
4 files changed,  +7, -6
M README.md
+1, -1
1@@ -95,7 +95,7 @@ Create a blogs.txt file:
2 
3 ```
4 =: email rss@myemail.com
5-=: digest_interval 1day
6+=: cron 0 13 * * *
7 => https://pico.prose.sh/rss
8 => https://erock.prose.sh/rss
9 ```
M pkg/apps/auth/api.go
+1, -1
1@@ -542,7 +542,7 @@ func AddPlusFeedForUser(dbpool db.DB, userID, email string) error {
2 
3 	href := fmt.Sprintf("https://auth.pico.sh/rss/%s", token)
4 	text := fmt.Sprintf(`=: email %s
5-=: digest_interval 10min
6+=: cron */10 * * * *
7 =: inline_content true
8 => %s
9 => https://blog.pico.sh/rss`, email, href)
M pkg/apps/auth/api_test.go
+1, -1
1@@ -62,7 +62,7 @@ func TestPaymentWebhook(t *testing.T) {
2 			continue
3 		}
4 		expectedText := `=: email auth@pico.test
5-=: digest_interval 10min
6+=: cron */10 * * * *
7 =: inline_content true
8 => https://auth.pico.sh/rss/123
9 => https://blog.pico.sh/rss`
M pkg/apps/feeds/cron.go
+4, -3
 1@@ -154,7 +154,7 @@ func DateToMin(now time.Time) time.Time {
 2 	)
 3 }
 4 
 5-func (f *Fetcher) Validate(post *db.Post, parsed *shared.ListParsedText, now time.Time) error {
 6+func (f *Fetcher) Validate(logger *slog.Logger, post *db.Post, parsed *shared.ListParsedText, now time.Time) error {
 7 	expiresAt := post.ExpiresAt
 8 	if expiresAt != nil {
 9 		if post.ExpiresAt.Before(now) {
10@@ -167,6 +167,7 @@ func (f *Fetcher) Validate(post *db.Post, parsed *shared.ListParsedText, now tim
11 	if parsed.DigestInterval != "" {
12 		cron = DigestIntervalToCron(parsed.DigestInterval)
13 	}
14+	logger.Info("found cron", "cron", cron)
15 
16 	if !f.gron.IsValid(cron) {
17 		return fmt.Errorf("(%s) is invalid `cron`, skipping", cron)
18@@ -202,8 +203,8 @@ func (f *Fetcher) RunPost(logger *slog.Logger, user *db.User, post *db.Post, ski
19 		}
20 	}
21 
22-	logger.Info("last digest", "timestamp", post.Data.LastDigest.Format(time.RFC3339))
23-	err := f.Validate(post, parsed, now)
24+	logger.Info("last digest", "at", post.Data.LastDigest.Format(time.RFC3339))
25+	err := f.Validate(logger, post, parsed, now)
26 	if err != nil {
27 		logger.Info("validation failed", "err", err)
28 		if skipValidation {