Skip to content

Commit

Permalink
docs: 📝 完善文档,修复撰写logo
Browse files Browse the repository at this point in the history
  • Loading branch information
adams549659584 committed May 15, 2023
1 parent a9c1144 commit 9bac8bc
Show file tree
Hide file tree
Showing 17 changed files with 24 additions and 14 deletions.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# go-proxy-bing

一个用 GO 写的微软 Bing AI 的魔法服务。 使用微软原始页面简单定制,基本兼容微软 Bing AI 所有功能,无需登录即可畅聊。
基于微软 New Bing 简单定制,拥有一致的 UI 体验,支持 ChatGPT 提示词,国内可用,基本兼容微软 Bing AI 所有功能,无需登录即可畅聊。

⭐ 国内可用 (部署服务器需要直连 www.bing.com 不重定向 CN 才行
⭐ 国内可用 (部署服务器需要直连 www.bing.com 不重定向 CN ,可配置 socks 连接

无需登录即可畅聊
支持现有开源提示词库

⭐ 需要画图等高级功能时,可登录微软账号设置用户 Cookie 进行体验

⭐ 遇到一切问题,先点左下角 ![新主题](./docs/img/bing-clear.png) 试试,不行使用刷新大法(Shift + F5 或 Ctrl + Shift + R 或 右上角设置中的重置),最终大招就 清理浏览器缓存 及 Cookie ,比如(24 小时限制、未登录提示等等)
⭐ 遇到一切问题,先点左下角 ![新主题](./docs/img/bing-clear.png) 试试,不行使用刷新大法(Shift + F5 或 Ctrl + Shift + R 或 右上角设置中的一键重置),最终大招就 清理浏览器缓存 及 Cookie ,比如(24 小时限制、未登录提示等等)

- [go-proxy-bing](#go-proxy-bing)
- [网页展示](#网页展示)
Expand All @@ -32,7 +32,9 @@

- 电脑端登录

![电脑端登录](./docs/img/bing-login.png)
![电脑端登录](./docs/img/bing-login-1.png)
![提示词1](./docs/img/bing-prompt-1.png)
![提示词2](./docs/img/bing-prompt-2.png)

- 电脑端画图

Expand Down Expand Up @@ -187,6 +189,6 @@ RAILWAY_DOCKERFILE_PATH=docker/Dockerfile
- [x] 撰写
- [x] Vue3 重构
- [x] 提示词
- [x] 历史聊条
- [x] 历史聊天
- [ ] 导出消息到本地(Markdown、图片、PDF)
- [ ] 简单访问权限控制
Binary file added docs/img/bing-login-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/img/bing-login.png
Binary file not shown.
Binary file modified docs/img/bing-m-nologin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/bing-prompt-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/bing-prompt-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/img/sidebar-add.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/img/sidebar-chat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "go-proxy-bingai",
"version": "1.6.0",
"version": "1.6.1",
"private": true,
"scripts": {
"dev": "vite",
Expand Down
5 changes: 4 additions & 1 deletion frontend/public/compose.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@
<meta name="viewport"
content="width=device-width, minimum-scale=1.0, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
<meta name="referrer" content="origin-when-cross-origin" />
<link rel="icon" type="image/svg+xml" href="/web/img/compose.svg" />
<link rel="icon" type="image/svg+xml" href="./img/compose.svg" />
<meta content="yes" name="apple-mobile-web-app-capable" />
<link rel="apple-touch-icon" href="/favicon.ico">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script type="text/javascript">//<![CDATA[
try{const logPathReg=new RegExp('/fd/ls/|/web/xls.aspx');const _oldSendBeacon=navigator.sendBeacon;navigator.sendBeacon=function(url,data){if(logPathReg.test(url)){return true}return _oldSendBeacon.call(this,url,data)};const xhrOpen=window.XMLHttpRequest.prototype.open;window.XMLHttpRequest.prototype.open=function(method,url){if(logPathReg.test(url)){this.isLog=true}return xhrOpen.call(this,method,url)};const xhrSend=window.XMLHttpRequest.prototype.send;window.XMLHttpRequest.prototype.send=function(body){if(this.isLog){return this.abort()}return xhrSend.call(this,body)};}catch(error){console.error(error)};
_G = { Region: "US", Lang: "zh-CN", ST: (typeof si_ST !== 'undefined' ? si_ST : new Date), Mkt: "en-US", RevIpCC: "us", RTL: false, Ver: "19", IG: "0", EventID: "6457cdf9bf314d6186c6b7f80c87f395", V: "underside", P: "UNSP", DA: "PUSE01", SUIH: "pvMUA9xkTfwoGd2dQVAmkA", adc: "b_ad", EF: { cookss: 1, bmcov: 1, crossdomainfix: 1, bmasynctrigger: 1, bmasynctrigger3: 1, newtabsloppyclick: 1, chevroncheckmousemove: 1 }, gpUrl: "\/fd\/ls\/GLinkPing.aspx?" }; _G.lsUrl = "/fd/ls/l?IG=" + _G.IG; curUrl = "\/edgesvc\/compose"; _G.XLS = "\/web\/xls.aspx"; function si_T (a) { if (document.images) { _G.GPImg = new Image; _G.GPImg.src = _G.gpUrl + 'IG=' + _G.IG + '&' + a; } return true; } _G.CTT = "3000";; var _w = window, _d = document, sb_de = _d.documentElement, sb_ie = !1, sb_i6 = !1, _ge = function (n) { return _d.getElementById(n) }, _qs = function (n, t) { return t = typeof t == "undefined" ? _d : t, t.querySelector ? t.querySelector(n) : null }, sb_st = function (n, t) { return setTimeout(n, t) }, sb_rst = sb_st, sb_ct = function (n) { clearTimeout(n) }, sb_gt = function () { return (new Date).getTime() }, sj_gx = function () { return new XMLHttpRequest }; _w.sj_ev = function (n) { return n }; _w.sj_ce = function (n, t, i) { var r = _d.createElement(n); return t && (r.id = t), i && (r.className = i), r }; _w.sj_cook = new function () { function u () { var n = location.protocol === "https:"; return n ? ";secure" : "" } function f () { return _G !== undefined && _G.EF !== undefined && _G.EF.cookss !== undefined && _G.EF.cookss === 1 } var n = this, t = !1, i = new Date(0).toGMTString(), r; try { r = _d.cookie } catch (e) { t = !0 } n.get = function (n, i) { var r, u; return t ? null : (r = _d.cookie.match(new RegExp("\\b" + n + "=[^;]+")), i && r) ? (u = r[0].match(new RegExp("\\b" + i + "=([^&]*)")), u ? u[1] : null) : r ? r[0] : null }; n.set = function (i, r, e, o, s, h, c) { var v, l, a, y, b; if (!t) { l = r + "=" + e; a = n.get(i); a ? (y = n.get(i, r), v = y ? a.replace(r + "=" + y, l) : a + "&" + l) : v = i + "=" + l; var p = location.hostname.match(/([^.]+\.[^.]*)$/), k = h && h > 0 ? h * 6e4 : 63072e6, d = new Date((new Date).getTime() + Math.min(k, 63072e6)), w = ""; f() && (b = u(), w = b + (c ? ";SameSite=" + c : ";SameSite=None")); _d.cookie = v + (p ? ";domain=" + p[0] : "") + (o ? ";expires=" + d.toGMTString() : "") + (s ? ";path=" + s : "") + w } }; n.clear = function (n) { if (!t) { var u = n + "=", r = location.hostname.match(/([^.]+\.[^.]*)$/); _d.cookie = u + (r ? ";domain=" + r[0] : "") + ";expires=" + i } } }; _w.sk_merge || (_w.sk_merge = function (n) { _d.cookie = n }); var amd, define, require; (function (n) { function e (n, i, u) { t[n] || (t[n] = { dependencies: i, callback: u }, r(n)) } function r (n) { if (n) { if (n) return u(n) } else { if (!f) { for (var r in t) u(r); f = !0 } return i } } function u (n) { var s, e; if (i[n]) return i[n]; if (t.hasOwnProperty(n)) { var h = t[n], f = h.dependencies, l = h.callback, a = r, o = {}, c = [a, o]; if (f.length < 2) throw "invalid usage"; else if (f.length > 2) for (s = f.slice(2, f.length), e = 0; e < s.length; e++)c.push(u(s[e])); return l.apply(this, c), i[n] = o, o } } var t = {}, i = {}, f = !1; n.define = e; n.require = r })(amd || (amd = {})); define = amd.define; require = amd.require; function lb () { _w.si_sendCReq && sb_st(_w.si_sendCReq, 800); _w.lbc && _w.lbc() }; define("shared", ["require", "exports"], function (n, t) { function s (n, t) { for (var r = n.length, i = 0; i < r; i++)t(n[i]) } function r (n) { for (var i = [], t = 1; t < arguments.length; t++)i[t - 1] = arguments[t]; return function () { n.apply(null, i) } } function u (n) { i && event && (event.returnValue = !1); n && typeof n.preventDefault == "function" && n.preventDefault() } function f (n) { i && event && (event.cancelBubble = !0); n && typeof n.stopPropagation == "function" && n.stopPropagation() } function e (n, t, i) { for (var r = 0; n && n.offsetParent && n != (i || document.body);)r += n["offset" + t], n = n.offsetParent; return r } function o () { return (new Date).getTime() } function h (n) { return i ? event : n } function c (n) { return i ? event ? event.srcElement : null : n.target } function l (n) { return i ? event ? event.fromElement : null : n.relatedTarget } function a (n) { return i ? event ? event.toElement : null : n.relatedTarget } function v (n, t, i) { while (n && n != (i || document.body)) { if (n == t) return !0; n = n.parentNode } return !1 } function y (n) { window.location.href = n } function p (n, t) { n && (n.style.filter = t >= 100 ? "" : "alpha(opacity=" + t + ")", n.style.opacity = t / 100) } t.__esModule = !0; t.getTime = t.getOffset = t.stopPropagation = t.preventDefault = t.wrap = t.forEach = void 0; var i = sb_ie; t.forEach = s; t.wrap = r; t.preventDefault = u; t.stopPropagation = f; t.getOffset = e; t.getTime = o; window.sj_b = document.body; window.sb_de = document.documentElement; window.sj_wf = r; window.sj_pd = u; window.sj_sp = f; window.sj_go = e; window.sj_ev = h; window.sj_et = c; window.sj_mi = l; window.sj_mo = a; window.sj_we = v; window.sb_gt = o; window.sj_so = p; window.sj_lc = y }); define("env", ["require", "exports", "shared"], function (n, t, i) { function v (n, t) { return t.length && typeof n == "function" ? function () { return n.apply(null, t) } : n } function y (n, t) { var e = [].slice.apply(arguments).slice(2), i = v(n, e), u; return typeof i == "function" && (u = window.setImmediate && !window.setImmediate.Override && (!t || t <= 16) ? "i" + setImmediate(i) : o(i, t), f[r] = u, r = (r + 1) % a), u } function p (n, t) { var r = [].slice.apply(arguments).slice(2), i = l(v(n, r), t); return e[u] = i, u = (u + 1) % a, i } function w () { h.forEach(f, s); h.forEach(e, window.clearInterval); r = u = e.length = f.length = 0 } function s (n) { n != null && (typeof n == "string" && n.indexOf("i") === 0 ? window.clearImmediate(parseInt(n.substr(1), 10)) : c(n)) } var h = i, f = [], e = [], o, c, l, a = 1024, r = 0, u = 0; o = window.setTimeout; t.setTimeout = y; l = window.setInterval; t.setInterval = p; t.clear = w; c = window.clearTimeout; t.clearTimeout = s; window.sb_rst = o; window.setTimeout = window.sb_st = y; window.setInterval = window.sb_si = p; window.clearTimeout = window.sb_ct = s }); define("event.custom", ["require", "exports", "shared", "env"], function (n, t, i, r) { function f (n) { return u[n] || (u[n] = []) } function e (n, t) { n.d ? l.setTimeout(c.wrap(n, t), n.d) : n(t) } function v (n, t, i) { var r, f; for (r in u) f = i ? t && r.indexOf(t) === 0 : !(r.indexOf(a) === 0) && !(t && r.indexOf(t) === 0) && !(n != null && n[r] != null), f && delete u[r] } function o (n) { for (var t = f(n), u = t.e = arguments, i, r = 0; r < t.length; r++)if (t[r].alive) try { e(t[r].func, u) } catch (o) { i || (i = o) } if (i) throw i; } function s (n, t, i, r) { var u = f(n); t && (t.d = r, u.push({ func: t, alive: !0 }), i && u.e && e(t, u.e)) } function h (n, t) { for (var i = 0, r = u[n]; r && i < r.length; i++)if (r[i].func == t && r[i].alive) { r[i].alive = !1; break } } var c = i, l = r, u = {}, a = "ajax."; t.reset = v; t.fire = o; t.bind = s; t.unbind = h; _w.sj_evt = { bind: s, unbind: h, fire: o } }); define("event.native", ["require", "exports"], function (n, t) { function r (n, t, r, u) { var f = n === window || n === document || n === document.body; n && (f && t == "load" ? i.bind("onP1", r, !0) : f && t == "unload" ? i.bind("unload", r, !0) : n.addEventListener ? n.addEventListener(t, r, u) : n.attachEvent ? n.attachEvent("on" + t, r) : n["on" + t] = r) } function u (n, t, r, u) { var f = n === window || n === document || n === document.body; n && (f && t == "load" ? i.unbind("onP1", r) : f && t == "unload" ? i.unbind("unload", r) : n.removeEventListener ? n.removeEventListener(t, r, u) : n.detachEvent ? n.detachEvent("on" + t, r) : n["on" + t] = null) } t.__esModule = !0; t.unbind = t.bind = void 0; var i = n("event.custom"); t.bind = r; t.unbind = u; window.sj_be = r; window.sj_ue = u }); define("dom", ["require", "exports"], function (n, t) { function f (n, t) { function s (n, t, r, f) { r && u.unbind(r, f, s); c.bind("onP1", function () { if (!n.l) { n.l = 1; var r = i("script"); r.setAttribute("data-rms", "1"); r.src = (t ? "/fd/sa/" + _G.Ver : "/sa/" + _G.AppVer) + "/" + n.n + ".js"; _d.body.appendChild(r) } }, !0, 5) } for (var f = arguments, e, o, r = 2, l = { n: n }; r < f.length; r += 2)e = f[r], o = f[r + 1], u.bind(e, o, h.wrap(s, l, t, e, o)); r < 3 && s(l, t) } function e () { var n = _d.getElementById("ajaxStyles"); return n || (n = _d.createElement("div"), n.id = "ajaxStyles", _d.body.insertBefore(n, _d.body.firstChild)), n } function l (n) { var t = i("script"); t.type = "text/javascript"; t.text = n; t.setAttribute("data-bing-script", "1"); document.body.appendChild(t); r.setTimeout(function () { document.body.removeChild(t) }, 0) } function a (n) { var t = i("script"); t.type = "text/javascript"; t.src = n; t.setAttribute("crossorigin", "anonymous"); t.onload = r.setTimeout(function () { document.body.removeChild(t) }, 0); document.body.appendChild(t) } function o (n) { var t = s("ajaxStyle"); t || (t = i("style"), t.setAttribute("data-rms", "1"), t.id = "ajaxStyle", e().appendChild(t)); t.textContent !== undefined ? t.textContent += n : t.styleSheet.cssText += n } function v (n, t) { for (var i = Element.prototype, r = i.matches || i.msMatchesSelector; n != null;) { if (r.call(n, t)) return n; n = n.parentElement } return null } function s (n) { return _d.getElementById(n) } function i (n, t, i) { var r = _d.createElement(n); return t && (r.id = t), i && (r.className = i), r } t.__esModule = !0; t.includeCss = t.includeScriptReference = t.includeScript = t.getCssHolder = t.loadJS = void 0; var r = n("env"), h = n("shared"), u = n("event.native"), c = n("event.custom"); t.loadJS = f; t.getCssHolder = e; t.includeScript = l; t.includeScriptReference = a; t.includeCss = o; _w._ge = s; _w.sj_ce = i; _w.sj_jb = f; _w.sj_ic = o; _w.sj_fa = v }); define("cookies", ["require", "exports"], function (n, t) { function a () { var n = location.protocol === "https:"; return n ? ";secure" : "" } function v () { return typeof _G != "undefined" && _G.EF !== undefined && _G.EF.cookss !== undefined && _G.EF.cookss === 1 } function f () { var n = location.hostname.match(/([^.]+\.[^.]*)$/); return n ? ";domain=" + n[0] : "" } function e (n, t, i, r, u) { var s = f(), h = r && r > 0 ? r * 6e4 : 63072e6, c = new Date((new Date).getTime() + Math.min(h, 63072e6)), e = "", o; v() && (o = a(), e = o + (u ? ";SameSite=" + u : ";SameSite=None")); document.cookie = n + s + (t ? ";expires=" + c.toGMTString() : "") + (i ? ";path=" + i : "") + e } function o (n, t, r, u, f) { if (!i) { var o = n + "=" + t; e(o, r, u, f) } } function s () { return !i } function r (n, t) { var r, u; return i ? null : (r = document.cookie.match(new RegExp("\\b" + n + "=[^;]+")), t && r) ? (u = r[0].match(new RegExp("\\b" + t + "=([^&]*)")), u ? u[1] : null) : r ? r[0] : null } function h (n, t, u, f, o, s) { var l, h, c, a; i || (h = t + "=" + u, c = r(n), c ? (a = r(n, t), l = a ? c.replace(t + "=" + a, h) : c + "&" + h) : l = n + "=" + h, e(l, f, o, s)) } function c (n, t) { if (!i) { var r = n + "=", e = f(); document.cookie = r + e + ";expires=" + u + (t ? ";path=" + t : "") } } var i, u, l; t.__esModule = !0; t.clear = t.set = t.get = t.areCookiesAccessible = t.setNoCrumbs = void 0; i = !1; u = new Date(0).toGMTString(); try { l = document.cookie } catch (y) { i = !0 } t.setNoCrumbs = o; t.areCookiesAccessible = s; t.get = r; t.set = h; t.clear = c; window.sj_cook = { get: r, set: h, setNoCrumbs: o, clear: c, areCookiesAccessible: s } }); var sj_anim = function (n) { var s = 25, t = this, c, u, h, f, e, o, l, i, r; t.init = function (n, s, a, v, y) { if (c = n, e = s, o = a, l = v, r = y, v == 0) { f = h; r && r(); return } i || (i = e); u || t.start() }; t.start = function () { h = sb_gt(); f = Math.abs(o - i) / l * s; u = setInterval(t.next, s) }; t.stop = function () { clearInterval(u); u = 0 }; t.next = function () { var u = sb_gt() - h, s = u >= f; i = e + (o - e) * u / f; s && (t.stop(), i = o); n(c, i); s && r && r() }; t.getInterval = function () { return s } }; var sj_fader = function () { return new sj_anim(function (n, t) { sj_so(n, t) }) }; sj_fade = new function () { function n (n, t, i, r, u, f, e) { var o = n.fader; if (o) { if (e == n.fIn) return } else o = sj_fader(), n.fader = o; u && u(); o.init(n, t, i, r, f); n.fIn = e } this.up = function (t, i, r) { function u () { t.style.visibility = "visible" } n(t, 0, 100, i, u, r, 1) }; this.down = function (t, i, r) { function u () { t.style.visibility = "hidden"; r && r() } n(t, 100, 0, i, 0, u, 0) } };
Expand Down
1 change: 1 addition & 0 deletions frontend/public/img/compose.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions web/assets/index-020e1a7c.js → web/assets/index-084936e6.js

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading

1 comment on commit 9bac8bc

@vercel
Copy link

@vercel vercel bot commented on 9bac8bc May 15, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.