From a450c67b967c3383c72626126ade0a9f7ff9be08 Mon Sep 17 00:00:00 2001 From: taoshihan1991 <630892807@qq.com> Date: Fri, 22 May 2020 19:40:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AE=8C=E6=88=90=E5=85=A8?= =?UTF-8?q?=E9=83=A8ajax=E8=8E=B7=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.go | 110 +++++++++++++++++++++++++----------------- static/html/list.html | 21 ++------ tmpl/index.go | 4 +- tmpl/login.go | 2 +- tmpl/view.go | 2 +- tools/cookie.go | 12 ++--- tools/imap.go | 10 ++-- tools/stringutil.go | 22 ++++----- tools/test.go | 5 +- tools/types.go | 13 ++--- 10 files changed, 106 insertions(+), 95 deletions(-) diff --git a/server.go b/server.go index f5bd985..9225f10 100644 --- a/server.go +++ b/server.go @@ -5,7 +5,6 @@ import ( "fmt" "github.com/taoshihan1991/imaptool/tmpl" "github.com/taoshihan1991/imaptool/tools" - "html/template" "log" "net/http" "strconv" @@ -40,8 +39,8 @@ func index(w http.ResponseWriter, r *http.Request) { return } - mailServer:=tools.GetMailServerFromCookie(r) - if mailServer==nil { + mailServer := tools.GetMailServerFromCookie(r) + if mailServer == nil { http.Redirect(w, r, "/login", 302) } else { res := tools.CheckEmailPassword(mailServer.Server, mailServer.Email, mailServer.Password) @@ -55,7 +54,25 @@ func index(w http.ResponseWriter, r *http.Request) { //输出列表 func list(w http.ResponseWriter, r *http.Request) { - tmpl.RenderList(w, nil) + values := r.URL.Query() + fid := "" + currentPage := 0 + if len(values["fid"]) != 0 { + fid = values["fid"][0] + } + if len(values["page"]) != 0 { + currentPage, _ = strconv.Atoi(values["page"][0]) + } + if fid == "" { + fid = "INBOX" + } + if currentPage == 0 { + currentPage = 1 + } + render := new(tools.IndexData) + render.CurrentPage = currentPage + render.Fid = fid + tmpl.RenderList(w, render) } //详情界面 @@ -74,28 +91,30 @@ func view(w http.ResponseWriter, r *http.Request) { } else { id = 0 } - - mailServer:=tools.GetMailServerFromCookie(r) - var wg sync.WaitGroup + // + //mailServer:=tools.GetMailServerFromCookie(r) + //var wg sync.WaitGroup var render = new(tools.ViewData) - wg.Add(1) - go func() { - defer wg.Done() - folders := tools.GetFolders(mailServer.Server, mailServer.Email, mailServer.Password, fid) - render.Folders = folders - render.Fid = fid - }() - wg.Add(1) - go func() { - defer wg.Done() - mail := tools.GetMessage(mailServer.Server, mailServer.Email, mailServer.Password, fid, id) - render.From = mail.From - render.To = mail.To - render.Subject = mail.Subject - render.Date = mail.Date - render.HtmlBody = template.HTML(mail.Body) - }() - wg.Wait() + render.Fid = fid + render.Id = id + //wg.Add(1) + //go func() { + // defer wg.Done() + // folders := tools.GetFolders(mailServer.Server, mailServer.Email, mailServer.Password, fid) + // render.Folders = folders + // render.Fid = fid + //}() + //wg.Add(1) + //go func() { + // defer wg.Done() + // mail := tools.GetMessage(mailServer.Server, mailServer.Email, mailServer.Password, fid, id) + // render.From = mail.From + // render.To = mail.To + // render.Subject = mail.Subject + // render.Date = mail.Date + // render.HtmlBody = template.HTML(mail.Body) + //}() + //wg.Wait() tmpl.RenderView(w, render) } @@ -131,13 +150,13 @@ func check(w http.ResponseWriter, r *http.Request) { password := r.PostFormValue("password") msg, _ := json.Marshal(tools.JsonResult{Code: 400, Msg: "验证失败"}) - w.Header().Set("content-type","text/json;charset=utf-8;") + w.Header().Set("content-type", "text/json;charset=utf-8;") if email != "" && server != "" && password != "" { res := tools.CheckEmailPassword(server, email, password) if res { msg, _ = json.Marshal(tools.JsonResult{Code: 200, Msg: "验证成功,正在跳转..."}) auth := fmt.Sprintf("%s|%s|%s", server, email, password) - tools.SetCookie("auth",auth,&w) + tools.SetCookie("auth", auth, &w) w.Write(msg) } else { w.Write(msg) @@ -146,6 +165,7 @@ func check(w http.ResponseWriter, r *http.Request) { w.Write(msg) } } + //邮件夹接口 func folders(w http.ResponseWriter, r *http.Request) { values := r.URL.Query() @@ -164,31 +184,31 @@ func folders(w http.ResponseWriter, r *http.Request) { currentPage = 1 } - mailServer:=tools.GetMailServerFromCookie(r) - w.Header().Set("content-type","text/json;charset=utf-8;") + mailServer := tools.GetMailServerFromCookie(r) + w.Header().Set("content-type", "text/json;charset=utf-8;") - if mailServer==nil{ + if mailServer == nil { msg, _ := json.Marshal(tools.JsonResult{Code: 400, Msg: "验证失败"}) w.Write(msg) return } var wg sync.WaitGroup wg.Add(2) - result :=make(map[string]interface{}) + result := make(map[string]interface{}) go func() { defer wg.Done() - folders := tools.GetFolders(mailServer.Server, mailServer.Email,mailServer.Password, fid) - result["folders"]=folders - result["total"]=folders[fid] + folders := tools.GetFolders(mailServer.Server, mailServer.Email, mailServer.Password, fid) + result["folders"] = folders + result["total"] = folders[fid] }() go func() { defer wg.Done() mails := tools.GetFolderMail(mailServer.Server, mailServer.Email, mailServer.Password, fid, currentPage, PageSize) - result["mails"]=mails + result["mails"] = mails }() wg.Wait() - result["pagesize"]=PageSize - result["fid"]=fid + result["pagesize"] = PageSize + result["fid"] = fid msg, _ := json.Marshal(tools.JsonFolders{ JsonResult: tools.JsonResult{Code: 200, Msg: "获取成功"}, @@ -196,6 +216,7 @@ func folders(w http.ResponseWriter, r *http.Request) { }) w.Write(msg) } + //邮件接口 func mail(w http.ResponseWriter, r *http.Request) { values := r.URL.Query() @@ -212,22 +233,22 @@ func mail(w http.ResponseWriter, r *http.Request) { } else { id = 0 } - mailServer:=tools.GetMailServerFromCookie(r) - w.Header().Set("content-type","text/json;charset=utf-8;") + mailServer := tools.GetMailServerFromCookie(r) + w.Header().Set("content-type", "text/json;charset=utf-8;") - if mailServer==nil{ + if mailServer == nil { msg, _ := json.Marshal(tools.JsonResult{Code: 400, Msg: "验证失败"}) w.Write(msg) return } var wg sync.WaitGroup - result :=make(map[string]interface{}) + result := make(map[string]interface{}) wg.Add(2) go func() { defer wg.Done() folders := tools.GetFolders(mailServer.Server, mailServer.Email, mailServer.Password, fid) - result["folders"]=folders - result["total"]=folders[fid] + result["folders"] = folders + result["total"] = folders[fid] }() go func() { defer wg.Done() @@ -239,7 +260,7 @@ func mail(w http.ResponseWriter, r *http.Request) { result["html"] = mail.Body }() wg.Wait() - result["fid"]=fid + result["fid"] = fid msg, _ := json.Marshal(tools.JsonFolders{ JsonResult: tools.JsonResult{Code: 200, Msg: "获取成功"}, @@ -247,4 +268,3 @@ func mail(w http.ResponseWriter, r *http.Request) { }) w.Write(msg) } - diff --git a/static/html/list.html b/static/html/list.html index f8f14f3..113f63f 100644 --- a/static/html/list.html +++ b/static/html/list.html @@ -7,7 +7,6 @@ GO-IMAP网页版邮箱imap工具 - @@ -90,27 +92,14 @@ :total="mailTotal"> - - +