Created
July 16, 2020 15:57
-
-
Save Horrendus/287ecb53cd9e7085e43b07248f1af03e to your computer and use it in GitHub Desktop.
RSSWriter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"encoding/xml" | |
"fmt" | |
"github.com/gorilla/feeds" | |
"github.com/kr/pretty" | |
"io/ioutil" | |
"log" | |
"net/http" | |
"reflect" | |
"time" | |
) | |
func main() { | |
now := time.Now() | |
feed := &feeds.Feed{ | |
Title: "Golden Memories", | |
Link: &feeds.Link{Href: "http://stefan.derkits.at/files/"}, | |
Description: "test test", | |
Author: &feeds.Author{Name: "Stefan Derkits", Email: "stefan@derkits.at"}, | |
Created: now, | |
} | |
feed.Items = []*feeds.Item{ | |
&feeds.Item{ | |
Title: "Golden Memories July 6", | |
Link: &feeds.Link{Href: "https://stefan.derkits.at/files/Golden%20Memories%20with%20DJ%20Velvet%20_%20July.6.2020-zanjradio_golden-memories-with-dj-velvet-july62020.mp3"}, | |
Description: "Music", | |
Author: &feeds.Author{Name: "Stefan Derkits", Email: "stefan@derkits.at"}, | |
Enclosure: &feeds.Enclosure{ | |
Url: "https://stefan.derkits.at/files/Golden%20Memories%20with%20DJ%20Velvet%20_%20July.6.2020-zanjradio_golden-memories-with-dj-velvet-july62020.mp3", | |
Length: "110004880", | |
Type: "audio/mpeg", | |
}, | |
Created: now, | |
}, | |
&feeds.Item{ | |
Title: "Golden Memories June 28", | |
Link: &feeds.Link{Href: "https://stefan.derkits.at/files/Golden%20Memories%20with%20DJ%20Velvet%20_%20June.28.2020-zanjradio_golden-memories-with-dj-velvet-june282020.mp3"}, | |
Description: "Music", | |
Author: &feeds.Author{Name: "Stefan Derkits", Email: "stefan@derkits.at"}, | |
Enclosure: &feeds.Enclosure{ | |
Url: "https://stefan.derkits.at/files/Golden%20Memories%20with%20DJ%20Velvet%20_%20June.28.2020-zanjradio_golden-memories-with-dj-velvet-june282020.mp3", | |
Length: "107308792", | |
Type: "audio/mpeg", | |
}, | |
Created: now, | |
}, | |
&feeds.Item{ | |
Title: "Golden Memories June 21", | |
Link: &feeds.Link{Href: "https://stefan.derkits.at/files/Golden%20Memories%20with%20DJ%20Velvet%20_%20June..21.2020-zanjradio_golden-memories-with-dj-velvet-june212020.mp3"}, | |
Description: "Music", | |
Author: &feeds.Author{Name: "Stefan Derkits", Email: "stefan@derkits.at"}, | |
Enclosure: &feeds.Enclosure{ | |
Url: "https://stefan.derkits.at/files/Golden%20Memories%20with%20DJ%20Velvet%20_%20June..21.2020-zanjradio_golden-memories-with-dj-velvet-june212020.mp3", | |
Length: "112862835", | |
Type: "audio/mpeg", | |
}, | |
Created: now, | |
}, | |
} | |
rss, err := feed.ToRss() | |
if err != nil { | |
log.Fatal(err) | |
} | |
fmt.Println(rss) | |
var xmlFeed feeds.RssFeedXml | |
resp, err := http.Get("https://stefan.derkits.at/files/gm_orig.rss") | |
if err != nil { | |
fmt.Println(err) | |
return | |
} | |
defer resp.Body.Close() | |
buf, err := ioutil.ReadAll(resp.Body) | |
if err != nil { | |
fmt.Println(err) | |
return | |
} | |
xml.Unmarshal(buf, &xmlFeed) | |
rssFeed := (&feeds.Rss{Feed: feed}).RssFeed() | |
if !reflect.DeepEqual(rssFeed, xmlFeed) { | |
diffs := pretty.Diff(feed, xmlFeed) | |
fmt.Println("Diff") | |
fmt.Println(pretty.Println(diffs)) | |
} | |
item := | |
&feeds.RssItem{ | |
Title: "Golden Memories July 12", | |
Link: "https://stefan.derkits.at/files/Golden%20Memories%20with%20DJ%20Velvet%20_%20July.12.2020-zanjradio_golden-memories-with-dj-velvet-july122020.mp3", | |
Description: "Music", | |
Author: "Stefan Derkits (stefan@derkits.at)", | |
Enclosure: &feeds.RssEnclosure{ | |
Url: "https://stefan.derkits.at/files/Golden%20Memories%20with%20DJ%20Velvet%20_%20July.12.2020-zanjradio_golden-memories-with-dj-velvet-july122020.mp3", | |
Length: "109717110", | |
Type: "audio/mpeg", | |
}, | |
PubDate: "Thu, 16 Jul 2020 17:45:09 +0200", | |
} | |
xmlFeed.Channel.Items = append([]*feeds.RssItem{item}, xmlFeed.Channel.Items...) | |
xmlFeed.Channel.PubDate = "Thu, 16 Jul 2020 17:48:09 +0200" | |
println("New Feed:") | |
newStr, _ := feeds.ToXML(xmlFeed.Channel) | |
fmt.Println(newStr) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment