diff --git a/README.md b/README.md index 41da1b43..75afc643 100644 --- a/README.md +++ b/README.md @@ -44,13 +44,15 @@ Bingo,一个让你呼吸顺畅 New Bing。 - [x] 适配深色模式 - [x] 支持历史记录 - [x] 支持内置提示词 + - [x] 支持 Workers 部署 - [ ] 国际化翻译 - [ ] 支持 OpenAI API -## 在线部署(Replit及CF均受到不同程度的封锁,故需要配置用户信息才能使用) -### 1. 部署到 Replit +## 在线部署 +### 1. 部署到 Replit(推荐) [点击部署Replit](https://replit.com/@weaigc/bingo?v=1) +并修改 `BING_COOKIE` 为自己的 COOKIE ### 2. 部署到 CloudFlare (需要有自己的域名才可以) @@ -60,10 +62,21 @@ Bingo,一个让你呼吸顺畅 New Bing。 - 通过左侧菜单进入「Workers」,并点击「Create a Worker」。 -- 创建 Worker 服务,复制 [worker.js](./cloudflare/worker.js) 全部代码,修改第一行 `SITE_HOST` 为自己的域名,粘贴至创建的服务中,根据注释进行改动,保存并部署。 +- 创建 Worker 服务,复制 [worker.js](./cloudflare/worker.js) 全部代码,修改第一行 `SITE_HOST` 为自己的域名,修改 `BING_COOKIE` 为自己的COOKIE,粘贴至创建的服务中,根据注释进行改动,保存并部署。 - 触发器 中自定义访问域名。 +### 如何获取 BING_COOKIE + +> 配置了 BING_COOKIE 意味着你将自己的账号共享给所有使用此服务的人,如果不需要免登录画图的功能,不建议设置此变量 + +打开 https://www.bing.com 并登录,然后访问 https://www.bing.com/turing/captcha/challenge ,通过人机校验(如果显示**无效域**,则跳过校验不管),然后 + +![BING_COOKIE](./docs/images/curl.png) + +> 复制出来的内容应该如下所示。确认格式无误后,打开 https://bing.github1s.tk/#dialog=%22settings%22 ,粘贴进去,点击“转成 BING_COOKIE 并复制”,然后从剪切板粘贴即可得到。(你也可以先在网页上进行验证) + + ### 部署其它平台
@@ -124,7 +137,7 @@ docker run --rm -it -e BING_HEADER=xxxx -p 7860:7860 weaigc/bingo ![BING HEADER](./docs/images/curl.png) -> 复制出来的内容应该如下所示。确认格式无误后,打开 https://hf4all-bingo.hf.space/#dialog=%22settings%22 ,粘贴进去,点击“转成 BING_HEADER 并复制”,然后从剪切板粘贴即可得到。(你也可以先在网页上进行验证) +> 复制出来的内容应该如下所示。确认格式无误后,打开 https://bing.github1s.tk/#dialog=%22settings%22 ,粘贴进去,点击“转成 BING_HEADER 并复制”,然后从剪切板粘贴即可得到。(你也可以先在网页上进行验证) 以下是格式参考,需要注意的是,网页端保存的格式是以`curl`开头, 而服务端配置的 `BING_HEADER` 是 `base64` 格式,两者不能互通。
diff --git a/cloudflare/worker.js b/cloudflare/worker.js index d52faa2b..519992d6 100644 --- a/cloudflare/worker.js +++ b/cloudflare/worker.js @@ -1,5 +1,6 @@ -const SITE_HOST = '这城改为你的域名' // 为空则自动推断 +const SITE_HOST = '' // 为空则自动推断 const TARGET_HOST='hf4all-bingo.hf.space' // 后台服务,默认不需要修改 +const BING_COOKIE = '' // 换成你自己的 BING_COOKIE,操作参见 README.md export default { async handleOptions(request) { @@ -63,14 +64,18 @@ export default { return this.handleWebSocket(headers) } if (uri.pathname.startsWith('/turing/')) { + if (BING_COOKIE) { + headers.set('cookie', BING_COOKIE) + } uri.host = 'www.bing.com' } else { if (uri.protocol === 'http:' && !/^[0-9.:]+$/.test(TARGET_HOST)) { uri.protocol = 'https:'; } headers.set('x-endpoint', SITE_HOST || uri.host) - headers.set('x-ws-endpoint', SITE_HOST || uri.host) + // headers.set('x-ws-endpoint', SITE_HOST || uri.host) uri.host = TARGET_HOST + uri.port = TARGET_HOST.split(':')[1] || '' } headers.set('Host', uri.host) return fetch(uri.toString(), { diff --git a/src/components/settings.tsx b/src/components/settings.tsx index d0e7d6bd..48d36692 100644 --- a/src/components/settings.tsx +++ b/src/components/settings.tsx @@ -13,7 +13,7 @@ import { } from '@/components/ui/dialog' import { Button } from './ui/button' import { Input } from './ui/input' -import { ChunkKeys, parseCookies, extraCurlFromCookie, encodeHeadersToCookie, getCookie, setCookie } from '@/lib/utils' +import { ChunkKeys, parseCookies, extraCurlFromCookie, parseHeadersFromCurl, encodeHeadersToCookie, setCookie } from '@/lib/utils' import { ExternalLink } from './external-link' import { useCopyToClipboard } from '@/lib/hooks/use-copy-to-clipboard' @@ -42,14 +42,18 @@ export function Settings() { return } if (RegExp.$1 === 'cn') { - toast.error('你配置的国内域名 cn.bing.com 仅支持画图') + toast.error('你配置的国内域名 cn.bing.com 需要启用此选项') setImageOnly(true) + setHistory(false) return } setImageOnly(checked) } else { setImageOnly(checked) } + if (checked) { + setHistory(false) + } }, [curlValue]) if (loc === 'settings') { @@ -81,9 +85,6 @@ export function Settings() { placeholder="在此填写用户信息,格式: curl 'https://www.bing.com/turing/captcha/challenge' ..." onChange={e => { setCurlValue(e.target.value) - if (!/^\s*curl ['"]https:\/\/www\.bing\.com\/turing\/captcha\/challenge['"]/.test(e.target.value)) { - setImageOnly(true) - } }} />
@@ -102,6 +103,7 @@ export function Settings() {
setHistory(checked)} > @@ -116,6 +118,10 @@ export function Settings() { 转成 BING_HEADER 并复制 + +