diff --git a/controller/notice.go b/controller/notice.go index f9d151c..3d002b0 100644 --- a/controller/notice.go +++ b/controller/notice.go @@ -8,25 +8,25 @@ import ( func GetNotice(c *gin.Context) { kefuId := c.Query("kefu_id") user := models.FindUser(kefuId) - if user.ID==0{ + if user.ID == 0 { c.JSON(200, gin.H{ "code": 400, "msg": "user not found", }) return } - welcomeMessage:=models.FindConfig("WelcomeMessage") - offlineMessage:=models.FindConfig("OfflineMessage") - allNotice:=models.FindConfig("AllNotice") + welcomeMessage := models.FindConfigByUserId(user.Name, "WelcomeMessage") + offlineMessage := models.FindConfigByUserId(user.Name, "OfflineMessage") + allNotice := models.FindConfigByUserId(user.Name, "AllNotice") c.JSON(200, gin.H{ "code": 200, "msg": "ok", "result": gin.H{ - "welcome":welcomeMessage, - "offline":offlineMessage, - "avatar":user.Avator, - "nickname":user.Nickname, - "allNotice":allNotice, + "welcome": welcomeMessage, + "offline": offlineMessage, + "avatar": user.Avator, + "nickname": user.Nickname, + "allNotice": allNotice, }, }) } diff --git a/controller/visitor.go b/controller/visitor.go index 230abfa..cf48307 100644 --- a/controller/visitor.go +++ b/controller/visitor.go @@ -79,17 +79,17 @@ func PostVisitorLogin(c *gin.Context) { ) if ipcity != nil { - city = ipcity.CountryName + ipcity.RegionName + ipcity.CityName name = ipcity.CountryName + ipcity.RegionName + ipcity.CityName + if ipcity.CityName == "本机地址" || ipcity.RegionName == "本机地址" || ipcity.CountryName == "本机地址" { + city = "local address" + } } else { - city = "未识别地区" - name = "匿名网友" + city = "​​Unrecognized Region​​" + name = "visitor" } - if city == "本机地址本机地址" { - name = "local address" - } - if ipcity.CountryName == "本机地址本机地址" { + + if name == "本机地址本机地址" { name = "local visitor" } client_ip := c.ClientIP() @@ -138,9 +138,9 @@ func PostVisitorLogin(c *gin.Context) { visitor.VisitorId = id //各种通知 - go SendNoticeEmail(visitor.Name, "来了") - go SendAppGetuiPush(kefuInfo.Name, visitor.Name, visitor.Name+"来了") - go SendVisitorLoginNotice(kefuInfo.Name, visitor.Name, visitor.Avator, visitor.Name+"来了", visitor.VisitorId) + go SendNoticeEmail(visitor.Name, " incoming!") + go SendAppGetuiPush(kefuInfo.Name, visitor.Name, visitor.Name+" incoming!") + go SendVisitorLoginNotice(kefuInfo.Name, visitor.Name, visitor.Avator, visitor.Name+" incoming!", visitor.VisitorId) go ws.VisitorOnline(kefuInfo.Name, visitor) //go SendServerJiang(visitor.Name, "来了", c.Request.Host) @@ -294,7 +294,7 @@ func GetKefusVisitorOnlines(c *gin.Context) { for _, user := range users { user.LastMessage = temp[user.Uid] if user.LastMessage == "" { - user.LastMessage = "新访客" + user.LastMessage = "new visitor" } } diff --git a/models/configs.go b/models/configs.go index 47de4a1..916014e 100644 --- a/models/configs.go +++ b/models/configs.go @@ -7,6 +7,7 @@ type Config struct { ConfName string `json:"conf_name"` ConfKey string `json:"conf_key"` ConfValue string `json:"conf_value"` + UserId string `json:"user_id"` } func UpdateConfig(key string, value string) { @@ -32,3 +33,11 @@ func FindConfig(key string) string { } return "" } +func FindConfigByUserId(userId, key string) string { + for _, config := range CustomConfigs { + if key == config.ConfKey && config.UserId == userId { + return config.ConfValue + } + } + return "" +} diff --git a/static/templates/chat_main.html b/static/templates/chat_main.html index 82f8350..2ad75b8 100644 --- a/static/templates/chat_main.html +++ b/static/templates/chat_main.html @@ -604,7 +604,7 @@ this.usersMap=[]; for(let i=0;i - Go Open Source Live Chat Software + GoflyLiveChat - Open Source Live Chat @@ -52,34 +52,34 @@
@@ -103,11 +103,11 @@ }, rules: { account: [ - { required: true, message: 'Please input your username', trigger: 'blur' }, - { min: 2, max: 20, message: 'Length should be 2 to 20 characters', trigger: 'blur' } + { required: true, message: 'Username is required', trigger: 'blur' }, + { min: 2, max: 20, message: 'Username must be 2-20 characters', trigger: 'blur' } ], password: [ - { required: true, message: 'Please input your password', trigger: 'blur' }, + { required: true, message: 'Password is required', trigger: 'blur' }, { min: 2, message: 'Password must be at least 2 characters', trigger: 'blur' } ], rePassword: [ @@ -120,7 +120,7 @@ methods: { validatePasswordMatch(rule, value, callback) { if (value !== this.form.password) { - callback(new Error('Passwords do not match!')); + callback(new Error('Passwords don\'t match')); } else { callback(); } @@ -151,20 +151,20 @@ $.post("/check", data, (response) => { if (response.code === 200) { this.$message({ - message: 'Login successful', + message: 'Welcome back!', type: 'success' }); localStorage.setItem("token", response.result.token); window.location.href = "/main"; } else { this.$message({ - message: response.message || 'Login failed', + message: response.message || 'Invalid credentials', type: 'error' }); } }).fail(() => { this.$message({ - message: 'Network error', + message: 'Connection error', type: 'error' }); }); @@ -173,7 +173,7 @@ register() { if (this.form.password !== this.form.rePassword) { this.$message({ - message: 'Passwords do not match', + message: 'Passwords don\'t match', type: 'error' }); return; @@ -187,7 +187,7 @@ $.post("/register", data, (response) => { if (response.code === 200) { this.$message({ - message: 'Registration successful', + message: 'Account created successfully!', type: 'success' }); this.showRegHtml = false; @@ -199,7 +199,7 @@ } }).fail(() => { this.$message({ - message: 'Network error', + message: 'Connection error', type: 'error' }); }); diff --git a/tmpl/chat.go b/tmpl/chat.go index 4680b86..683c4e8 100644 --- a/tmpl/chat.go +++ b/tmpl/chat.go @@ -5,7 +5,7 @@ import ( "net/http" ) -//咨询界面 +// 咨询界面 func PageChat(c *gin.Context) { kefuId := c.Query("kefu_id") refer := c.Query("refer") @@ -13,20 +13,10 @@ func PageChat(c *gin.Context) { refer = c.Request.Referer() } if refer == "" { - refer = "直接访问" + refer = "​​Direct Link" } c.HTML(http.StatusOK, "chat_page.html", gin.H{ "KEFU_ID": kefuId, "Refer": refer, }) } -func PageKfChat(c *gin.Context) { - kefuId := c.Query("kefu_id") - visitorId := c.Query("visitor_id") - token := c.Query("token") - c.HTML(http.StatusOK, "chat_kf_page.html", gin.H{ - "KefuId": kefuId, - "VisitorId": visitorId, - "Token": token, - }) -} diff --git a/ws/visitor.go b/ws/visitor.go index b1e6708..63945a2 100644 --- a/ws/visitor.go +++ b/ws/visitor.go @@ -171,7 +171,7 @@ func VisitorAutoReply(vistorInfo models.Visitor, kefuInfo models.User, content s } if !ok || kefu == nil { time.Sleep(1 * time.Second) - welcome := models.FindConfig("OfflineMessage") + welcome := models.FindConfigByUserId(kefuInfo.Name, "OfflineMessage") if welcome == "" || reply.Content != "" { return }