@@ -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", " ")