SocialDragon/socialdragon/main.go

55 lines
1.4 KiB
Go
Raw Normal View History

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()
c := cron.New()
c.AddFunc("@every 30s", snapchat.LoadNewSnaps)
c.AddFunc("@every 30s", instagram.LoadNewInstas)
c.AddFunc("@every 5s", sendNewPicture)
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)
}