|
@@ -15,14 +15,48 @@ import (
|
|
)
|
|
)
|
|
|
|
|
|
var funcmap = template.FuncMap{
|
|
var funcmap = template.FuncMap{
|
|
- "date": func() string {
|
|
|
|
- now := time.Now()
|
|
|
|
|
|
+ "kitchen": func() string {
|
|
|
|
+ return time.Now().Format(time.Kitchen)
|
|
|
|
+ },
|
|
|
|
+ "day": func() int {
|
|
|
|
+ _, _, day := time.Now().Date()
|
|
|
|
+ return day
|
|
|
|
+ },
|
|
|
|
+ "month": func() int {
|
|
|
|
+ _, month, _ := time.Now().Date()
|
|
|
|
+ return int(month)
|
|
|
|
+ },
|
|
|
|
+ "year": func() int {
|
|
|
|
+ year, _, _ := time.Now().Date()
|
|
|
|
+ return year
|
|
|
|
+ },
|
|
|
|
+ "news": func() []*gofeed.Item {
|
|
|
|
+ result := make([]*gofeed.Item, 0)
|
|
|
|
+
|
|
|
|
+ fp := gofeed.NewParser()
|
|
|
|
+ feed, _ := fp.ParseURL("https://www.agi.it/innovazione/rss")
|
|
|
|
+
|
|
|
|
+ for _, it := range feed.Items {
|
|
|
|
+ result = append(result, it)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return result[:2]
|
|
|
|
+ },
|
|
|
|
+ "weather": func() []*gofeed.Item {
|
|
|
|
+ result := make([]*gofeed.Item, 0)
|
|
|
|
+
|
|
|
|
+ fp := gofeed.NewParser()
|
|
|
|
+ feed, _ := fp.ParseURL("https://www.meteowebcam.eu/rss.xml")
|
|
|
|
|
|
- return now.Format("2006-02-01")
|
|
|
|
|
|
+ for _, it := range feed.Items {
|
|
|
|
+ result = append(result, it)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return result[:1]
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
|
|
-func convertPDFToPNG(filename string) error {
|
|
|
|
|
|
+func convertPDFToBMP(filename string) error {
|
|
out, err := exec.Command("pdftoppm", filename, "./data/screen", "-png").CombinedOutput()
|
|
out, err := exec.Command("pdftoppm", filename, "./data/screen", "-png").CombinedOutput()
|
|
if string(out) != "" {
|
|
if string(out) != "" {
|
|
return fmt.Errorf("pdftoppm: %s", string(out))
|
|
return fmt.Errorf("pdftoppm: %s", string(out))
|
|
@@ -30,13 +64,24 @@ func convertPDFToPNG(filename string) error {
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
+ out, err = exec.Command("convert", "./data/screen-1.png",
|
|
|
|
+ "-rotate", "-90",
|
|
|
|
+ "-resize", "800x480!",
|
|
|
|
+ "-dither", "none",
|
|
|
|
+ "-remap", "./data/palette.gif",
|
|
|
|
+ "BMP3:./data/screen.bmp",
|
|
|
|
+ ).CombinedOutput()
|
|
|
|
+ if string(out) != "" {
|
|
|
|
+ return fmt.Errorf("covert: %s", string(out))
|
|
|
|
+ }
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
func serveScreen(res http.ResponseWriter, req *http.Request) {
|
|
func serveScreen(res http.ResponseWriter, req *http.Request) {
|
|
- fp := gofeed.NewParser()
|
|
|
|
- feed, _ := fp.ParseURL("https://www.agi.it/innovazione/rss")
|
|
|
|
-
|
|
|
|
tpl, err := tplutil.LoadTextTemplate("./data/screen.tpl.md", funcmap)
|
|
tpl, err := tplutil.LoadTextTemplate("./data/screen.tpl.md", funcmap)
|
|
if err != nil {
|
|
if err != nil {
|
|
panic(err)
|
|
panic(err)
|
|
@@ -53,28 +98,26 @@ func serveScreen(res http.ResponseWriter, req *http.Request) {
|
|
Item *gofeed.Item
|
|
Item *gofeed.Item
|
|
}
|
|
}
|
|
|
|
|
|
- data.Title = feed.Title
|
|
|
|
- data.Item = feed.Items[0]
|
|
|
|
-
|
|
|
|
log.Println("Generating markdown file from template.")
|
|
log.Println("Generating markdown file from template.")
|
|
if err := tpl.Execute(f, data); err != nil {
|
|
if err := tpl.Execute(f, data); err != nil {
|
|
panic(err)
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
|
|
log.Println("Converting markdown to pdf.")
|
|
log.Println("Converting markdown to pdf.")
|
|
- err = pandoc.Convert("./data/screen.md", "./data/screen.pdf", "-V", "geometry:papersize={3.8in,6.4in}", "-V", "pagestyle:empty")
|
|
|
|
|
|
+ // err = pandoc.Convert("./data/screen.md", "./data/screen.pdf", "-V", "geometry:papersize={3.8in,6in}", "-V", "pagestyle:empty")
|
|
|
|
+ err = pandoc.Convert("./data/screen.md", "./data/screen.pdf", "-V", "pagestyle:empty")
|
|
if err != nil {
|
|
if err != nil {
|
|
panic(err)
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
|
|
- log.Println("Converting pdf to png.")
|
|
|
|
- err = convertPDFToPNG("./data/screen.pdf")
|
|
|
|
|
|
+ log.Println("Converting PDF to monochrome BMP.")
|
|
|
|
+ err = convertPDFToBMP("./data/screen.pdf")
|
|
if err != nil {
|
|
if err != nil {
|
|
panic(err)
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
|
|
log.Println("Serving screen.png...")
|
|
log.Println("Serving screen.png...")
|
|
- http.ServeFile(res, req, "./data/screen-1.png")
|
|
|
|
|
|
+ http.ServeFile(res, req, "./data/screen.bmp")
|
|
}
|
|
}
|
|
|
|
|
|
func main() {
|
|
func main() {
|