70 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package controller
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"html/template"
 | 
						|
	"strings"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"code.cloudfoundry.org/bytefmt"
 | 
						|
	"github.com/gin-gonic/gin"
 | 
						|
 | 
						|
	"github.com/naiba/nezha/pkg/mygin"
 | 
						|
	"github.com/naiba/nezha/service/dao"
 | 
						|
)
 | 
						|
 | 
						|
// ServeWeb ..
 | 
						|
func ServeWeb(port uint) {
 | 
						|
	gin.SetMode(gin.ReleaseMode)
 | 
						|
	if dao.Conf.Debug {
 | 
						|
		gin.SetMode(gin.DebugMode)
 | 
						|
	}
 | 
						|
	r := gin.Default()
 | 
						|
	r.Use(mygin.RecordPath)
 | 
						|
	r.SetFuncMap(template.FuncMap{
 | 
						|
		"tf": func(t time.Time) string {
 | 
						|
			return t.Format("2006年1月2号")
 | 
						|
		},
 | 
						|
		"safe": func(s string) template.HTML {
 | 
						|
			return template.HTML(s)
 | 
						|
		},
 | 
						|
		"tag": func(s string) template.HTML {
 | 
						|
			return template.HTML(`<` + s + `>`)
 | 
						|
		},
 | 
						|
		"stf": func(s uint64) string {
 | 
						|
			return time.Unix(int64(s), 0).Format("2006年1月2号 15:04")
 | 
						|
		},
 | 
						|
		"sf": func(duration uint64) string {
 | 
						|
			return time.Duration(time.Duration(duration) * time.Second).String()
 | 
						|
		},
 | 
						|
		"bf": func(b uint64) string {
 | 
						|
			return bytefmt.ByteSize(b)
 | 
						|
		},
 | 
						|
		"ts": func(s string) string {
 | 
						|
			return strings.TrimSpace(s)
 | 
						|
		},
 | 
						|
	})
 | 
						|
	r.Static("/static", "resource/static")
 | 
						|
	r.LoadHTMLGlob("resource/template/**/*")
 | 
						|
	routers(r)
 | 
						|
	r.Run(fmt.Sprintf(":%d", port))
 | 
						|
}
 | 
						|
 | 
						|
func routers(r *gin.Engine) {
 | 
						|
	// 通用页面
 | 
						|
	cp := commonPage{r}
 | 
						|
	cp.serve()
 | 
						|
	// 游客页面
 | 
						|
	gp := guestPage{r}
 | 
						|
	gp.serve()
 | 
						|
	// 会员页面
 | 
						|
	mp := &memberPage{r}
 | 
						|
	mp.serve()
 | 
						|
	// API
 | 
						|
	api := r.Group("api")
 | 
						|
	{
 | 
						|
		ma := &memberAPI{api}
 | 
						|
		ma.serve()
 | 
						|
	}
 | 
						|
}
 |