From 64462d23135791c0393178e118f47a3ae6126f88 Mon Sep 17 00:00:00 2001 From: Evan Date: Thu, 15 Dec 2022 15:20:41 +0900 Subject: [PATCH] v2.7 :rocket: --- .dockerignore | 2 ++ Dockerfile | 2 -- README.md | 26 +++++++++++++++++++++++++- Taskfile.yaml | 12 +++++++----- bootstrap/telegram.go | 22 ++++++++++++++++++++++ 5 files changed, 56 insertions(+), 8 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..cfa172d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +token.json +local/config.yaml diff --git a/Dockerfile b/Dockerfile index c8ff795..f191fbf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,6 @@ FROM golang:1.19-alpine ENV apiKey="" -ENV telegram="" -ENV wechat="" RUN export GOPRIVATE=github.com/houko/wechatgpt diff --git a/README.md b/README.md index 1f19bc6..134edaa 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,9 @@ go run main.go ``` ## `Docker` 方式运行`wechatgpt` +`建议单独跑多个docker以免互相影响` 同时启动微信和telegram,微信登陆的地址请查看运行日志 - ``` # apple silicon docker run -d \ @@ -104,6 +104,30 @@ xiaomoinfo/wechatgpt-amd64:latest ``` + +如果运行`telegram`智能机器人时只希望指定的人使用,白名单以外的人发消息机器人不会回复 + +``` +# apple silicon +docker run -d \ +--name wechatgpt \ +-e apiKey="你的chatgpt apiKey" \ +-e telegram="你的telegram token" \ +-e tg_whitelist="username1,username2" \ +xiaomoinfo/wechatgpt:latest + +# linux amd64 +docker run -d \ +--name wechatgpt \ +-e apiKey="你的chatgpt apiKey" \ +-e telegram="你的telegram token" \ +-e tg_whitelist="username1,username2" \ +xiaomoinfo/wechatgpt-amd64:latest + +``` + + + drawing ### 微信 diff --git a/Taskfile.yaml b/Taskfile.yaml index d224dd3..53a1df4 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -12,14 +12,16 @@ tasks: release: cmds: + - docker rmi xiaomoinfo/wechatgpt-amd64:latest - docker build --platform linux/amd64 -t xiaomoinfo/wechatgpt-amd64:latest . - docker push xiaomoinfo/wechatgpt-amd64:latest + - docker rmi xiaomoinfo/wechatgpt:latest - docker build -t xiaomoinfo/wechatgpt:latest . - docker push xiaomoinfo/wechatgpt:latest - 2.4: + version: cmds: - - docker build --platform linux/amd64 -t xiaomoinfo/wechatgpt-amd64:2.4 . - - docker push xiaomoinfo/wechatgpt-amd64:2.4 - - docker build -t xiaomoinfo/wechatgpt:2.4 . - - docker push xiaomoinfo/wechatgpt:2.4 \ No newline at end of file + - docker build --platform linux/amd64 -t xiaomoinfo/wechatgpt-amd64:2.6 . + - docker push xiaomoinfo/wechatgpt-amd64:2.6 + - docker build -t xiaomoinfo/wechatgpt:2.6 . + - docker push xiaomoinfo/wechatgpt:2.6 \ No newline at end of file diff --git a/bootstrap/telegram.go b/bootstrap/telegram.go index a9d95fe..b91c0c9 100644 --- a/bootstrap/telegram.go +++ b/bootstrap/telegram.go @@ -7,6 +7,7 @@ import ( "github.com/wechatgpt/wechatbot/config" "github.com/wechatgpt/wechatbot/handler/telegram" "os" + "strings" "time" ) @@ -47,6 +48,27 @@ func StartTelegramBot() { } text := update.Message.Text chatID := update.Message.Chat.ID + chatUserName := update.Message.Chat.UserName + + tgUserNameStr := os.Getenv("tg_whitelist") + + tgUserNames := strings.Split(tgUserNameStr, ",") + + if len(tgUserNames) > 0 { + found := false + for _, name := range tgUserNames { + if name == chatUserName { + found = true + break + } + } + + if !found { + log.Error("用户设置了私人私用,白名单以外的人不生效: ", chatUserName) + return + } + } + responseMsg := telegram.Handle(text) if responseMsg == nil { continue