287 lines
9.7 KiB
Go
287 lines
9.7 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
//"html/template"
|
||
|
"strings"
|
||
|
"strconv"
|
||
|
"time"
|
||
|
|
||
|
. "git.1750studios.com/gronkhDE/gogronkh/gserver/utlis"
|
||
|
|
||
|
"git.1750studios.com/gronkhDE/gogronkh/database"
|
||
|
"git.1750studios.com/gronkhDE/gogronkh/image"
|
||
|
|
||
|
"github.com/gin-gonic/gin"
|
||
|
)
|
||
|
|
||
|
func GetAdminIndex(c *gin.Context) {
|
||
|
var LPs int
|
||
|
var LTs int
|
||
|
var EPs int
|
||
|
var ATs int
|
||
|
database.Db.Model(database.LetsPlay{}).Count(&LPs)
|
||
|
database.Db.Model(database.LetsTest{}).Count(<s)
|
||
|
database.Db.Model(database.Episode{}).Count(&EPs)
|
||
|
database.Db.Model(database.Author{}).Count(&ATs)
|
||
|
|
||
|
c.HTML(200, "admin_index.html", gin.H{
|
||
|
"title": "Admin Index",
|
||
|
"LPs": LPs,
|
||
|
"LTs": LTs,
|
||
|
"EPs": EPs,
|
||
|
"ATs": ATs,
|
||
|
"page": "admin_index",
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func GetAdminLetsPlay(c *gin.Context) {
|
||
|
if id, ok := CleanParam(c.Param("id")); ok {
|
||
|
//LP in URL
|
||
|
var LP database.LetsPlay
|
||
|
if database.Db.Where(id).First(&LP).Error == nil {
|
||
|
//LP found
|
||
|
c.HTML(200, "admin_lp.html", gin.H{
|
||
|
"title": "Admin Let's Plays",
|
||
|
"LP": LP,
|
||
|
"page": "admin_lp",
|
||
|
})
|
||
|
} else {
|
||
|
//LP not found
|
||
|
c.AbortWithStatus(404)
|
||
|
}
|
||
|
} else {
|
||
|
var LPs []database.LetsPlay
|
||
|
database.Db.Order("id asc").Find(&LPs)
|
||
|
c.HTML(200, "admin_lps.html", gin.H{
|
||
|
"title": "Admin Let's Plays",
|
||
|
"LPs": LPs,
|
||
|
"page": "admin_lps",
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func PostAdminLetsPlay(c *gin.Context) {
|
||
|
if id, ok := CleanParam(c.Param("id")); ok {
|
||
|
var LP database.LetsPlay
|
||
|
database.Db.Where(id).First(&LP)
|
||
|
if id, err := strconv.ParseUint(c.PostForm("id"), 10, 0); err == nil {
|
||
|
LP.ID = uint(id)
|
||
|
}
|
||
|
if id, err := strconv.ParseUint(c.PostForm("authorid"), 10, 0); err == nil {
|
||
|
LP.AuthorID = uint(id)
|
||
|
}
|
||
|
LP.Slug.String = c.PostForm("slug")
|
||
|
LP.Name.String = c.PostForm("name")
|
||
|
if c.PostForm("posters") == "" && !strings.HasPrefix(c.PostForm("posterb"), "/") {
|
||
|
LP.PosterS.String, LP.PosterB.String, _ = image.ResizeCover(c.PostForm("posterb"))
|
||
|
} else {
|
||
|
LP.PosterS.String = c.PostForm("posters")
|
||
|
LP.PosterB.String = c.PostForm("posterb")
|
||
|
}
|
||
|
if t, err := time.Parse("2006-01-02 15:04:05 -0700 MST", c.PostForm("aired")); err == nil {
|
||
|
LP.Aired = t
|
||
|
}
|
||
|
database.Db.Save(&LP);
|
||
|
c.Redirect(301, "/admin/lets-play#" + strconv.FormatUint(uint64(LP.ID), 10))
|
||
|
} else {
|
||
|
c.Redirect(301, "/admin/lets-play")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func GetAdminLetsTest(c *gin.Context) {
|
||
|
if id, ok := CleanParam(c.Param("id")); ok {
|
||
|
//LT in URL
|
||
|
var LT database.LetsTest
|
||
|
if database.Db.Where(id).First(<).Error == nil {
|
||
|
//LT found
|
||
|
c.HTML(200, "admin_lt.html", gin.H{
|
||
|
"title": "Admin Let's Tests",
|
||
|
"LT": LT,
|
||
|
"page": "admin_lt",
|
||
|
})
|
||
|
} else {
|
||
|
//LT not found
|
||
|
c.AbortWithStatus(404)
|
||
|
}
|
||
|
} else {
|
||
|
var LTs []database.LetsTest
|
||
|
database.Db.Order("id asc").Find(<s)
|
||
|
c.HTML(200, "admin_lts.html", gin.H{
|
||
|
"title": "Admin Let's Tests",
|
||
|
"LTs": LTs,
|
||
|
"page": "admin_lts",
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func PostAdminLetsTest(c *gin.Context) {
|
||
|
if id, ok := CleanParam(c.Param("id")); ok {
|
||
|
var LT database.LetsTest
|
||
|
database.Db.Where(id).First(<)
|
||
|
if id, err := strconv.ParseUint(c.PostForm("id"), 10, 0); err == nil {
|
||
|
LT.ID = uint(id)
|
||
|
}
|
||
|
if id, err := strconv.ParseUint(c.PostForm("authorid"), 10, 0); err == nil {
|
||
|
LT.AuthorID = uint(id)
|
||
|
}
|
||
|
LT.Slug.String = c.PostForm("slug")
|
||
|
LT.Name.String = c.PostForm("name")
|
||
|
if c.PostForm("posters") == "" && !strings.HasPrefix(c.PostForm("posterb"), "/") {
|
||
|
LT.PosterS.String, LT.PosterB.String, _ = image.ResizeCover(c.PostForm("posterb"))
|
||
|
} else {
|
||
|
LT.PosterS.String = c.PostForm("posters")
|
||
|
LT.PosterB.String = c.PostForm("posterb")
|
||
|
}
|
||
|
if c.PostForm("thumbs") == "" && !strings.HasPrefix(c.PostForm("thumbb"), "/") {
|
||
|
LT.ThumbS.String, LT.ThumbB.String, _ = image.ResizeThumb(c.PostForm("thumbb"))
|
||
|
} else {
|
||
|
LT.ThumbS.String = c.PostForm("thumbs")
|
||
|
LT.ThumbB.String = c.PostForm("thumbb")
|
||
|
}
|
||
|
LT.Youtube.String = c.PostForm("youtube")
|
||
|
LT.Descr.String = c.PostForm("descr")
|
||
|
if t, err := time.Parse("2006-01-02 15:04:05 -0700 MST", c.PostForm("aired")); err == nil {
|
||
|
LT.Aired = t
|
||
|
}
|
||
|
if ra, err := strconv.ParseFloat(c.PostForm("authorid"), 64); err == nil {
|
||
|
LT.Rating.Float64 = ra
|
||
|
}
|
||
|
if vo, err := strconv.ParseInt(c.PostForm("votes"), 10, 64); err == nil {
|
||
|
LT.Votes.Int64 = vo
|
||
|
}
|
||
|
if du, err := strconv.ParseInt(c.PostForm("duration"), 10, 64); err == nil {
|
||
|
LT.Duration.Int64 = du
|
||
|
}
|
||
|
database.Db.Save(<);
|
||
|
c.Redirect(301, "/admin/lets-test#" + strconv.FormatUint(uint64(LT.ID), 10))
|
||
|
} else {
|
||
|
c.Redirect(301, "/admin/lets-test")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func GetAdminEpisode(c *gin.Context) {
|
||
|
if id, ok := CleanParam(c.Param("id")); ok {
|
||
|
//EP in URL
|
||
|
var EP database.Episode
|
||
|
if database.Db.Where(id).First(&EP).Error == nil {
|
||
|
//EP found
|
||
|
c.HTML(200, "admin_ep.html", gin.H{
|
||
|
"title": "Admin Episoden",
|
||
|
"EP": EP,
|
||
|
"page": "admin_ep",
|
||
|
})
|
||
|
} else {
|
||
|
//EP not found
|
||
|
c.AbortWithStatus(404)
|
||
|
}
|
||
|
} else {
|
||
|
var EPs []database.Episode
|
||
|
database.Db.Order("id asc").Find(&EPs)
|
||
|
c.HTML(200, "admin_eps.html", gin.H{
|
||
|
"title": "Admin Episoden",
|
||
|
"EPs": EPs,
|
||
|
"page": "admin_eps",
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func PostAdminEpisode(c *gin.Context) {
|
||
|
if id, ok := CleanParam(c.Param("id")); ok {
|
||
|
var EP database.Episode
|
||
|
database.Db.Where(id).First(&EP)
|
||
|
if id, err := strconv.ParseUint(c.PostForm("id"), 10, 0); err == nil {
|
||
|
EP.ID = uint(id)
|
||
|
}
|
||
|
if id, err := strconv.ParseUint(c.PostForm("authorid"), 10, 0); err == nil {
|
||
|
EP.AuthorID = uint(id)
|
||
|
}
|
||
|
if id, err := strconv.ParseUint(c.PostForm("letsplayid"), 10, 0); err == nil {
|
||
|
EP.LetsPlayID = uint(id)
|
||
|
}
|
||
|
EP.Slug.String = c.PostForm("slug")
|
||
|
EP.Name.String = c.PostForm("name")
|
||
|
if ep, err := strconv.ParseInt(c.PostForm("episode"), 10, 64); err == nil {
|
||
|
EP.Episode.Int64 = ep
|
||
|
}
|
||
|
if c.PostForm("thumbs") == "" && !strings.HasPrefix(c.PostForm("thumbb"), "/") {
|
||
|
EP.ThumbS.String, EP.ThumbB.String, _ = image.ResizeThumb(c.PostForm("thumbb"))
|
||
|
} else {
|
||
|
EP.ThumbS.String = c.PostForm("thumbs")
|
||
|
EP.ThumbB.String = c.PostForm("thumbb")
|
||
|
}
|
||
|
EP.Youtube.String = c.PostForm("youtube")
|
||
|
EP.Descr.String = c.PostForm("descr")
|
||
|
if t, err := time.Parse("2006-01-02 15:04:05 -0700 MST", c.PostForm("aired")); err == nil {
|
||
|
EP.Aired = t
|
||
|
}
|
||
|
if ra, err := strconv.ParseFloat(c.PostForm("authorid"), 64); err == nil {
|
||
|
EP.Rating.Float64 = ra
|
||
|
}
|
||
|
if vo, err := strconv.ParseInt(c.PostForm("votes"), 10, 64); err == nil {
|
||
|
EP.Votes.Int64 = vo
|
||
|
}
|
||
|
if du, err := strconv.ParseInt(c.PostForm("duration"), 10, 64); err == nil {
|
||
|
EP.Duration.Int64 = du
|
||
|
}
|
||
|
database.Db.Save(&EP);
|
||
|
c.Redirect(301, "/admin/episode#" + strconv.FormatUint(uint64(EP.ID), 10))
|
||
|
} else {
|
||
|
c.Redirect(301, "/admin/episode")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func GetAdminAuthor(c *gin.Context) {
|
||
|
if id, ok := CleanParam(c.Param("id")); ok {
|
||
|
//AT in URL
|
||
|
var AT database.Author
|
||
|
if database.Db.Where(id).First(&AT).Error == nil {
|
||
|
//AT found
|
||
|
c.HTML(200, "admin_at.html", gin.H{
|
||
|
"title": "Admin Sprecher",
|
||
|
"AT": AT,
|
||
|
"page": "admin_at",
|
||
|
})
|
||
|
} else {
|
||
|
//AT not found
|
||
|
c.AbortWithStatus(404)
|
||
|
}
|
||
|
} else {
|
||
|
var ATs []database.Author
|
||
|
database.Db.Order("id asc").Find(&ATs)
|
||
|
c.HTML(200, "admin_ats.html", gin.H{
|
||
|
"title": "Admin Sprecher",
|
||
|
"ATs": ATs,
|
||
|
"page": "admin_ats",
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func PostAdminAuthor(c *gin.Context) {
|
||
|
if id, ok := CleanParam(c.Param("id")); ok {
|
||
|
var AT database.Author
|
||
|
database.Db.Where(id).First(&AT)
|
||
|
if id, err := strconv.ParseUint(c.PostForm("id"), 10, 0); err == nil {
|
||
|
AT.ID = uint(id)
|
||
|
}
|
||
|
AT.Slug.String = c.PostForm("slug")
|
||
|
AT.Name.String = c.PostForm("name")
|
||
|
AT.Youtube.String = c.PostForm("youtube")
|
||
|
if c.PostForm("avatars") == "" && !strings.HasPrefix(c.PostForm("avatarb"), "/") {
|
||
|
AT.AvatarS.String, AT.AvatarB.String, _ = image.ResizeAvatar(c.PostForm("avatarb"))
|
||
|
} else {
|
||
|
AT.AvatarS.String = c.PostForm("avatars")
|
||
|
AT.AvatarB.String = c.PostForm("avatarb")
|
||
|
}
|
||
|
if c.PostForm("fanarts") == "" && !strings.HasPrefix(c.PostForm("fanartb"), "/") {
|
||
|
AT.FanArtS.String, AT.FanArtB.String, _ = image.ResizeFanArt(c.PostForm("fanartb"))
|
||
|
} else {
|
||
|
AT.FanArtS.String = c.PostForm("fanarts")
|
||
|
AT.FanArtB.String = c.PostForm("fanartb")
|
||
|
}
|
||
|
database.Db.Save(&AT);
|
||
|
c.Redirect(301, "/admin/sprecher#" + strconv.FormatUint(uint64(AT.ID), 10))
|
||
|
} else {
|
||
|
c.Redirect(301, "/admin/sprecher")
|
||
|
}
|
||
|
}
|