mirror of
https://github.com/Harry-zklcdc/go-proxy-bingai.git
synced 2024-05-03 14:25:13 +08:00
feat: ✨ 新增 socks 环境变量配置 \n 移除单次对话次数限制
This commit is contained in:
parent
319c4750bc
commit
8ba4b1e332
7
.vscode/launch.json
vendored
7
.vscode/launch.json
vendored
@ -11,8 +11,11 @@
|
||||
"mode": "auto",
|
||||
"program": "${workspaceFolder}",
|
||||
"env": {
|
||||
"Go-Proxy-BingAI-Debug": "true",
|
||||
"PORT": "8888"
|
||||
"PORT": "8888",
|
||||
"Go_Proxy_BingAI_Debug": "true",
|
||||
"Go_Proxy_BingAI_SOCKS_URL": "192.168.0.88:1070",
|
||||
// "Go_Proxy_BingAI_SOCKS_USER": "xxx",
|
||||
// "Go_Proxy_BingAI_SOCKS_PWD": "xxx",
|
||||
}
|
||||
}
|
||||
]
|
||||
|
47
README.md
47
README.md
@ -6,6 +6,8 @@
|
||||
|
||||
⭐ 无需登录即可畅聊
|
||||
|
||||
⭐ 无单次对话次数限制
|
||||
|
||||
⭐ 需要画图等高级功能时,可登录微软账号设置用户 Cookie 进行体验
|
||||
|
||||
⭐ 遇到一切问题,先点左下角 ![新主题](./docs/img/bing-clear.png) 试试,不行使用刷新大法(Shift + F5 或 Ctrl + Shift + R 或 右上角设置中的重置),最终大招就 清理浏览器缓存 及 Cookie ,比如(24 小时限制、未登录提示等等)
|
||||
@ -15,6 +17,7 @@
|
||||
- [侧边栏](#侧边栏)
|
||||
- [演示站点](#演示站点)
|
||||
- [获取 Cookie](#获取Cookie)
|
||||
- [环境变量](#环境变量)
|
||||
- [部署](#部署)
|
||||
- [Docker](#Docker)
|
||||
- [Release](#Release)
|
||||
@ -87,21 +90,59 @@
|
||||
|
||||
![获取Cookie](./docs/img/bing-cookie.png)
|
||||
|
||||
## 环境变量
|
||||
|
||||
```bash
|
||||
# 运行端口 默认 8080 可选
|
||||
PORT=8080
|
||||
# Socks 环境变量 示例 可选
|
||||
Go_Proxy_BingAI_SOCKS_URL=192.168.0.88:1070
|
||||
# Socks 账号、密码 可选
|
||||
Go_Proxy_BingAI_SOCKS_USER=xxx
|
||||
Go_Proxy_BingAI_SOCKS_PWD=xxx
|
||||
```
|
||||
|
||||
## 部署
|
||||
|
||||
> 需 https 域名 (自行配置 nginx 等)
|
||||
|
||||
> 支持 Linux (amd64 / arm64)、Windows (amd64 / arm64)
|
||||
|
||||
> 国内机器部署可配置 socks 环境变量
|
||||
|
||||
### Docker
|
||||
|
||||
> 参考 [Dockerfile](./docker/Dockerfile) 、[docker-compose.yml](./docker/docker-compose.yml)
|
||||
|
||||
示例
|
||||
- docker 示例
|
||||
|
||||
```bash
|
||||
# 运行容器 监听8080 端口
|
||||
docker run -d -p 8080:8080 --name go-proxy-bingai --restart=unless-stopped adams549659584/go-proxy-bingai
|
||||
|
||||
# 配置 socks 环境变量
|
||||
docker run -e Go_Proxy_BingAI_SOCKS_URL=192.168.0.88:1070 -e Go_Proxy_BingAI_SOCKS_USER=xxx -e Go_Proxy_BingAI_SOCKS_PWD=xxx -d -p 8080:8080 --name go-proxy-bingai --restart=unless-stopped adams549659584/go-proxy-bingai
|
||||
```
|
||||
|
||||
- docker compose 示例
|
||||
|
||||
```bash
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
go-proxy-bingai:
|
||||
# 镜像名称
|
||||
image: adams549659584/go-proxy-bingai
|
||||
# 容器名称
|
||||
container_name: go-proxy-bingai
|
||||
# 自启动
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8080:8080
|
||||
# environment:
|
||||
# - Go_Proxy_BingAI_SOCKS_URL=192.168.0.88:1070
|
||||
# - Go_Proxy_BingAI_SOCKS_USER=xxx
|
||||
# - Go_Proxy_BingAI_SOCKS_PWD=xxx
|
||||
```
|
||||
|
||||
### Release
|
||||
@ -116,6 +157,7 @@ docker run -d -p 8080:8080 --name go-proxy-bingai --restart=unless-stopped adams
|
||||
PORT=8080
|
||||
RAILWAY_DOCKERFILE_PATH=docker/Dockerfile
|
||||
```
|
||||
|
||||
一键部署,点这里 => [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/uIckWS?referralCode=BBs747)
|
||||
|
||||
![Railway 模板部署](./docs/img/railway-1.png)
|
||||
@ -142,10 +184,9 @@ RAILWAY_DOCKERFILE_PATH=docker/Dockerfile
|
||||
|
||||
![Render 域名](./docs/img/render-2.png)
|
||||
|
||||
|
||||
## TODO
|
||||
|
||||
- [ ] 撰写
|
||||
- [x] 撰写
|
||||
- [ ] Vue3 重构
|
||||
- [ ] 提示词
|
||||
- [ ] 保存历史消息
|
||||
|
@ -9,10 +9,12 @@ import (
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
"net/url"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/andybalholm/brotli"
|
||||
"golang.org/x/net/proxy"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -164,7 +166,35 @@ func NewSingleHostReverseProxy(target *url.URL) *httputil.ReverseProxy {
|
||||
// }
|
||||
|
||||
// 代理请求 请求回来的内容 报错自动调用
|
||||
return &httputil.ReverseProxy{Director: director, ModifyResponse: modifyFunc, ErrorHandler: errorHandler}
|
||||
reverseProxy := &httputil.ReverseProxy{
|
||||
Director: director,
|
||||
ModifyResponse: modifyFunc,
|
||||
ErrorHandler: errorHandler,
|
||||
}
|
||||
|
||||
// socks
|
||||
socksUrl := os.Getenv("Go_Proxy_BingAI_SOCKS_URL")
|
||||
if socksUrl != "" {
|
||||
socksUser := os.Getenv("Go_Proxy_BingAI_SOCKS_USER")
|
||||
socksPwd := os.Getenv("Go_Proxy_BingAI_SOCKS_PWD")
|
||||
var socksAuth *proxy.Auth
|
||||
if socksUser != "" && socksPwd != "" {
|
||||
socksAuth = &proxy.Auth{
|
||||
User: socksUser,
|
||||
Password: socksPwd,
|
||||
}
|
||||
}
|
||||
s5Proxy, err := proxy.SOCKS5("tcp", socksUrl, socksAuth, proxy.Direct)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
tr := &http.Transport{
|
||||
Dial: s5Proxy.Dial,
|
||||
}
|
||||
reverseProxy.Transport = tr
|
||||
}
|
||||
|
||||
return reverseProxy
|
||||
}
|
||||
|
||||
func replaceResBody(originalBody string, originalScheme string, originalHost string) string {
|
||||
|
@ -10,6 +10,10 @@ services:
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8080:8080
|
||||
# environment:
|
||||
# - Go_Proxy_BingAI_SOCKS_URL=192.168.0.88:1070
|
||||
# - Go_Proxy_BingAI_SOCKS_USER=xxx
|
||||
# - Go_Proxy_BingAI_SOCKS_PWD=xxx
|
||||
|
||||
# go-proxy-bingai:
|
||||
# # 镜像名称
|
||||
@ -26,6 +30,10 @@ services:
|
||||
# - MyNetwork
|
||||
# ports:
|
||||
# - 8888:8080
|
||||
# environment:
|
||||
# - Go_Proxy_BingAI_SOCKS_URL=192.168.0.88:1070
|
||||
# # - Go_Proxy_BingAI_SOCKS_USER=xxx
|
||||
# # - Go_Proxy_BingAI_SOCKS_PWD=xxx
|
||||
|
||||
# networks:
|
||||
# MyNetwork:
|
||||
|
5
go.mod
5
go.mod
@ -2,4 +2,7 @@ module adams549659584/go-proxy-bingai
|
||||
|
||||
go 1.20
|
||||
|
||||
require github.com/andybalholm/brotli v1.0.5
|
||||
require (
|
||||
github.com/andybalholm/brotli v1.0.5
|
||||
golang.org/x/net v0.10.0
|
||||
)
|
||||
|
2
go.sum
2
go.sum
@ -1,2 +1,4 @@
|
||||
github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
|
||||
github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
|
||||
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
// 引入workbox 框架
|
||||
importScripts('./js/sw/workbox-sw.js');
|
||||
|
||||
const SW_VERSION = 'v1.4.2';
|
||||
const SW_VERSION = 'v1.5.0';
|
||||
const CACHE_PREFIX = 'BingAI';
|
||||
|
||||
workbox.setConfig({ debug: false, logLevel: 'warn' });
|
||||
@ -61,7 +61,7 @@ workbox.precaching.precacheAndRoute([
|
||||
// html
|
||||
{
|
||||
url: '/web/chat.html',
|
||||
revision: '2023.05.08',
|
||||
revision: '2023.05.09',
|
||||
},
|
||||
{
|
||||
url: '/web/compose.html',
|
||||
|
@ -16,7 +16,7 @@ var IS_DEBUG_MODE bool
|
||||
var WEB_PATH_MAP = make(map[string]bool)
|
||||
|
||||
func init() {
|
||||
IS_DEBUG_MODE = os.Getenv("Go-Proxy-BingAI-Debug") != ""
|
||||
IS_DEBUG_MODE = os.Getenv("Go_Proxy_BingAI_Debug") != ""
|
||||
|
||||
var err error
|
||||
if IS_DEBUG_MODE {
|
||||
|
Loading…
Reference in New Issue
Block a user