Commit 0c37db1
Eric Bower
·
2026-03-08 09:45:46 -0400 EDT
parent 12c3f12
fix(feeds): parse urls properly with comments
2 files changed,
+15,
-11
+2,
-2
| ... | ... | @@ -23,8 +23,8 @@ func NewConfigSite(service string) *shared.ConfigSite { | |
| 23 | 23 | Protocol: protocol, | |
| 24 | 24 | DbURL: dbURL, | |
| 25 | 25 | Space: "feeds", | |
| 26 | - | AllowedExt: []string{".txt"}, | |
| 27 | - | HiddenPosts: []string{"_header.txt", "_readme.txt"}, | |
| 26 | + | AllowedExt: []string{".txt", ".lxt"}, | |
| 27 | + | HiddenPosts: []string{}, | |
| 28 | 28 | Logger: shared.CreateLogger(service, withPipe), | |
| 29 | 29 | } | |
| 30 | 30 | } |
+13,
-9
| ... | ... | @@ -227,25 +227,25 @@ func (f *Fetcher) RunPost(logger *slog.Logger, user *db.User, isPicoPlus bool, p | |
| 227 | 227 | ||
| 228 | 228 | urls := []string{} | |
| 229 | 229 | for _, item := range parsed.Items { | |
| 230 | - | u := "" | |
| 231 | - | if item.IsText || item.IsURL { | |
| 232 | - | u = item.Value | |
| 230 | + | rawUrl := "" | |
| 231 | + | if item.IsText { | |
| 232 | + | rawUrl = string(item.Value) | |
| 233 | 233 | } else if item.IsURL { | |
| 234 | - | u = string(item.Value) | |
| 234 | + | rawUrl = string(item.URL) | |
| 235 | 235 | } | |
| 236 | 236 | ||
| 237 | - | if u == "" { | |
| 237 | + | if rawUrl == "" { | |
| 238 | 238 | continue | |
| 239 | 239 | } | |
| 240 | 240 | ||
| 241 | - | _, err := url.Parse(string(item.URL)) | |
| 241 | + | _, err := url.Parse(rawUrl) | |
| 242 | 242 | if err != nil { | |
| 243 | - | logger.Info("invalid url", "url", string(item.URL)) | |
| 243 | + | logger.Info("invalid url", "url", rawUrl) | |
| 244 | 244 | continue | |
| 245 | 245 | } | |
| 246 | 246 | ||
| 247 | - | logger.Info("found rss feed url", "url", u) | |
| 248 | - | urls = append(urls, u) | |
| 247 | + | logger.Info("found rss feed url", "url", rawUrl) | |
| 248 | + | urls = append(urls, rawUrl) | |
| 249 | 249 | } | |
| 250 | 250 | ||
| 251 | 251 | if post.ExpiresAt == nil { |
| ... | ... | @@ -344,6 +344,10 @@ func (f *Fetcher) RunUser(user *db.User, now time.Time) error { | |
| 344 | 344 | } | |
| 345 | 345 | } | |
| 346 | 346 | ||
| 347 | + | if !isPicoPlus { | |
| 348 | + | return fmt.Errorf("must be pico+ user to receive rss digests") | |
| 349 | + | } | |
| 350 | + | ||
| 347 | 351 | if len(posts.Data) > 0 { | |
| 348 | 352 | logger.Info("found feed posts", "len", len(posts.Data)) | |
| 349 | 353 | } |