You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.1 KiB
Go

package controllers
import (
"autogo/models"
"bytes"
"compress/zlib"
"encoding/base64"
"errors"
"fmt"
"io"
"net/http"
"os/exec"
"github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
"gorm.io/gorm"
)
func NewResponse() models.Response {
var res models.Response
res.Init()
return res
}
func Test(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"status": "ok"})
cmd := exec.Command("bash", "-c", "cd /home/app/aimonkey && python3 main_run.py -package music.hising.live")
err := cmd.Run()
if err != nil {
log.Error(err)
}
}
func CheckErr(err error) models.Response {
var res models.Response
if err != nil {
res.Code = 500
res.Msg = err.Error()
}
return res
}
// 从表单获取分页参数
func getPage(c *gin.Context) models.Page {
var p models.Page
if err := c.ShouldBindQuery(&p); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
p.Index = 0
p.Size = 0
return p
}
fmt.Println(p)
return p
}
func checkErr(err error) models.Response {
var res models.Response
if err != nil {
res.Code = 500
res.Msg = err.Error()
}
return res
}
func checkToken(c *gin.Context) (string, error) {
if token, flag := c.GetQuery("token"); !flag {
return "", errors.New("缺少token")
} else if len(token) < 6 {
return "", errors.New("token错误")
} else {
baseStr := token[3 : len(token)-2]
baseByte, err := base64.StdEncoding.DecodeString(baseStr)
if err != nil {
return "", err
}
// fmt.Println(string(baseByte))
return string(baseByte), nil
}
}
func connClose(db *gorm.DB) {
sqlDB, err := db.DB()
if err != nil {
fmt.Println(err.Error())
return
}
sqlDB.Close()
}
// 进行zlib压缩
func Compress(src []byte) []byte {
var in bytes.Buffer
w := zlib.NewWriter(&in)
w.Write(src)
w.Close()
return in.Bytes()
}
// 进行zlib解压缩
func UnCompress(compressSrc []byte) []byte {
b := bytes.NewReader(compressSrc)
var out bytes.Buffer
r, _ := zlib.NewReader(b)
io.Copy(&out, r)
return out.Bytes()
}