package main import ( "../../hotime" "../../hotime/common" "../dri/ddsms" "../dri/tencent" "./admin" "./app" "encoding/base64" "fmt" "io" "io/ioutil" "os" "strings" "time" ) func main() { date, _ := time.Parse("2006-01-02 15:04", time.Now().Format("2006-01-02")+" 14:00") fmt.Println(date, date.Unix()) //fmt.Println("0123456"[1:7]) appIns := hotime.Init("config/config.json") //RESTfull接口适配 appIns.SetConnectListener(func(context *hotime.Context) bool { if len(context.RouterString) > 1 && context.RouterString[0] == "admin" { if context.RouterString[1] == "hotime" && context.RouterString[2] == "login" { return true } if context.RouterString[1] == "hotime" && context.RouterString[2] == "logout" { return true } if context.Session("admin_id").Data == nil { context.Display(2, "你还没有登录") return false } } //文件上传接口 if len(context.RouterString) == 1 && context.RouterString[0] == "ocr" && context.Req.Method == "POST" { //读取网络文件 ocr := context.Req.FormValue("ocr") if len(ocr) < 100 { context.Display(3, "没有上传文件") return false } go func() { filePath := context.Config.GetString("filePath") if filePath == "" { filePath = "file/2006/01/02/" } path := time.Now().Format(filePath) e := os.MkdirAll(context.Config.GetString("tpt")+"/"+path, os.ModeDir) if e != nil { return } fi, _ := base64.StdEncoding.DecodeString(ocr) filePath = path + common.Md5(common.ObjToStr(common.RandX(100000, 9999999))) + ".jpg" ioutil.WriteFile(context.Config.GetString("tpt")+"/"+filePath, fi, 0666) }() re := tencent.OCR(ocr) re1 := tencent.Qrcode(ocr) data := common.Map{} //fmt.Println(re1) data["text"] = common.ObjToMap(re) if data["text"] != nil { lis := data.GetMap("text").GetMap("Response").GetSlice("TextDetections") textList := common.Slice{} for k, _ := range lis { li := lis.GetMap(k).GetString("DetectedText") if li != "" { textList = append(textList, li) } } data["text"] = textList } data["qrcode"] = common.ObjToMap(re1) if data["qrcode"] != nil { lis := data.GetMap("qrcode").GetMap("Response").GetSlice("CodeResults") textList := common.Slice{} for k, _ := range lis { li := lis.GetMap(k).GetString("Url") if li != "" { textList = append(textList, li) } } data["qrcode"] = textList } fmt.Println(data.ToJsonString()) context.Display(0, data) return false } //文件上传接口 if len(context.RouterString) == 1 && context.RouterString[0] == "file" && context.Req.Method == "POST" { //读取网络文件 fi, fheader, err := context.Req.FormFile("file") if err != nil { context.Display(3, err) return false } filePath := context.Config.GetString("filePath") if filePath == "" { filePath = "file/2006/01/02/" } path := time.Now().Format(filePath) e := os.MkdirAll(context.Config.GetString("tpt")+"/"+path, os.ModeDir) if e != nil { context.Display(3, e) return false } filePath = path + common.Md5(common.ObjToStr(common.RandX(100000, 9999999))) + fheader.Filename[strings.LastIndex(fheader.Filename, "."):] newFile, e := os.Create(context.Config.GetString("tpt") + "/" + filePath) if e != nil { context.Display(3, e) return false } _, e = io.Copy(newFile, fi) if e != nil { context.Display(3, e) return false } context.Display(0, filePath) return false } if len(context.RouterString) < 2 || len(context.RouterString) > 3 || !(context.Router[context.RouterString[0]] != nil && context.Router[context.RouterString[0]][context.RouterString[1]] != nil) { return true } //排除无效操作 if len(context.RouterString) == 2 && context.Req.Method != "GET" && context.Req.Method != "POST" { return true } //列表检索 if len(context.RouterString) == 2 && context.Req.Method == "GET" { if context.Router[context.RouterString[0]][context.RouterString[1]]["search"] == nil { return true } context.Router[context.RouterString[0]][context.RouterString[1]]["search"](context) } //新建 if len(context.RouterString) == 2 && context.Req.Method == "POST" { if context.Router[context.RouterString[0]][context.RouterString[1]]["add"] == nil { return true } context.Router[context.RouterString[0]][context.RouterString[1]]["add"](context) } if len(context.RouterString) == 3 && context.Req.Method == "POST" { return true } //查询单条 if len(context.RouterString) == 3 && context.Req.Method == "GET" { if context.Router[context.RouterString[0]][context.RouterString[1]]["info"] == nil { return true } context.Router[context.RouterString[0]][context.RouterString[1]]["info"](context) } //更新 if len(context.RouterString) == 3 && context.Req.Method == "PUT" { if context.Router[context.RouterString[0]][context.RouterString[1]]["update"] == nil { return true } context.Router[context.RouterString[0]][context.RouterString[1]]["update"](context) } //移除 if len(context.RouterString) == 3 && context.Req.Method == "DELETE" { if context.Router[context.RouterString[0]][context.RouterString[1]]["remove"] == nil { return true } context.Router[context.RouterString[0]][context.RouterString[1]]["remove"](context) } context.View() return false }) //makeCode := code.MakeCode{} //fmt.Println(common.ObjToStr(makeCode.Db2JSON("admin","test",appIns.Db))) if ddsms.DefaultDDY.ApiKey == "" { ddsms.DefaultDDY.Init(appIns.Config.GetString("smsKey")) } appIns.Run(hotime.Router{ "admin": admin.Project, "app": app.Project, //"app": hotime.Proj{ // "index": hotime.Ctr{ // "test": func(this *hotime.Context) { // // data := this.Db.Get("cached", "*") // fmt.Println(data) // fmt.Println(this.Session("test").ToCeilInt()) // this.Session("test1", 98984984) // fmt.Println(this.Session("test1").Data) // this.Error.SetError(errors.New("dasdasdas")) // //fmt.Println(this.Db.GetTag()) // //this.Application.Log.Error("dasdasdas") // //this.Log.Error("dadasdasd") // //x:=this.Db.Action(func(db hotime.HoTimeDB) bool { // // // // db.Insert("user",hotime.Map{"unickname":"dasdas"}) // // // // return true // //}) // //hotime.LogError("dasdasdasdasdas") // this.Display(5, "dsadas") // }, // "websocket": func(this *hotime.Context) { // hdler := websocket.Handler(func(ws *websocket.Conn) { // for true { // msg := make([]byte, 5120) // n, err := ws.Read(msg) // go func() { // time.Sleep(time.Second * 5) // ws.Write([]byte("dsadasdasgregergrerge")) // // }() // if err != nil { // return // } // fmt.Printf("Receive: %s\n", msg[:n]) // // send_msg := "[" + string(msg[:n]) + "]" // m, err := ws.Write([]byte(send_msg)) // if err != nil { // return // } // fmt.Printf("Send: %s\n", msg[:m]) // } // }) // hdler.ServeHTTP(this.Resp, this.Req) // }, // }, //}, }) }