-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
50 lines (41 loc) · 1.16 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package main
import (
"log"
"strings"
"github.com/brenol/annoying-diego/webpage"
)
type Post struct {
Title string
URL string
}
func filterByTitle(title string) bool {
return strings.Contains(title, "golang") || strings.Contains(title, " go ") || strings.HasSuffix(title, " Go")
}
func Filter(stories []webpage.YCStory, redditPosts []webpage.RedditPost) []Post {
filteredPosts := make([]Post, 0)
for _, story := range stories {
if filterByTitle(story.Title) {
filteredPosts = append(filteredPosts, Post{story.Title, story.URL})
}
}
for _, post := range redditPosts {
for _, p := range post.Data.Children {
// we need to ignore x-posts and also self posts (posts made by users asking questions)
if filterByTitle(p.Data.Title) && !strings.Contains(p.Data.Title, "x-post from r/") && !p.Data.IsSelf {
filteredPosts = append(filteredPosts, Post{p.Data.Title, p.Data.URL})
}
}
}
return filteredPosts
}
func main() {
posts := Filter(
webpage.GetYCStories(),
webpage.GetPostsFromSubreddits([]string{"programming", "golang"}),
)
if len(posts) == 0 {
log.Println("No News about Go found :(")
return
}
sendMail(generateEmailBody(posts))
}