mirror of
https://github.com/gmemstr/pogo.git
synced 2024-09-20 01:31:09 +01:00
84 lines
2.2 KiB
Go
84 lines
2.2 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"log"
|
||
|
"fmt"
|
||
|
"time"
|
||
|
"io/ioutil"
|
||
|
"strings"
|
||
|
"github.com/gmemstr/feeds"
|
||
|
"github.com/fsnotify/fsnotify"
|
||
|
)
|
||
|
func watch(){
|
||
|
watcher, err := fsnotify.NewWatcher()
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
defer watcher.Close()
|
||
|
|
||
|
done := make(chan bool)
|
||
|
go func() {
|
||
|
for {
|
||
|
select {
|
||
|
case event := <-watcher.Events:
|
||
|
log.Println("event:", event)
|
||
|
if event.Op&fsnotify.Write == fsnotify.Write {
|
||
|
log.Println("modified file:", event.Name)
|
||
|
generate_rss()
|
||
|
}
|
||
|
case err := <-watcher.Errors:
|
||
|
log.Println("error:", err)
|
||
|
}
|
||
|
}
|
||
|
}()
|
||
|
|
||
|
err = watcher.Add("podcasts/")
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
<-done
|
||
|
}
|
||
|
|
||
|
func generate_rss(){
|
||
|
now := time.Now()
|
||
|
files, err := ioutil.ReadDir("podcasts")
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
|
||
|
feed := &feeds.Feed{
|
||
|
Title: "Git Galaxy Stargazers",
|
||
|
Link: &feeds.Link{Href: "https://gitgalaxy.com"},
|
||
|
Description: "discussion about open source projects",
|
||
|
Author: &feeds.Author{Name:"Gabriel Simmer", Email: "gabriel@gitgalaxy.com"},
|
||
|
Created: now,
|
||
|
Image: &feeds.Image{Url: "https://static.gitgalaxy.com/podcast_image.png"},
|
||
|
}
|
||
|
|
||
|
for _, file := range files {
|
||
|
s := strings.Split(file.Name(), "_")
|
||
|
t := strings.Split(s[1], ".")
|
||
|
title := t[0]
|
||
|
date, err := time.Parse("2006-01-02",s[0])
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
feed.Items = []*feeds.Item{
|
||
|
&feeds.Item{
|
||
|
Title: title,
|
||
|
Link: &feeds.Link{Href: "https://gitgalaxy.com/podcast"},
|
||
|
Enclosure: &feeds.Enclosure{Url: "https://podcast.gitgalaxy.com/download/" + file.Name(), Length: "100", Type: "audio/mpeg"},
|
||
|
Description: "Hello, World!",
|
||
|
Author: &feeds.Author{Name: "Gabriel Simmer", Email: "gabriel@gitgalaxy.com"},
|
||
|
Created: date,
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
rss, err := feed.ToRss()
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
fmt.Println(rss)
|
||
|
rss_byte := []byte(rss)
|
||
|
ioutil.WriteFile("feed.rss", rss_byte, 0644)
|
||
|
}
|