Bp$vs$(9zFDS|GdcG3h8%tv+V;>!)k6A;9IsMRplqGmx;@hTelp%VEiSFiS){5{{D=ev&F20*5!3{<7!^P
z*@nzJ8ZKrsz^Iabp;~bS{Lj!h7hf9WvC)o=OPaUjEx3;}I_Xj?r4&JCt6eH&>b(8a
zmAWth(M8tChg+3Snt$24IM;tG=>Al{>Cr;$pnWV^5$@Jz=PnIehOHadNtqN<9q5H$
zxERy^uu-+tr%x%;w&Z(pFdd(X%kQX|+=Llk=2NUxySIxldWtMkK?1@SXesUG+{WnW
z!c+Enn;;=lgv%+wy|a(gU7U)FuT9w_56Pl@beMfL;xS9M`JaHY5B6iywS&adx;e~=
zzxLUAyhAvv!%OlNk&8(y>~em58b;hraCm{fZ7y5hR;QiV)V|wGMg5TLz|Dj=d|sA$
z$&(HhMT5|zGlU9W2JS=qphi(Cv1O1lGILz9(PGU)phiWQpV9UtF1QFNCMtqzd^vp
zYxh|#L9wyz(lSTYKBp3qMNAb<5_-nbEYId$=_{?n{<+wHWZy!gb&~!IfLtopC0py+
zb-|xA#Ce5qgtlUMGRu8KN=MPPO0Xn@P*izI^KtTLQ&?_mhu7_G3XzYT<5F_MaH{-bczc>&%dQnB>+sg#NQvT1f8wKO)X50yH*;q4h+$?me#}$?K5#q{t~X`>E_c2B(^BZHi3tr$3SlDrTq)w9$_>m%
z$))_?TT_I4h(}EJ9mLDi{#BLQ!GkzSJvE24Ymxs86JGbvt!aEh
z3Fyo36>M1wtsyHn4EbQ?8~!NB2hTV+bj5o&l2?5&(Bns)>Qsh(1%6|?f*)y0S!+gi
z9|78^l+>Yi8eLXOUNZJ6by>a0RRFA%x^(~{0rEqv0r~I#fAasd5lAfR0UQz$XG?+C
O$ioO~0zvCNj`|<|xCO
literal 0
HcmV?d00001
diff --git a/bingchat/image/person.jpeg b/bingchat/image/person.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..9be9587ff23cc0efbf6e9d7222959950bc4b8d2e
GIT binary patch
literal 5155
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
h#S?a2jck0H`CII}7`` 1) {
+ cht.setData({
+ scrollId: "item" + (cht.data.chatList.length - 2),
+ });
+ }
+ },
+ submitContent: function (content) {
+ var that = this;
+ const cht = app.globalData.cht;
+ content = this.processContent(content);
+ cht.data.chatList.push({
+ type: "man",
+ avatarUrl: personAvatar,
+ dt: getNow(),
+ originContent: content,
+ });
+ cht.setData({
+ chatList: cht.data.chatList,
+ });
+ that.setData({
+ content: "",
+ });
+ if (content == "重新对话!") {
+ this.resetConversation();
+ cht.data.chatList.push({
+ type: "rob",
+ avatarUrl: robAvatar,
+ dt: getNow(),
+ originContent: "现在我们可以开始新的对话😊",
+ suggests: [],
+ });
+ cht.setData({
+ chatList: cht.data.chatList,
+ });
+ that.scrollTo(cht);
+ return;
+ } else {
+ cht.data.chatList.push({
+ type: "rob",
+ avatarUrl: robAvatar,
+ dt: getNow(),
+ originContent: "搜索中🔍...",
+ suggests: [],
+ blink: true,
+ });
+ cht.setData({
+ chatList: cht.data.chatList,
+ });
+ }
+ wx.request({
+ url: SERVER_HOST + "/bing/chat",
+ method: "GET",
+ data: {
+ q: content,
+ t: new Date().getTime(),
+ sid: app.getSid(),
+ },
+ enableHttp2: true,
+ success(res) {
+ try {
+ var robContent = "";
+ var suggests = [];
+ if (res.statusCode != 200) {
+ robContent =
+ "抱歉😭,网络异常,请稍后重试 [" + res.statusCode + "]";
+ suggests.push(content);
+ } else {
+ robContent = res.data["data"]["status"];
+ if (robContent == "Success") {
+ robContent = res.data["data"]["text"];
+ suggests = res.data["data"]["suggests"];
+ if (robContent.indexOf("New topic") != -1) {
+ robContent += "\n发送“重新对话!”开始新的对话";
+ suggests.push("重新对话!");
+ suggests.push(content);
+ }
+ } else {
+ if (robContent == "Throttled") {
+ robContent = "这真是愉快,但你已达到每日限制。是否明天再聊?";
+ suggests.push("重新对话!");
+ suggests.push(content);
+ } else {
+ var msg = res.data["data"]["message"];
+ if (msg.indexOf("has expired") != -1) {
+ that.resetConversation();
+ robContent = "本轮对话已过期,请重新开始。";
+ suggests.push(content);
+ } else {
+ robContent = "抱歉😭,发生错误:" + msg + ",请重试";
+ suggests.push(content);
+ }
+ }
+ }
+ }
+ cht.data.chatList.pop();
+ cht.data.chatList.push({
+ type: "rob",
+ avatarUrl: robAvatar,
+ dt: getNow(),
+ originContent: that.processContent(robContent),
+ suggests: suggests,
+ });
+ cht.setData({
+ chatList: cht.data.chatList,
+ });
+ wx.setStorage({
+ key: "chatList",
+ data: cht.data.chatList,
+ });
+ } catch (error) {
+ console.log(error);
+ wx.showToast({
+ title: "fatal error",
+ });
+ }
+ },
+ fail(e) {
+ console.log(e);
+ cht.data.chatList.pop();
+ cht.data.chatList.push({
+ type: "rob",
+ avatarUrl: robAvatar,
+ dt: getNow(),
+ originContent: e.errMsg,
+ suggests: [],
+ });
+ },
+ });
+ that.scrollTo(cht);
+ },
+ scrollTo: function (cht) {
+ setTimeout(() => {
+ cht.setData({
+ scrollId: "item" + (cht.data.chatList.length - 1),
+ });
+ }, 50);
+ },
+ submit() {
+ var content = this.data.content;
+ if (content.length == 0 || content == null || content.trim().length == 0) {
+ return;
+ }
+ this.submitContent(content);
+ },
+ onShareAppMessage() {
+ return {
+ title: "New Bing Bot 🤖",
+ path: "/pages/index/index",
+ };
+ },
+ onSuggestSubmit: function (e) {
+ var suggest = e.detail.suggest;
+ this.submitContent(suggest);
+ },
+});
diff --git a/bingchat/pages/index/index.json b/bingchat/pages/index/index.json
new file mode 100644
index 0000000..c77dc7a
--- /dev/null
+++ b/bingchat/pages/index/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {
+ }
+}
diff --git a/bingchat/pages/index/index.wxml b/bingchat/pages/index/index.wxml
new file mode 100644
index 0000000..fe97059
--- /dev/null
+++ b/bingchat/pages/index/index.wxml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/bingchat/pages/index/index.wxss b/bingchat/pages/index/index.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/bingchat/project.config.json b/bingchat/project.config.json
new file mode 100644
index 0000000..0a6d485
--- /dev/null
+++ b/bingchat/project.config.json
@@ -0,0 +1,27 @@
+{
+ "appid": "wxee7496be5b68b740",
+ "compileType": "miniprogram",
+ "libVersion": "2.12.3",
+ "packOptions": {
+ "ignore": [],
+ "include": []
+ },
+ "setting": {
+ "es6": true,
+ "postcss": true,
+ "minified": true,
+ "enhance": true,
+ "packNpmRelationList": [],
+ "babelSetting": {
+ "ignore": [],
+ "disablePlugins": [],
+ "outputPath": ""
+ },
+ "uglifyFileName": false
+ },
+ "condition": {},
+ "editorSetting": {
+ "tabIndent": "tab",
+ "tabSize": 2
+ }
+}
diff --git a/bingchat/project.private.config.json b/bingchat/project.private.config.json
new file mode 100644
index 0000000..3d11a51
--- /dev/null
+++ b/bingchat/project.private.config.json
@@ -0,0 +1,9 @@
+{
+ "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+ "projectname": "bingchat",
+ "setting": {
+ "compileHotReLoad": true,
+ "urlCheck": false
+ },
+ "libVersion": "2.15.0"
+}
diff --git a/bingchat/sitemap.json b/bingchat/sitemap.json
new file mode 100644
index 0000000..ff91049
--- /dev/null
+++ b/bingchat/sitemap.json
@@ -0,0 +1,7 @@
+{
+ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+ "rules": [{
+ "action": "disallow",
+ "page": "*"
+ }]
+}
\ No newline at end of file
diff --git a/bingchat/snapshoot.png b/bingchat/snapshoot.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9c18571498e793d99a743ab5dec1a90696dbd09
GIT binary patch
literal 280409
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