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 if database.Db.Where("slug=?", 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) } if mergeid, err := strconv.ParseUint(c.PostForm("mergeid"), 10, 0); err == nil { LP.MergeID.Int64 = int64(mergeid) } if mergeseason, err := strconv.ParseUint(c.PostForm("mergeseason"), 10, 0); err == nil { LP.MergeSeason.Int64 = int64(mergeseason) } 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 if database.Db.Where("slug=?", 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 if database.Db.Where("slug=?", 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 se, err := strconv.ParseInt(c.PostForm("season"), 10, 64); err == nil { EP.Season.Int64 = se } 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 if database.Db.Where("slug=?", 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") } }