2017-01-17 22:38:35 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"os/signal"
|
|
|
|
"syscall"
|
|
|
|
|
2017-01-19 01:00:09 +00:00
|
|
|
"github.com/gin-gonic/gin"
|
2017-01-17 22:38:35 +00:00
|
|
|
"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")
|
2017-01-19 18:49:53 +00:00
|
|
|
database.InitDb(SendUpdate)
|
2017-01-17 22:38:35 +00:00
|
|
|
|
|
|
|
c := cron.New()
|
|
|
|
c.AddFunc("@every 30s", snapchat.LoadNewSnaps)
|
|
|
|
c.AddFunc("@every 30s", instagram.LoadNewInstas)
|
|
|
|
c.Start()
|
|
|
|
|
|
|
|
go twitter.LoadNewTweets()
|
2017-01-19 01:00:09 +00:00
|
|
|
go setupGin()
|
2017-01-17 22:38:35 +00:00
|
|
|
|
|
|
|
ch := make(chan os.Signal)
|
|
|
|
signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
|
2017-01-19 01:00:09 +00:00
|
|
|
|
2017-01-17 22:38:35 +00:00
|
|
|
<-ch
|
|
|
|
|
|
|
|
twitter.Stop()
|
|
|
|
}
|
2017-01-18 18:47:55 +00:00
|
|
|
|
|
|
|
func setupGin() {
|
|
|
|
router := gin.Default()
|
2017-01-19 01:00:09 +00:00
|
|
|
router.GET("/", renderHomepage)
|
2017-01-18 18:47:55 +00:00
|
|
|
|
2017-01-19 01:00:09 +00:00
|
|
|
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)
|
2017-01-18 18:47:55 +00:00
|
|
|
|
2017-01-20 01:20:31 +00:00
|
|
|
router.POST("/admin/approve/:id", approveSnap)
|
|
|
|
router.POST("/admin/reject/:id", rejectSnap)
|
|
|
|
|
2017-01-19 01:00:09 +00:00
|
|
|
router.GET("/ws", func(c *gin.Context) { wsHandler(c.Writer, c.Request) })
|
2017-01-18 18:47:55 +00:00
|
|
|
|
2017-01-20 00:21:44 +00:00
|
|
|
router.LoadHTMLGlob(config.C.TemplatesDirectory + "/*.html")
|
2017-01-19 01:00:09 +00:00
|
|
|
router.Static("/static", config.C.AssetsDirectory)
|
|
|
|
router.Static(config.C.ContentWebDirectory, config.C.ContentDirectory)
|
|
|
|
router.Run(config.C.BindAddress)
|
2017-01-18 18:47:55 +00:00
|
|
|
}
|