60 lines
963 B
Go
Executable File
60 lines
963 B
Go
Executable File
package main
|
|
|
|
import (
|
|
"local/rssmon2/config"
|
|
"local/rssmon2/exchange"
|
|
"local/rssmon2/monitor"
|
|
"local/rssmon2/server"
|
|
"local/rssmon2/store"
|
|
"log"
|
|
)
|
|
|
|
func main() {
|
|
core()
|
|
}
|
|
|
|
func core() {
|
|
var err error
|
|
|
|
config := config.New()
|
|
|
|
ex := exchange.New(nil, nil, nil, config.TorAddr)
|
|
|
|
var mon *monitor.Monitor
|
|
if mon, err = monitor.New(ex.UpdateFeed); err != nil {
|
|
panic(err)
|
|
} else if err = mon.Start(); err != nil {
|
|
panic(err)
|
|
}
|
|
defer mon.Stop()
|
|
ex.Mon = mon
|
|
|
|
var sclient store.Client
|
|
if sclient, err = store.NewBolt(config.DBPath); err != nil {
|
|
panic(err)
|
|
}
|
|
defer sclient.Close()
|
|
ex.SClient = sclient
|
|
|
|
var srv *server.Server
|
|
if srv, err = server.New(config.Port,
|
|
ex.NewFeed,
|
|
ex.GetFeedRSS,
|
|
ex.GetFeedItem,
|
|
ex.GetFeedTagRSS,
|
|
ex.ListTag,
|
|
); err != nil {
|
|
panic(err)
|
|
}
|
|
ex.Srv = srv
|
|
|
|
if err := ex.LoadDB(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
log.Print("Starting with", config)
|
|
if err := srv.Serve(); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|