1// SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
2//
3// SPDX-License-Identifier: Apache-2.0
4
5package main
6
7import (
8 "fmt"
9
10 "github.com/mmcdole/gofeed"
11)
12
13func getRSSReleases(p project) (project, error) {
14 fp := gofeed.NewParser()
15 feed, err := fp.ParseURL(p.URL + "/releases.atom")
16 if err != nil {
17 fmt.Println(err)
18 return p, err
19 }
20
21 for _, item := range feed.Items {
22 p.Releases = append(p.Releases, release{
23 Tag: bmStrict.Sanitize(item.Title),
24 Content: bmUGC.Sanitize(item.Content),
25 URL: bmStrict.Sanitize(item.Link),
26 Date: *item.PublishedParsed,
27 })
28 }
29
30 // TODO: Doesn't seem to work?
31 // sort.Slice(p.Releases, func(i, j int) bool { return p.Releases[i].Date.After(p.Releases[j].Date) })
32
33 return p, nil
34}