SocialDragon/socialdragon/main.go
Andreas Mieke be67ae464c Add folder support
This adds folder support as image source, the folder must be specified
in the config file as "Folder" under group "Folder". Parsed images will
be deleted from the folder!
2017-05-13 23:29:56 +02:00

69 lines
1.8 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/folder"
"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()
if config.C.Snapchat.UserName != "" {
c.AddFunc("@every 30s", snapchat.LoadNewSnaps)
}
if config.C.Instagram.Tag != "" {
c.AddFunc("@every 30s", instagram.LoadNewInstas)
}
if config.C.Folder.Folder != "" {
c.AddFunc("@every 30s", folder.LoadNewFolders)
}
c.Start()
if len(config.C.Twitter.Filter) != 0 {
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("/admin/stats", stats)
router.POST("/admin/approve/:id", approveSnap)
router.POST("/admin/reject/:id", rejectSnap)
router.GET("/ws", func(c *gin.Context) { wsHandler(c.Writer, c.Request) })
router.GET("/listSnaps", listSnaps)
router.LoadHTMLGlob(config.C.TemplatesDirectory + "/*.html")
router.Static("/static", config.C.AssetsDirectory)
router.Static(config.C.ContentWebDirectory, config.C.ContentDirectory)
router.Run(config.C.BindAddress)
}