mirror of
https://github.com/jimeh/kotaku-uk-rss.git
synced 2026-02-19 02:46:41 +00:00
76 lines
1.2 KiB
Go
76 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
|
|
"gopkg.in/alecthomas/kingpin.v2"
|
|
)
|
|
|
|
// Version gets populated with version at build-time.
|
|
var Version string
|
|
var defaultPort = "8080"
|
|
|
|
var (
|
|
port = kingpin.Flag("port", "Port to listen to.").Short('p').
|
|
Default(defaultPort).String()
|
|
bind = kingpin.Flag("bind", "Bind address.").Short('b').
|
|
Default("0.0.0.0").String()
|
|
version = kingpin.Flag("version", "Print version info.").
|
|
Short('v').Bool()
|
|
)
|
|
|
|
/*
|
|
Configuration
|
|
*/
|
|
|
|
var rootURL = "http://www.kotaku.co.uk"
|
|
|
|
var pageUrls = []string{
|
|
rootURL + "/",
|
|
rootURL + "/page/2/",
|
|
rootURL + "/page/3/",
|
|
}
|
|
|
|
/*
|
|
Main...
|
|
*/
|
|
|
|
var rssCache = RssCache{}
|
|
|
|
func printVersion() {
|
|
fmt.Println("kotaku-uk-rss " + Version)
|
|
}
|
|
|
|
func serveRoot(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Fprintln(w, "OK")
|
|
}
|
|
|
|
func startServer() {
|
|
if *port == defaultPort {
|
|
if envPort := os.Getenv("PORT"); envPort != "" {
|
|
*port = envPort
|
|
}
|
|
}
|
|
|
|
http.HandleFunc("/", serveRoot)
|
|
http.HandleFunc("/rss", serveRss)
|
|
|
|
address := *bind + ":" + *port
|
|
fmt.Println("Listening on " + address)
|
|
log.Fatal(http.ListenAndServe(address, nil))
|
|
}
|
|
|
|
func main() {
|
|
kingpin.Parse()
|
|
|
|
if *version {
|
|
printVersion()
|
|
} else {
|
|
go updateRssLoop()
|
|
startServer()
|
|
}
|
|
}
|