From ef7a22dcae0b6cda8fbc511305570dad9ec9e632 Mon Sep 17 00:00:00 2001 From: minoic Date: Wed, 9 Feb 2022 16:50:00 +0800 Subject: [PATCH 1/6] update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7c688e..10a96cc 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ 当前适配翼龙面板 v1.7.0 -[Docker镜像]([minoic/peo - Docker Image | Docker Hub](https://hub.docker.com/r/minoic/peo)) +[minoic/peo - Docker Image | Docker Hub](https://hub.docker.com/r/minoic/peo) #### 特性 From c54d5307a9644060ac9d66692eb1d813a7c11d3c Mon Sep 17 00:00:00 2001 From: minoic Date: Fri, 11 Feb 2022 17:00:25 +0800 Subject: [PATCH 2/6] fix fixture mail settings in code --- conf/settings.conf | 1 + docker/conf/settings.conf | 1 + internal/email/mail_generate.go | 8 ++++---- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/conf/settings.conf b/conf/settings.conf index 2f32e00..2cd37e7 100644 --- a/conf/settings.conf +++ b/conf/settings.conf @@ -51,6 +51,7 @@ SMTPPort = 80 SMTPSendFrom = "ADMIN " SMTPUsername = "admin@example.com" SMTPUserPassword = "yourpassword" +SMTPLogo = "" #TLS/SSL SMTPEncryption = "TLS" #if DeleteEmailConfirm be set to true all admins will receive an email before Server being deleted diff --git a/docker/conf/settings.conf b/docker/conf/settings.conf index 88376f5..fb03570 100644 --- a/docker/conf/settings.conf +++ b/docker/conf/settings.conf @@ -51,6 +51,7 @@ SMTPPort = 80 SMTPSendFrom = "ADMIN " SMTPUsername = "admin@example.com" SMTPUserPassword = "yourpassword" +SMTPLogo = "" #TLS/SSL SMTPEncryption = "TLS" #if DeleteEmailConfirm be set to true all admins will receive an email before Server being deleted diff --git a/internal/email/mail_generate.go b/internal/email/mail_generate.go index c6c1520..29b763c 100644 --- a/internal/email/mail_generate.go +++ b/internal/email/mail_generate.go @@ -12,8 +12,8 @@ func getProd() hermes.Hermes { Product: hermes.Product{ Name: configure.WebApplicationName + " Mail", Link: configure.WebHostName, - Logo: "data:image/png;base64,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", - Copyright: "Copyright © 2020 Mino. All rights reserved.", + Logo: configure.GetConf().String("SMTPLogo"), + Copyright: "Copyright 2021 MinoIC. All rights reserved.", TroubleText: "如果点击链接无效,请复制下列链接并在浏览器中打开:", }, } @@ -38,7 +38,7 @@ func genRegConfirmMail(userName string, key string) (string, string) { }, }, Outros: []string{ - "需要帮助请发邮件至 cytusd@outlook.com", + "需要帮助请在网站内发送工单", }, }} mailBody, err := h.GenerateHTML(email) @@ -62,7 +62,7 @@ func genForgetPasswordEmail(key string) (string, string) { "您正在修改密码,验证码为:" + key, }, Outros: []string{ - "需要帮助请发邮件至 cytusd@outlook.com", + "需要帮助请在网站内发送工单", }, }} mailBody, err := h.GenerateHTML(email) From 1a7daf27d5c2061be24b1085bd41cfd6d1c66658 Mon Sep 17 00:00:00 2001 From: minoic <55825043+minoic@users.noreply.github.com> Date: Thu, 3 Mar 2022 09:35:18 +0800 Subject: [PATCH 3/6] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4373f37 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 minoic + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From c97edea83d1a2cb608b5975f05aff321a30af7a3 Mon Sep 17 00:00:00 2001 From: minoic Date: Wed, 18 May 2022 19:34:26 +0800 Subject: [PATCH 4/6] fix endless waiting for mc ping --- conf/app.conf | 4 +- conf/settings.conf | 2 +- .../controllers/admin_console_controller.go | 5 +- .../controllers/forget_password_controller.go | 5 +- internal/controllers/login_controller.go | 5 +- internal/controllers/new_ware_controller.go | 5 +- internal/controllers/order_info_controller.go | 5 +- internal/controllers/reg_controller.go | 5 +- .../controllers/user_console_controller.go | 3 +- .../controllers/user_recharge_controller.go | 5 +- .../controllers/user_settings_controller.go | 5 +- .../controllers/user_work_order_controller.go | 5 +- internal/status/minecraft.go | 68 ++++++++++++------- 13 files changed, 85 insertions(+), 37 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index 8e0de24..73eabd2 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -9,8 +9,8 @@ sessionproviderconfig = "127.0.0.1:6379" # NOT RECOMMENDED TO EDIT appname = peo -httpaddr = "localhost" -httpport = 5701 +httpaddr = "0.0.0.0" +httpport = 8080 runmode = "dev" enablexsrf = true xsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o diff --git a/conf/settings.conf b/conf/settings.conf index 2cd37e7..ae52fde 100644 --- a/conf/settings.conf +++ b/conf/settings.conf @@ -72,7 +72,7 @@ CacheFileDirectoryLevel = "2" CacheFileEmbedExpiry = "120" #CacheMode = "redis" CacheRedisKey = "collectionName" -CacheRedisCONN = ":6039" +CacheRedisCONN = ":6379" CacheRedisdbNum = "0" CacheRedisPassword = "" #CacheMode = "memcache" diff --git a/internal/controllers/admin_console_controller.go b/internal/controllers/admin_console_controller.go index 573cced..bd0a14b 100644 --- a/internal/controllers/admin_console_controller.go +++ b/internal/controllers/admin_console_controller.go @@ -443,7 +443,10 @@ func (this *AdminConsoleController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/controllers/forget_password_controller.go b/internal/controllers/forget_password_controller.go index 99c7521..cf638a8 100644 --- a/internal/controllers/forget_password_controller.go +++ b/internal/controllers/forget_password_controller.go @@ -88,7 +88,10 @@ func (this *ForgetPasswordController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/controllers/login_controller.go b/internal/controllers/login_controller.go index 2ee07f2..999b0d5 100644 --- a/internal/controllers/login_controller.go +++ b/internal/controllers/login_controller.go @@ -61,7 +61,10 @@ func (this *LoginController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/controllers/new_ware_controller.go b/internal/controllers/new_ware_controller.go index e4219c5..9217d14 100644 --- a/internal/controllers/new_ware_controller.go +++ b/internal/controllers/new_ware_controller.go @@ -377,7 +377,10 @@ func (this *NewWareController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/controllers/order_info_controller.go b/internal/controllers/order_info_controller.go index 52519a5..6205a10 100644 --- a/internal/controllers/order_info_controller.go +++ b/internal/controllers/order_info_controller.go @@ -178,7 +178,10 @@ func (this *OrderInfoController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/controllers/reg_controller.go b/internal/controllers/reg_controller.go index 3ca1ed6..562ea7f 100644 --- a/internal/controllers/reg_controller.go +++ b/internal/controllers/reg_controller.go @@ -218,7 +218,10 @@ func (this *RegController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/controllers/user_console_controller.go b/internal/controllers/user_console_controller.go index c2cc5b5..e72b45a 100644 --- a/internal/controllers/user_console_controller.go +++ b/internal/controllers/user_console_controller.go @@ -77,12 +77,13 @@ func RefreshServerInfo() { ) DB.Find(&entities) pongsSync.pongs = make([]status.Pong, len(entities)) - wg.Add(len(entities)) for i, e := range entities { + wg.Add(1) go func(host string, index int) { defer wg.Done() pongTemp, err := status.Ping(host) if err != nil { + glgf.Error("mc ping", host, err) pongsSync.pongs[index] = status.Pong{} } else { pongsSync.pongs[index] = *pongTemp diff --git a/internal/controllers/user_recharge_controller.go b/internal/controllers/user_recharge_controller.go index 1a35646..e63c6d8 100644 --- a/internal/controllers/user_recharge_controller.go +++ b/internal/controllers/user_recharge_controller.go @@ -187,7 +187,10 @@ func (this *UserRechargeController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/controllers/user_settings_controller.go b/internal/controllers/user_settings_controller.go index 541cf4e..e2438d2 100644 --- a/internal/controllers/user_settings_controller.go +++ b/internal/controllers/user_settings_controller.go @@ -202,7 +202,10 @@ func (this *UserSettingsController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/controllers/user_work_order_controller.go b/internal/controllers/user_work_order_controller.go index 0a05ff6..35d7fd0 100644 --- a/internal/controllers/user_work_order_controller.go +++ b/internal/controllers/user_work_order_controller.go @@ -83,7 +83,10 @@ func (this *UserWorkOrderController) CheckXSRFCookie() bool { if !this.EnableXSRF { return true } - token := this.Ctx.Input.Query("_xsrf") + token := this.GetString("_xsrf") + if token == "" { + token = this.Ctx.Input.Query("_xsrf") + } if token == "" { token = this.Ctx.Request.Header.Get("X-Xsrftoken") } diff --git a/internal/status/minecraft.go b/internal/status/minecraft.go index b728411..17168e5 100644 --- a/internal/status/minecraft.go +++ b/internal/status/minecraft.go @@ -3,12 +3,14 @@ package status import ( "bufio" "bytes" + "context" "encoding/binary" "encoding/json" "errors" "io" "net" "strconv" + "time" ) const ( @@ -44,32 +46,50 @@ type Pong struct { } func Ping(host string) (*Pong, error) { - conn, err := net.Dial("tcp", host) - if err != nil { - return nil, err - } - defer conn.Close() - if err := sendHandshake(conn, host); err != nil { - return nil, err - } - if err := sendStatusRequest(conn); err != nil { + ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) + retc := make(chan *Pong) + errc := make(chan error) + go func(ctx context.Context) { + defer cancel() + conn, err := net.Dial("tcp", host) + if err != nil { + errc <- err + return + } + defer conn.Close() + if err := sendHandshake(conn, host); err != nil { + errc <- err + return + } + if err := sendStatusRequest(conn); err != nil { + errc <- err + return + } + p, err := readPong(conn) + // glg.Debug(Pong.FavIcon) + if err != nil { + // glg.Error(err) + errc <- err + return + } + if p.FavIcon == "" { + p.FavIcon = "data:image/png;base64,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8xjws0gCxy+ghmGT+CSytn8tsgRcrbpBdUEF4GT2Af+GYUpy69aFDWEVmeK/DgkQu40ZFtdcVFQANucEkpLcOmd4wTmALOWuA96DLPGUTWirCTgJxd7wbcho8j7UMKwje4D/gUzxn6m6MYuCzgAm427UMKwbX0G28K5BYj2080+ACsDOGDcMH6u6QS3kDqS45quQIJ4TVTdoEVEBOD3KhuF7gS9X3aCG0wX+L/B65NScPwSyqhu1yKgATIdV5NCTwjDUCMPpchiptHM98OPIUkyZAmoCTpeMoWFY1DC8BViuumELypPAbyDi+lTVjWkiOgOYHUUNwyKdtPVRZxPwABKefQ3wYbTzzwwVgNnzCPABNCV5O3wOKa75SqQIR6Wn5rQBFYD5sY9hDcO/g0YYFvSBP0AKa74FKa6ZVt2otqACMH9OAP8LMQxvAD5VdYMq4iiSkfcKxCeZy3HYyihqAlbHeA3D9wE/CixV3bAZ8zQSsfebwLerbkzb0RlAPShHGDbVMHwY+PtI8NQvo52/FqgA1Itxw3BP1Q2aAncCfwPZw/915MBMpSaoANSTwjC8FjEMFy3CMEWi9N4C/ADweyzgqTltQAWg3qwwNAxvpP6G4XEkLv9VSJx+7Y7DVkZRAVgMMqR+4duQctW/Rb3KVT+DBOxch2Tm/UXVDVK2hwrA4vFnSF2766g+JfkR4B8jxt4HaYZn0SpUABaXR5CU5JcB/5z5dr4vAn8T8Sj+E3Co6jdD2RkqAIvPfuTQyuuAv83sIgwdsgx5K/D9wO8A61W/eOX0UAFoDseB/w28hukahiv5dQsjcqGPw1ZGUQFoHmXD8I1IZdydGIb7gX+N7N/PcmahVIgKQLO5C6mMez3bjzB8DPg5xNj7Z2j2YqNRAWgH30AiDF8O/CIbG4b3IEFH1yLn5TUxHFkZQ5OB2sV+4CNIea13Az+DhOb+GlLGzFXdQGW+GO/1sBRFaSu6BFCUFqMCoCgtRgVAUVqMCoCitBgVAEVpMSoAitJiVAAUpcWoAChKi1EBUJQWowKgKC1GBUBRWsz/B0SPFnvBXwUbAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEyLTI4VDA5OjMxOjU2KzAwOjAwuGsTuQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wMS0wOFQxOTozOTozNSswMDowMKJkNLUAAAAgdEVYdHNvZnR3YXJlAGh0dHBzOi8vaW1hZ2VtYWdpY2sub3JnvM8dnQAAABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpIZWlnaHQAMjU26cNEGQAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAyNTZ6MhREAAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE1NDY5NzYzNzVRMXZzAAAAEnRFWHRUaHVtYjo6U2l6ZQAyODA0M0JW4xBJAAAAWnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vZGF0YS93d3dyb290L3d3dy5lYXN5aWNvbi5uZXQvY2RuLWltZy5lYXN5aWNvbi5jbi9maWxlcy8xMTgvMTE4MDExNS5wbmc7DAHHAAAAAElFTkSuQmCC" + } + if p.Description.Text != "" { + p.Description.Des = p.Description.Text + } else { + p.Description.Des = p.Description.Translate + } + retc <- p + }(ctx) + select { + case ret := <-retc: + return ret, nil + case err := <-errc: return nil, err + case <-ctx.Done(): + return nil, errors.New("time exceeded") } - p, err := readPong(conn) - // glg.Debug(Pong.FavIcon) - if err != nil { - // glg.Error(err) - return nil, err - } - if p.FavIcon == "" { - p.FavIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAiNUlEQVR42u2de5QsR33fP1X9mN0rCekiKUgGIQk9ARv04P0wOMTYgKQAsuLEDjGJHfBJ4iQmx3YSH0LsYIjzdHJynJPkOIljO7YPRn4ILBCEI0CW9QAshASS0EUCCd33Q3fv7uxMd1flj1/3TM/c3b07e2eme7p/n3NG2ruPnpqZrm9Vfev3+5Xx3qMoSjuxVTdAUZTqUAFQlBajAqAoLUYFQFFajAqAorQYFQBFaTEqAIrSYlQAFKXFqAAoSotRAVCUFqMCoCgtJpz2Bd/zG9ej+QW1xgCvBN4O3AwcA34f+AzwaNWNUzbHe/idv/uVqV5z6gKg1BILvAL4q8DbgGvHfv4GoA/cBXwS+BPg8aobrcweFYDmEgPXATcCNwAv28bv/+X88WHgK8AfI4Lw9apfjDIbVACaRQi8Dpne3wS8eIfXWQZenz9+Bbgf+CPgU8DXqn6RyvRQAVh8YmR6fzPwVuB7p3z9CBGV1wEfAe4FPo0IwkOAGj4LjArAYrIEvBaZ3r8NuHpOzxsynBn8C+BB4OPA7cBfVP2mKJOjArA4LCGj8E3ADwNXVdyeEPEYrgP+FfAl4E8Rz+DL6MxgIVABqDdnMjq9v7LqBm2CBV6VPz6EzAxuQ5YJDwBZ1Q1UNkYFoH6cAXw/8A7EzLu06gZNiAFenj9+ETEN/xhZJtwPpFU3UBmiAlAPzkSm9z+CbMNdVnWDpoRBth9fBnwQEYPPIL7B/UBSdQPbjgpAdZyDBODciEzvL6m6QXPg+/LHB5DYgtsQz+BeJBBJmTMqAPPlOcCbkcCctwEvqLpBFfKS/PELwMPI1uIngLuBXtWNawsqALPnXOA1wC3I9P6iqhtUQ16aPz4APIIsE24F7gPWqm5ck1EBmA3nIiP9TcAPAc+rukELxNX542eQfITbkNnBXcBq1Y1rGioA0+O5yAj/LuAHgAurblADuBz42fzxOPD/EAPxblQMpoIKwOlxARIVdzPS+XWknx2X54/3A08wDEe+F0lpVnaACsDknI+49jcBb0Gm+8p8uRT46fzxFCIGfwLcCaxU3bhFQgVge1yArOlvAd6IiIBSDy4Cfip/fAf4HPAx4B7gSNWNqzsqAJvzAuAHkX36NwO7q26QckpeCLw3f+xDZga3IaJwtOrG1REVgFEuRBJt3omE455TdYOUHXMB8BP5Yy8iArciywSdGeSoAMDFwJuQ6f3r0ZG+iVwI/Hj+2I+IwB8AX8z/3VraKgAXI4k270BG+rOqbpAyN54H/Gj+OIwEHX0CuAM4WHXj5k2bBOASJCjnZuDVSFiu0m7OBf56/jiIBBt9HFku7K26cfOg6QJwJbJldyOSbXdm1Q1Sasv5SBDXuxDD8E4kjfmzwHerbtysaKIAXIYk27wd2bJbrrpBysKxm1Ex+DwSZ3AHDRODpgjAi5GgnJuRQy/OqLpBSmPYjewKvROJOLwHMRA/h0QkLjSLLAAvRky8G5Bsu07VDVIazznINvEPIxGHn0cMxNuRIKSFY9EE4CVIp78JGem10ytVcRYy+NwAPIukLv8REny0p+rGbZdFEIBrkESbdyNFJ6OqG6QoY5yNRI3+INBFshVvRbYYv1l147airgLwfcg5dm9Htuz0FGNlUVhG/Ki3IMVM7kLMw9uAx6pu3Dh1EoBrkDJZ70IOr6xT2xRlJ+xCtqHfyvDshI8jM4NanLdYZSczSM37Ysvu+vx7itJElpFt6TciBVDvRgqifgo5Yq0S5i0AAVIi+t3IaH99VS9cUSokRjJM34yct3g/skT4BHMWg3kIQICYd29Fpvcvn+cLVJSaUz589cPIMuFWxDd4YNZPPisBiJDp/TuRPdNTnU2vKIoMlq/OHx9FxOB2ZHvxQWNw037CqQuAMeZfeu9vwfMS+cYM3y5FaS6D8xaN5YMYvpqs+t8HfnWaTzJ1AYii6Oedc8tpmuEyB95jjFEhUJQJMQHgob/i7NrB7Nr1Y9nV1F0AgBVr7XIcW5xzZGlGlgsBxogOqBgoysYYsBZcButHHasHUvrHHd6BsdMveDpTE9Bai+1YwsyTpilZ5nB4DCoEilLGGDAWsgRWD2WsHsxIVmXJb2w+G5gBs98F8GCsIepEhM6TpRlpmokQeHR5oLQaYwEDWc/TPZyxdigj6fqBIMya+cUB5J09ikPCKBwIgfdu8DMVAqUtFB0/WfOsHcxYP5KR9j3Ggp3RaL8Rc48E9F7+H0QBQRiQZZn4BM7pjEBpPCVjj9WDGetHM1zG3Dt+QXWhwIUQBAFBEOCcI00ynCvtHICKgbL45NN5n8H6ETH2eisOXHUdv6A2CTfWWuKOxXtPmohh6NUwVBaZ3NHPEmR9fyCjv5oveQMk7KdiaiMABcaMGoZZYRiqECgLgrHi6qc9z+qhjLXDGWnXD2YCdaJ2AgAMTMEwDgnDgDSTeAI1DJU6Uxh7aW7srR3JyHJjb1bbeKdLPQWgwAPGEEYBYW4Ypqn4BAPDEFQMlErZyNjzGVDx+n471FsACgrDMBw3DLP8F3R5oMyZcsTeEcfqwZTe8dzYC+o74o+zGAJQkAtBYRg6F5JphKEyR8Yj9tYOpvRX5cY0lloYe5OwWAIwhrWGoBPhxiMMVQiUKVM29ro1N/YmYaEFAIocIzEMgyggSx1ZmuK8hhorp8+osZeydsTV3tibhIUXgAFenICyYZglGU53DpQdsJmxV3XgzrRpjgAUjBuGmSNN0zzCEE1JVjZng4i9/sogFbcRI/44zROAgsIwDC1xEEttgkRyDtQnUMqUjb3uHFNx60BzBaCgtHNgO5bQe1KNMFQYTcVdO5TRPZSRri++sTcJzReAMYqU5KiIMExyw9AYjEGFoAWMpuKmdBtm7E1C6wQAODnCMM1IswzvSoYhqBg0jLKxt3Ywo5un4tqGGXuT0E4BKBivTeDyGYHL13+oECw8IxF7GasHMvorDufa3fEL2i0ABYPaBJbAxjgnNQxd5vIfqk+waBgjI37Wz2vsHUhJ1vwgFbftHb9ABaDMwDA0xJ0I74aGoVchWAjKEXtre8XYS9bnV2Nv0VAB2IxyDcPcJ8iyDOfUMKwjRedOumLsrR9xldTYWzRUAE5FuTaB36SYKagYVMRmNfZ0fb89VAC2y5hhOBJhiBqGc2UkYk8Cd3r54Rm2wet7Y6bfX1UAJmWDCEM5Bk1qE6gQzI5WRuzlKSzeQ9JzR6Z9eRWAnVKKMOx0LC4LB6cf6c7BdBkx9g5ldA/P9/CMSrDgjcEkjiRxJH3vs8T9g2k/zfwEoPigpn7AcfX4LU8/UsNwp5RTcVfHIvaaOs2XFw523dPZ14fVjMMXhjjPR4FPT/up5iMABsyKg9DgzrKYzEN2+petHWXDMAqHOQfeqRBMwIixdyBj/Vh7jD0fGOL9Ccvf6hGknv6ZFm/4vHf+Q7N4vrkIgI8M4dMJ8Ve6pFd3SK/skJ0TSIdJ/TyaMF/ylxQNahOIYTgSaqxCMMopUnGb3vHL2HWHzTxEBmvMMdtzP2k86Syea45LAINd88QPrBM/2ie9KCK5skN6QSCr5WyKQmCQJUfFs4zBMWihJSgMw6KYqW4hyksfN/aKiD0abOyd8k1B7l9riBIOXPh09sSsnmo+AlD07QBMbLEOgj0JnScSkr8U0HvFMun5oSwNpvDmmXUPfY97bj7LyPywDVWwRTHTtp5+dFKNvRam4m75/iBLRmuw1psI6M3ieea6C2CQD91aM6ieuvR0Svb8lPSCcDojdmAwKxlLnz5BdlFIelWH7IIQHxtZbtTAhLTWYLc6/ah4sxrIIBV3NU/FPdreVNxNMWNfz/BemPs2YPF6bLEO7lhMaKY7QlswzhPt6RM/mZCdF5JcEZNeHOGXLLga+A6bGYbOybSYZvkErYvYK270Ggw4WzF9ATB0gE06tJGafEUsfT7Nmcl9bsB0LMZAdCQjunsN94Bl7U27SL8nqo/5uIFhmJVqGC60YTgesXcgq82puLN8zd4aTOKx6w63a+frmUJDZnmnTl0AeieyT4Yd+2NBaCAwW462RvQg/890Kc80bAREhqDrCVY9aQ07VJMMw6Gx51k7KMU3krVhxN6iHZ6xvRctW3i254gPp3Se6ZPtsqy+eHk63taMmLoAZD33D13iX20Dc9nyusedJ+tv8rXfJu/dzBAjJR9FgwUwmMqG4ZJEGGYLEmF4UsReS1JxfWCw647O/j7xoZRgXc6udGfanQ3fc/xsZ7EEOOzhpzLvP7t0XzewzrB+bQeb+tlN97dsDnk8tZnFRGO2+JMNwzqefjSI2FvNI/aOtidiDw/LT/SIDyTY1MusNzKYrDRr2ybeysPkZrhn9ptXUxcAFxiAOwn4ZRPbX4r3poR3ruE6BhOVO+H87txilbGwy+mR49JD0iwlS10eYVidTzAw9o7nxt6xZh6esSUO4kMJNgNCO7jPrM1nntvowj5/r8Ljjs7+hOhoCqEZ3RWaEVMXgOd8Ow9YMnwkXvfvsR17OSbfi7cGa+Y8Eo8/2UIqQI6sAIiikDBEjktPSjsH8xCCDSL2ysZeG7fyfCCBbMUWt6Xkb21GbhbiPNHRjHhfQnQsw3gPgR0sp0zxyzNi6gJw/tcHEYuptxz31hDg5U0avvaRN8dbCRc2acUBOwvC0DAsn36U5TsHfianH40Ye4ccawdaYOxN8v4AtrC6CjHe6AModgkyT3QopbOvT3jcYZDlgzF28PdmuH6dGVMXAD+8EYr3BLaaygSG5T0JLoLexVGtAnZqT2EYBpY4sHL6UZoNIgynYRgOjL11z9rh9hh7EzHo62Ywup00GSs6furpHEyI9yWEq5m8uQHDjs+w88/Dt6q8HoC3EB5zPOeuLv2HenSvjOlfGuF3WRWCCRmcfuRO//SjonOPpOImLTD2TocNdmq9AQKD7Xs6h/rE+xOCNSdDY2BKnZ2RrwezuBlTuQAAEIg6hscdZ9zTpfNwj94VMcllMe45DU4fngVFMdNITj/KsnznwPt8oNp6SqnG3vTwBoLEs7w/IT6QYtYd3iIGX8Udv6AeAkB+Y4ZgA0PY9QRfWif7Ro/kRTH9q+Jmpw/PCmMIo5AgDAenHzm3wc7BRhF7x92ghn4bjb3TxRuI1xznfr2H6ToyCz40wx2pIgq2oo5fUB8BKEKD8ZjA4JclnDJ4qEf8zT79i0P6V3fIzpMmqxBsj4FhWJx+NBZqbEODS6B7NGP14Ggqbi2YdSzsDNtt+x7vc4Pbkwtv/uOKO35BbQQASm+IAe9zIQgMxnmWH0vofCuhf1FE/+qY7Hnh9CMlrGzpNHI3onz6USnU+Ph3e3QPObJejVJxC8PMeUw6uoNUKyz48jRqg9eBkY5vi6/zH9QlKK1WAlDGjAvBksF4z9KTCfGTCf1LI7pv2DW9EcJC/KUu7uyA9LJYdiOSBgpBThBaXAIrT6d4ZOlV+U1phgIcFfH0uwO6L+jUK54+L9gZrDk6+/rY/nDrdfwtNOTFPUv/rhO1FYACY2T65I3HG4PvFDdIRtcxvf1nazCHMpa+3MU9EtF/SYf0klier8FCIEHrgJfRrBIRyEd823fE+xI6B1KCtQyTQfec+hgQPt/kD05kErF3KJXw3zwCcPBiTn55taX2AgAMY/l9vq1iwYUzmKuGQGwIjmTs+sIa7qEevas7JJfFIjQNFAGfxw750vp0rhgwiWfpmT7R4ZSgV94i20E8fSCaNvXtYwvhiqOzNyE8mkrNvsBgorHAnTr39g1YDAEoKBkndgZvdLFNZkIJWbbHHeHda6SP9lj9K2fid5lmxSV4WWKJsFVz53priJ5NWXqqB5Ed2SKzfssQstHrBFJUJjqaEh1JWb+ogw+Z2vJw6ck+nb19EZew1PEZC9yp5F3cOYslADlFDYFZGMRF+rC1BmMNPvREJzwmkSVI48hH/0pnNwYIJY7WGnnfDWCtP+WspDCJoyMpnX0yOvuOYf2FnWm+RQQnnHTuXKCsodL9+2mxkAIAO/f+fGBkmpic+vo235p0gXwjz8VRZkIx8uedCzCD02T8Rr8OXjLx4r0J4Uomn01gYAfLQ2/zpcNmN1XAoJqVHQgAC9vxCxZWAHaEhc53UpLdAdk5FjLG3OWTPdxyKnETPYDaMLI/PgyS2bB35bX2znh0nfBomicjmYFh7CbokeWlgw8gOyvY9HMeSSufd1brjGiVAPjAsPRkQvTdhO7FIetXdcjOzSMMYeRmK/+7CR903RnJEN3G+2082K6TET8oZg1mMCqfCh/ItnJ0VJYO0aGUtcuXSM82W245Di7fkHtisQVgJx9ClAcWPZoQ7UnovzCk9xIpHV4EwRid7i8GtvBsGC4dTrVja5ER/0gqjv6zWR59yvD8ys2oSwmmKbKwAmAc4BjEBUzizhtjoANB5lnakwcWXRJh1yToCEoZnkptGcbVMzID2HTr0IqZt/Rkj3BlNAffOt/Kz7sOgZ8T4y3YNcfuO1ZZfqiHWfdSeDQYncNvdh8U60wbGGzHEgSGpW8lRMccJnd5W3k3LCzDPNytPjZvDOGxjOhYKqZeaKWCjwFr7MQxB01gYWcAGIiedQT3rdN5qEfv0oj+ZRHZ86JB1tWWf26K1KM8wjA2g2m/jv4LhpngM8vP3CtK09mRmIP2sbgCQO7gBhD0Pctf6xE/0qN/SYR7bjjMvjgFZiSeoFg9NsPhVTamGOntIKCsrCAlB6Go2+dPNhaacnsstADI1pzBBkiykPMEjyc4m5Sc4Qmu1ZiPVTkVZYHftHxX5okPJRJgtOoKo6FRd8lCCwCMTeUDIx9cPpcf7gjN8CMrLj2tGIHC0apT9lsdmZZ7ZUZ9oyIbsZN3/OCE1O0zQSnqr0ESsPACUDAylTe+tI034+l86iEy4jucbh0BAyQeu5rhnhtKdFoTaxOcBoOMvOMZxm0/V2Ajxkd9k8KuvSlLexPsWiYbS6EtBQAtZsLPVjRGAAqGlYVmj48M4bcTokd6JN/bIXv+aVY1NhKivHT7Cdz5AcnVU7hmQyg6friSEe9NiI+m8hlbM5VR2Vs4c28CiccBLhwGIo+W71rs0N9xGicAVRB8p0+4N8GdF5JeFpO8KMadtcOqxvkIE34nIXo6JTsvJL08kmvuslKboEX4fD0eH8tYylNxcX4Y+sv0RmXjh+nEtnTB8nHtTer8oAJw2hiQI89iS3g0I7pXqhonL4zov7SDO8tOLALG5NcMjJwac09K9rUe/atiei9bas+SwEC05jnnsR7RkRSf5eXB7Gjd/G31/3x9v539YbnecEeoiR2/YCEDgWpHPj20kcUuW8IElr/WI9qT4MNJb528KGeedRZEBrtkidY9nT2JiElT78bxd8LC0rGM5aMZxpo8FbfYvjPD8/e2MnmMVOPFwdIzfeKD6ZY1BkfX+xsc8NEwdAYwBYoRqIhJJwDTsVJH/zRG6xHjKY9arJw8ln5us5BiSw4/mJZvJwff29Kx3XsT4gPDAzlMYBo7pZ8UFYBt4oPc6d+0PmBeT6iYmtpTxJYHZkuXf1htppjq+plUQdr26y/c99VMSrJ17NxE4CRj91Qd10C47ugczogPpVAcyBHZklBr5wddApwaAyaDs+5bp/NUKmHD0QaRI5zcaTctFe0hvmeN6NEeZJycxzD+J4MEl/nfskVsRbji2PXNdc56sEuw6iVCbo6M5OJv1V4DNvHsfrTPrr1StNNEed6HyU/vLSIANdxTZwDbwkDnuynR0wm98wO6V8WkF8n2XGmv6KS/MVtcL/huQvzVLu7ckPSSmPSymOy8QNKVp91+y8RGZFEhJzqSytHVxzNM5hciUaqo7ONDMH40u7N84m7NX8ZcUAHYLpEYSfHBjGDfGuluS++lHakqZHdwM4UGYku46ggfXIdv9Ei+JyJ9fpiP9n7LNe62cVJ11+2y0jG2caKSt4boWMrSd/oEq8NSWyaykoY9SaNKYbXzpAgTN8aPfVM7fhkVgAkwxkAkx2lFxz3hXV1cZ1ghNv+tbV4sn84GFhPle89PJ3Sekp0Da6fQ+S2YnqdzhwQWpVd1ZJaRn7qzVdvCwxnh8QzisYMsB+3yp3xub6TWf2d/gl13dC/rzHULUwq7aKffChWACShGlcB4fGgkWsx5WXdOWCOuPCUd/G1sBmf5DXe3TvPWNVI6K3w4JX68T3ZBSHJFh6xYwmwyFTYB+bn1Y2mzbuv6iAOzcM0RH+gTH0oJuo7knGpuNe34W6MCMCHlThkwem7dICotxwdsmiPgS9ez5eueIo/B5+WzJ4oIDICOzCqCvRnxM6v4swNOXBQOjbAN/cryvjvl/beTfleKa3rCFUe8PyE6kp+aExjxNepzwI9SQgVgh5wq58BbQ+fplOTchOR5gZwQu1mnLYWabnZNbyE84XjO3WusXRmTnh/mCSynThYy5CJjJXUaDOaEp/NIH/uCYtQ+9Qs+aR+iWN8Xdfn35zX2Mi8eR740klmDjsV1RAVgVgQQHXac/dlV+ucHdK+ISV4YSd2CpBRmCturQJr/fHlPQvxEyvqFlt6VHdLnh0Nx8VtfwBZTecCE4mUY62VGwRYl1Db4hg8Mpi9ps/F+qcsvr1s8ESgtGwxk2v9riQrALAlk1I0OZAR710h2W/pXSLLQSXXlt9lBfGQx3tN5KiV6KiU5L6B/VUxycSzislkCUmmmb4zJK2N5Of1om+JTfG1Tzxl7Ezr7UkldziMVR47IKsdE5Ek7G+mct/kMRKkEFYAZYzCYwc6BI7x3nezrfSn4UQpJ3fb18t+1sQXviQ9nRF/skj7Yo39lKRMx22RGMN4xJ4yK8wbOeiqBxOEwuEgKsIwf6FEO1d0ohmmQ3ns8o3MwVbeuIlQAZo2RYBRjPCayEpyy7gcL853E1Qxr2klNAh9BtOoJ7+uSPdwjeVFE/8r80JN04zadVo6CH56oY0sCtp20WZ/nR0QrjnhvQnQ0ldiC0DQu134RUAGYAwOH3yNCEBpGs00nv+2HpdAAvAhBGGAST/hQn/ixPsnFEf1L43zvfps9Pk+iGTzPFg2wI9c8RXRdPguIj2Us7UsJjpXy+sPSzEEj9OaKCsAcKe8c+JHvTeGaHnwuLsWJucHjCfETiTj1+Rp9M8r790sH14kOp3l+wsZ/Y4ZPvo1GSuXm3Y/1iJ51OOdx4kiedMS2xufPFxWAipj6fV6swcmzdYN8i87ncQVmMAiP4K2s66NVidiLDqeyoxDKMd1l83CneANBzxN0PS4XGptbght5Bsr8UAFoIOOHnhT2ezHSDn8R4hVH50Aqp+OmXtbokR0ctWV3uEQ5uVHDYCFbfEM7fuWoADSYolIy0u9GoxQthH3P7sf7uNTJyBwNg33Gt/Sm0h5p1Mh0Qjt+tagAtISTOnH5SPQw38orfrf4/RmMzNrh64UKQMsxpW3KQaCOps22BhUAZZA2qwF57UM/cwXQ0b6tqAAoSotRAVCUFqMCoCgtRgVAUVqMCoCitBgVAEVpMSoAitJiVAAUpcWoAChKi1EBUJQWowKgKC1GBUBRWowKgKK0GBUARWkxKgCK0mJUABSlxagAKEqLUQFQlBajAqAoLUYFQFFajAqAorQYFQBFaTEqAIrSYlQAFKXFqAAoSotRAVCUFqMCoCgtRgVAUVqMCoCitBgVAEVpMSoAitJiVAAUpcWoAChKi1EBUJQWowKgKC1GBUBRWowKgKK0GBUARWkxKgCK0mJUABSlxagAKEqLUQFQlBajAqAoLUYFQFFajAqAorQYFQBFaTEqAIrSYlQAFKXFqAAoSotRAVCUFqMCoCgtRgVAUVqMCoCitBgVAEVpMSoAitJiVAAUpd6YWV581gJwxoyvryhNpzPLi89SADzwm8DeWb4ARWkwdwDvA/qzeoJZzwB+BbgG+Hng8Rk/l6I0gT7wu8CbgB8CbkcG05kwDw/gAPBvgWuB9wL3zuE5FWXROAT8Z+B64MeAL8zjSedpAp5AlgSvBW4APjnH51aUuvIE8CHg5cA/Ah6a55OHFbxgj3T+TyJi8H7gFmBXBW1RlKp4EPh14PeAZ6tqRNXbgH+OLAuuBf4dahgqzedzwLuBVwL/jQo7P1QvAAWPAT+HGoZKM0mAjwFvyR9/yAyd/UmoiwAUFIbhdcBPAPdV3SBFOQ2OAP8VGe3/GjL614q6CUDBCvB/gNeghqGyeDwF/BJi7P094KtVN2gzqjABJ2HcMPxp4GY0wlCpJw8h6/rfBQ5X3ZjtUNcZwEb8ObIsuBb4D8C+qhukKDlfQKb4rwD+CwvS+WGxBKDgm8A/QQzDf5r/W1HmTQrcCrwVidr7GNCrulGTsogCULAf+FXEMPxbqGGozIdngf+OGHs3A5+pukGnwyILQMEJ4LcYRhj+adUNUhrJM8BHkZnn+4EHqm7QNKi7CTgJjqFh+DrkQ/oRNMJQOT0eQUb83wYOVt2YadOEGcBG3I0YhteghqGyM/4MScq5DviPNLDzQ3MFoEANQ2USHHAb8A7gDch2XrfqRs2SpgtAQWEYXo8YhvdX3SClVqwA/xN4NXATLfKR2iIABSuIYfhq4Eak2ILSXvYhSWjXAD8JfKnqBs2bJpmAk+CBT+QPTUluH99EIvZ+G5kdtpa2zQA2opyS/GtIQpLSTO5FloDXAv+elnd+UAEo8xjws0gCxy+ghmGT+CSytn8tsgRcrbpBdUEF4GT2Af+GYUpy69aFDWEVmeK/DgkQu40ZFtdcVFQANucEkpLcOmd4wTmALOWuA96DLPGUTWirCTgJxd7wbcho8j7UMKwje4D/gUzxn6m6MYuCzgAm427UMKwbX0G28K5BYj2080+ACsDOGDcMH6u6QS3kDqS45quQIJ4TVTdoEVEBOD3KhuF7gS9X3aCG0wX+L/B65NScPwSyqhu1yKgATIdV5NCTwjDUCMPpchiptHM98OPIUkyZAmoCTpeMoWFY1DC8BViuumELypPAbyDi+lTVjWkiOgOYHUUNwyKdtPVRZxPwABKefQ3wYbTzzwwVgNnzCPABNCV5O3wOKa75SqQIR6Wn5rQBFYD5sY9hDcO/g0YYFvSBP0AKa74FKa6ZVt2otqACMH9OAP8LMQxvAD5VdYMq4iiSkfcKxCeZy3HYyihqAlbHeA3D9wE/CixV3bAZ8zQSsfebwLerbkzb0RlAPShHGDbVMHwY+PtI8NQvo52/FqgA1Itxw3BP1Q2aAncCfwPZw/915MBMpSaoANSTwjC8FjEMFy3CMEWi9N4C/ADweyzgqTltQAWg3qwwNAxvpP6G4XEkLv9VSJx+7Y7DVkZRAVgMMqR+4duQctW/Rb3KVT+DBOxch2Tm/UXVDVK2hwrA4vFnSF2766g+JfkR4B8jxt4HaYZn0SpUABaXR5CU5JcB/5z5dr4vAn8T8Sj+E3Co6jdD2RkqAIvPfuTQyuuAv83sIgwdsgx5K/D9wO8A61W/eOX0UAFoDseB/w28hukahiv5dQsjcqGPw1ZGUQFoHmXD8I1IZdydGIb7gX+N7N/PcmahVIgKQLO5C6mMez3bjzB8DPg5xNj7Z2j2YqNRAWgH30AiDF8O/CIbG4b3IEFH1yLn5TUxHFkZQ5OB2sV+4CNIea13Az+DhOb+GlLGzFXdQGW+GO/1sBRFaSu6BFCUFqMCoCgtRgVAUVqMCoCitBgVAEVpMSoAitJiVAAUpcWoAChKi1EBUJQWowKgKC1GBUBRWsz/B0SPFnvBXwUbAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE5LTEyLTI4VDA5OjMxOjU2KzAwOjAwuGsTuQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOS0wMS0wOFQxOTozOTozNSswMDowMKJkNLUAAAAgdEVYdHNvZnR3YXJlAGh0dHBzOi8vaW1hZ2VtYWdpY2sub3JnvM8dnQAAABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpIZWlnaHQAMjU26cNEGQAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAyNTZ6MhREAAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE1NDY5NzYzNzVRMXZzAAAAEnRFWHRUaHVtYjo6U2l6ZQAyODA0M0JW4xBJAAAAWnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vZGF0YS93d3dyb290L3d3dy5lYXN5aWNvbi5uZXQvY2RuLWltZy5lYXN5aWNvbi5jbi9maWxlcy8xMTgvMTE4MDExNS5wbmc7DAHHAAAAAElFTkSuQmCC" - } - if p.Description.Text != "" { - p.Description.Des = p.Description.Text - } else { - p.Description.Des = p.Description.Translate - } - return p, nil } func makePacket(pl *bytes.Buffer) *bytes.Buffer { From 1ca672e70d8541c3a6a8d5aa3985f3094ca2f7a2 Mon Sep 17 00:00:00 2001 From: minoic Date: Wed, 18 May 2022 21:24:45 +0800 Subject: [PATCH 5/6] fix creating pterodactyl server panic --- internal/pterodactyl/api_manager.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/internal/pterodactyl/api_manager.go b/internal/pterodactyl/api_manager.go index 5136372..6b942e6 100644 --- a/internal/pterodactyl/api_manager.go +++ b/internal/pterodactyl/api_manager.go @@ -2,9 +2,9 @@ package pterodactyl import ( "bytes" + "encoding/json" "errors" "fmt" - jsoniter "github.com/json-iterator/go" "io/ioutil" "net/http" "strconv" @@ -25,8 +25,6 @@ func NewClient(url string, token string) *Client { return &Client{url: url, token: token} } -var json = jsoniter.ConfigCompatibleWithStandardLibrary - func (this *Client) HostName() string { return this.url } From 4e239ba5f837f074573d95e3616d8ef97b0f0bde Mon Sep 17 00:00:00 2001 From: minoic Date: Thu, 19 May 2022 11:16:05 +0800 Subject: [PATCH 6/6] feature toggle album feature display egg description --- Dockerfile | 16 ++++ cmd/main.go | 2 +- conf/app.conf | 4 +- conf/settings.conf | 18 ++-- .../docker-compose.yml => docker-compose.yml | 0 docker/conf/app.conf | 20 ---- docker/conf/settings.conf | 94 ------------------- internal/controllers/menu_controller.go | 1 + views/UserSettings.html | 2 + views/tpls/navbar.html | 2 + views/tpls/serverinfoModal.html | 9 +- 11 files changed, 39 insertions(+), 129 deletions(-) create mode 100644 Dockerfile rename docker/docker-compose.yml => docker-compose.yml (100%) delete mode 100644 docker/conf/app.conf delete mode 100644 docker/conf/settings.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..158e1cc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM alpine + +VOLUME ["/log","/conf"] +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories \ + && apk add tzdata \ + && apk add ca-certificates \ + && update-ca-certificates +ENV TZ=Asia/Shanghai +COPY conf . +COPY static . +COPY log . +COPY views . +COPY build/peo_linux_amd64_linux . +EXPOSE 8080 + +ENTRYPOINT ["/peo_linux_amd64_linux"] \ No newline at end of file diff --git a/cmd/main.go b/cmd/main.go index 5812afd..67e4abb 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -6,7 +6,7 @@ import ( "github.com/minoic/peo/internal/cron" ) -const Version = "v0.1.8" +const Version = "v0.1.9" func main() { api.InitRouter() diff --git a/conf/app.conf b/conf/app.conf index 73eabd2..55cffc8 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -4,13 +4,11 @@ #postgresql "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full" #couchbase "http://bucketname:bucketpass@myserver:8091" sessionprovider = "redis" -sessionproviderconfig = "127.0.0.1:6379" +sessionproviderconfig = "redis:6379" # NOT RECOMMENDED TO EDIT appname = peo -httpaddr = "0.0.0.0" -httpport = 8080 runmode = "dev" enablexsrf = true xsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o diff --git a/conf/settings.conf b/conf/settings.conf index ae52fde..b419159 100644 --- a/conf/settings.conf +++ b/conf/settings.conf @@ -32,14 +32,14 @@ Serverpassword = "" # Choose database to use: MYSQL Database = "MYSQL" # salt -DatabaseSalt = "salt_salt" +DatabaseSalt = "PEOSALT" UseGormCache = true -SqlTablePrefix = "pe_" +SqlTablePrefix = "peo_" #Fill the account info if database = "MYSQL" -MYSQLHost = "localhost:3306" +MYSQLHost = "mysql:3306" MYSQLUsername = "root" -MYSQLUserPassword = "" -MYSQLDatabaseName = "" +MYSQLUserPassword = "PEOMYSQLPASSWORD" +MYSQLDatabaseName = "peo" ############################ #SMTP settings @@ -62,7 +62,7 @@ DeleteEmailConfirm = true ############################ #change your cache settings #CacheMode = "memory"/"file"/"redis"/"memcache" -CacheMode = "memory" +CacheMode = "redis" #CacheMode = "memory" CacheMemoryGCInterval = 60 #CacheMode = "file" @@ -72,7 +72,7 @@ CacheFileDirectoryLevel = "2" CacheFileEmbedExpiry = "120" #CacheMode = "redis" CacheRedisKey = "collectionName" -CacheRedisCONN = ":6379" +CacheRedisCONN = "redis:6379" CacheRedisdbNum = "0" CacheRedisPassword = "" #CacheMode = "memcache" @@ -91,4 +91,6 @@ AutoTaskInterval = 10 AliPayEnabled = false AliPayPublicKey = "" AliPayPrivateKey = "" -AliPayAppID = "" \ No newline at end of file +AliPayAppID = "" +# toggle album +AlbumEnabled = false \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker-compose.yml similarity index 100% rename from docker/docker-compose.yml rename to docker-compose.yml diff --git a/docker/conf/app.conf b/docker/conf/app.conf deleted file mode 100644 index 55cffc8..0000000 --- a/docker/conf/app.conf +++ /dev/null @@ -1,20 +0,0 @@ -#sessionprovider Examples -#redis "127.0.0.1:6379" -#memcache "127.0.0.1:7080" -#postgresql "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full" -#couchbase "http://bucketname:bucketpass@myserver:8091" -sessionprovider = "redis" -sessionproviderconfig = "redis:6379" - - -# NOT RECOMMENDED TO EDIT -appname = peo -runmode = "dev" -enablexsrf = true -xsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o -xsrfexpire = 3600 -sessionon = true -sessionname = "tOZENDENoNOS" -sessiongcmaxlifetime = 315360000 -sessioncookielifetime = 315360000 -copyrequestbody = true diff --git a/docker/conf/settings.conf b/docker/conf/settings.conf deleted file mode 100644 index fb03570..0000000 --- a/docker/conf/settings.conf +++ /dev/null @@ -1,94 +0,0 @@ -############################ -#Please rename this file to settings.config after edited it -############################ - -############################ -#Basic Settings -############################ -# hostname to visit your web site -WebHostName = "example.com" - # use SSL or not -WebSecure = false -# website name to show -WebApplicationName = "MinoIC - PE" - # website description to show -WebDescription = "Pterodactyl 服务器出售系统" -# website Admin address -WebAdminAddress = "ADMIN " - -############################ -#Pterodactyl Settings -############################ -# your pterodactyl panel hostname -Serverhostname = "pterodactyl.example.com" -# wether your pterodactyl use SSL or not -Serversecure = false -# pterodactyl admin token -Serverpassword = "" - -############################ -#Database Settings -############################ -# Choose database to use: MYSQL -Database = "MYSQL" -# salt -DatabaseSalt = "PEOSALT" -UseGormCache = true -SqlTablePrefix = "peo_" -#Fill the account info if database = "MYSQL" -MYSQLHost = "mysql:3306" -MYSQLUsername = "root" -MYSQLUserPassword = "PEOMYSQLPASSWORD" -MYSQLDatabaseName = "peo" - -############################ -#SMTP settings -############################ -# if set to false, we wont send any email to user -SMTPEnabled = false -SMTPHost = "smtpdm-ap-southeast-1.aliyun.com" -SMTPPort = 80 -SMTPSendFrom = "ADMIN " -SMTPUsername = "admin@example.com" -SMTPUserPassword = "yourpassword" -SMTPLogo = "" - #TLS/SSL -SMTPEncryption = "TLS" -#if DeleteEmailConfirm be set to true all admins will receive an email before Server being deleted -DeleteEmailConfirm = true - -############################ -#Cache Settings -############################ -#change your cache settings -#CacheMode = "memory"/"file"/"redis"/"memcache" -CacheMode = "redis" -#CacheMode = "memory" -CacheMemoryGCInterval = 60 -#CacheMode = "file" -CacheFilePath = "./cache" -CacheFileSuffix = ".cache" -CacheFileDirectoryLevel = "2" -CacheFileEmbedExpiry = "120" -#CacheMode = "redis" -CacheRedisKey = "collectionName" -CacheRedisCONN = "redis:6379" -CacheRedisdbNum = "0" -CacheRedisPassword = "" -#CacheMode = "memcache" -CacheMemcacheCONN = "127.0.0.1:11211" - -############################ -#Misc Settings -############################ -# check if you want user to recharge balance -RechargeMode = false -# if set to false, we wont accept any discount -TotalDiscount = false -# Task run interval in seconds, 10 is recommended -AutoTaskInterval = 10 -# fill if you want to enable alipay recharge -AliPayEnabled = false -AliPayPublicKey = "" -AliPayPrivateKey = "" -AliPayAppID = "" \ No newline at end of file diff --git a/internal/controllers/menu_controller.go b/internal/controllers/menu_controller.go index ed1e115..664e1ac 100644 --- a/internal/controllers/menu_controller.go +++ b/internal/controllers/menu_controller.go @@ -17,6 +17,7 @@ func handleNavbar(this *beego.Controller) { this.Data["webApplicationName"] = configure.WebApplicationName this.Data["webApplicationAuthor"] = "CytusD " this.Data["webDescription"] = conf.String("webDescription") + this.Data["AlbumEnabled"] = conf.String("AlbumEnabled") sess := this.StartSession() if !session.SessionIslogged(sess) { this.Data["notLoggedIn"] = true diff --git a/views/UserSettings.html b/views/UserSettings.html index 9c16ea7..98424f1 100644 --- a/views/UserSettings.html +++ b/views/UserSettings.html @@ -175,6 +175,7 @@
修改绑定邮箱
+ {{if .AlbumEnabled}}
@@ -229,6 +230,7 @@
上传图片到相册
+ {{end}} diff --git a/views/tpls/navbar.html b/views/tpls/navbar.html index 0d50504..3905724 100644 --- a/views/tpls/navbar.html +++ b/views/tpls/navbar.html @@ -13,9 +13,11 @@
  • 商品列表
  • + {{if .AlbumEnabled}}
  • 相册
  • + {{end}} {{if not .notLoggedIn}}
  • 消息 diff --git a/views/tpls/serverinfoModal.html b/views/tpls/serverinfoModal.html index 2a73974..e1ce55c 100644 --- a/views/tpls/serverinfoModal.html +++ b/views/tpls/serverinfoModal.html @@ -70,7 +70,7 @@

    使用余额续费服务器

    更换预设服务器包

    您可以选择我们预设的一些服务器整合包来作为快捷启动选项
    - 一旦选择新的或与原来相同的整合包并点击“确认安装”按钮,我们将清空服务器数据并进行安装操作
    + 一旦选择新的或与原来相同的整合包并点击“确认安装”按钮,我们!!!将清空服务器数据!!!并进行安装操作
    由于这一过程不可逆,请您确认没有贵重数据或已备份