-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
48 lines (43 loc) · 1.17 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main
import (
"flag"
"net/http"
"os"
"path"
"github.com/lsongdev/feedreader/reader"
"github.com/song940/fever-go/fever"
)
func main() {
config := reader.NewConfig()
conf, err := os.UserConfigDir()
if err != nil {
conf = "/etc"
}
dir := path.Join(conf, "feedreader")
flag.StringVar(&config.Dir, "d", dir, "config directory")
flag.Parse()
config.Load()
server, err := reader.NewReader(config)
if err != nil {
panic(err)
}
api := fever.New(server)
router := http.NewServeMux()
router.HandleFunc("/", server.IndexView)
router.HandleFunc("/new", server.NewView)
router.HandleFunc("/posts", server.PostView)
router.HandleFunc("/feeds", server.FeedView)
router.HandleFunc("/refresh", server.RefreshView)
router.HandleFunc("/import", server.ImportView)
router.HandleFunc("/categories", server.CategoryView)
router.HandleFunc("/rss.xml", server.RssXml)
router.HandleFunc("/atom.xml", server.AomXml)
router.HandleFunc("/opml.xml", server.OpmlXml)
router.HandleFunc("/feeds.json", server.FeedsJson)
router.HandleFunc("/posts.json", server.PostsJson)
router.Handle("/fever/", api)
err = http.ListenAndServe(config.Listen, router)
if err != nil {
panic(err)
}
}