From 22835500b0043bc730648801b1ebfc5bf0f7b065 Mon Sep 17 00:00:00 2001 From: Amolith Date: Thu, 1 Jun 2023 01:23:32 -0400 Subject: [PATCH] improve skipping tags --- main.go | 52 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 17 deletions(-) diff --git a/main.go b/main.go index 949c504fba8b0c24c5373bd6cc00c7d9731268cb..96e8db4b6fdc1090b58e01eee5367888cf101f31 100644 --- a/main.go +++ b/main.go @@ -48,31 +48,42 @@ func main() { feed, _ := fp.ParseURL(*flagFeed) skippedTags := strings.Split(*flagTagsSkip, ",") - skippedTagsMaps := make(map[string]int) + skippedTagsMap := make(map[string]int) for i := range skippedTags { - skippedTagsMaps[skippedTags[i]] = 0 + skippedTagsMap[skippedTags[i]] = 0 } - var i int - tags := strings.Split(feed.Items[i].Categories[0], "/") - for i, tag := range tags { - if _, ok := skippedTagsMaps[tag]; ok { - i++ - continue + + i := 0 + if feed.Items[i].Categories != nil { + for i = range feed.Items { + if feed.Items[i].Categories == nil { + feed.Items[i].Categories = []string{feed.Title} + break + } + c := false + tags := strings.Split(feed.Items[i].Categories[0], "/") + for _, tag := range tags { + if _, ok := skippedTagsMap[tag]; ok { + c = true + break + } + } + if c { + continue + } + break } - break + } else { + feed.Items[i].Categories = []string{feed.Title} } - post := post{ - Title: feed.Items[i].Title, - Link: feed.Items[i].Link, - } - - if feed.Items[i].Image != nil { - post.Image = feed.Items[i].Image.URL - } + post := post{} + tags := strings.Split(feed.Items[i].Categories[0], "/") for i, tag := range tags { tag = "#" + strings.ReplaceAll(tag, " ", "") + tag = strings.ReplaceAll(tag, ".", "") + tag = strings.ReplaceAll(tag, "-", "") if i == 0 { post.Tags = tag continue @@ -80,6 +91,13 @@ func main() { post.Tags += " " + tag } + post.Title = feed.Items[i].Title + post.Link = feed.Items[i].Link + + if feed.Items[i].Image != nil { + post.Image = feed.Items[i].Image.URL + } + description, _ := htmlToPlaintext(feed.Items[i].Description) description = strings.ReplaceAll(description, "\n\n", " ") description = strings.ReplaceAll(description, "\n", " ")