Andreas Mieke
be67ae464c
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!
69 lines
1.8 KiB
Go
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)
|
|
}
|