SocialDragon/socialdragon/main.go
Andreas Mieke 0dacd3645e Adds websocket-callback for all Item
This commit adds a callback which gets called on every
saved Item in the database, which prints JSON of that
Item-object to all connected websocket clients.
2017-01-19 19:49:53 +01:00

54 lines
1.3 KiB
Go

package main
import (
"os"
"os/signal"
"syscall"
"github.com/gin-gonic/gin"
"github.com/robfig/cron"
"git.1750studios.com/AniNite/SocialDragon/config"
"git.1750studios.com/AniNite/SocialDragon/database"
"git.1750studios.com/AniNite/SocialDragon/instagram"
"git.1750studios.com/AniNite/SocialDragon/snapchat"
"git.1750studios.com/AniNite/SocialDragon/twitter"
)
func main() {
config.LoadConfig(os.Getenv("HOME") + "/.socialdragon.toml")
database.InitDb(SendUpdate)
c := cron.New()
c.AddFunc("@every 30s", snapchat.LoadNewSnaps)
c.AddFunc("@every 30s", instagram.LoadNewInstas)
c.Start()
go twitter.LoadNewTweets()
go setupGin()
ch := make(chan os.Signal)
signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
<-ch
twitter.Stop()
}
func setupGin() {
router := gin.Default()
router.GET("/", renderHomepage)
router.GET("/admin", func(c *gin.Context) { c.Redirect(301, "/admin/inbox") })
router.GET("/admin/inbox", renderAdminInbox)
router.GET("/admin/approved", renderAdminApproved)
router.GET("/admin/rejected", renderAdminRejected)
router.GET("/ws", func(c *gin.Context) { wsHandler(c.Writer, c.Request) })
router.LoadHTMLGlob(config.C.TemplatesDirectory + "/*")
router.Static("/static", config.C.AssetsDirectory)
router.Static(config.C.ContentWebDirectory, config.C.ContentDirectory)
router.Run(config.C.BindAddress)
}