Переглянути джерело

fix uncatched sending errors, fix playwright-server

Mike L 3 роки тому
батько
коміт
8afd3cd7be
4 змінених файлів з 31 додано та 17 видалено
  1. 1 1
      bin/playwright-server
  2. 15 8
      dist/koishi.js
  3. 0 0
      dist/koishi.js.map
  4. 15 8
      src/koishi.ts

+ 1 - 1
bin/playwright-server

@@ -3,7 +3,7 @@ const type = (arg =>
   arg == 'firefox' ? 'firefox' : arg == 'webkit' ? 'webkit' : 'chromium'
 )(process.argv[1]);
 const wsUrl = require('../config.json').playwright_ws_spec_endpoint ||
-  require('../config.default.json').playwright_ws_spec_endpoint;
+  require('../config.example.json').playwright_ws_spec_endpoint;
 const axios = require('axios').default;
 const playwright = require('playwright');
 axios.get('http://localhost:9222').then(res => {

+ 15 - 8
dist/koishi.js

@@ -134,15 +134,17 @@ class default_1 {
                             groupString = `${groupItem.groupName}(${groupId})`;
                         return test;
                     })) {
-                        session.bot.handleFriendRequest(session.messageId, true);
-                        return logger.info(`accepted friend request from ${userString} (from group ${groupString})`);
+                        return session.bot.handleFriendRequest(session.messageId, true)
+                            .then(() => { logger.info(`accepted friend request from ${userString} (from group ${groupString})`); })
+                            .catch(error => { logger.error(`error accepting friend request from ${userString}, error: ${error}`); });
                     }
                     utils_1.chainPromises(groupList.map(groupItem => (done) => Promise.resolve(done ||
                         this.bot.getGroupMember(groupItem.groupId, session.userId).then(() => {
                             groupString = `${groupItem.groupName}(${groupItem.groupId})`;
-                            session.bot.handleFriendRequest(session.messageId, true);
-                            logger.info(`accepted friend request from ${userString} (found in group ${groupString})`);
-                            return true;
+                            return session.bot.handleFriendRequest(session.messageId, true)
+                                .then(() => { logger.info(`accepted friend request from ${userString} (found in group ${groupString})`); })
+                                .catch(error => { logger.error(`error accepting friend request from ${userString}, error: ${error}`); })
+                                .then(() => true);
                         }).catch(() => false)))).then(done => {
                         if (done)
                             return;
@@ -157,8 +159,9 @@ class default_1 {
                 logger.debug(`detected group invitation event: ${groupString}}`);
                 return session.bot.getFriendList().then(friendList => {
                     if (friendList.some(friendItem => friendItem.userId = session.userId)) {
-                        session.bot.handleGroupRequest(session.messageId, true);
-                        return logger.info(`accepted group invitation from ${userString} (friend)`);
+                        return session.bot.handleGroupRequest(session.messageId, true)
+                            .then(() => { logger.info(`accepted group invitation from ${userString} (friend)`); })
+                            .catch(error => { logger.error(`error accepting group invitation from ${userString}, error: ${error}`); });
                     }
                     logger.warn(`received group invitation from ${userString} (stranger)`);
                     logger.warn('please manually accept this group invitation');
@@ -167,7 +170,11 @@ class default_1 {
             this.app.middleware((session) => __awaiter(this, void 0, void 0, function* () {
                 const chat = yield this.getChat(session);
                 const cmdObj = command_1.parseCmd(session.content);
-                const reply = (msg) => __awaiter(this, void 0, void 0, function* () { return session.sendQueued(msg); });
+                const reply = (msg) => __awaiter(this, void 0, void 0, function* () {
+                    const userString = `${session.username}(${session.userId})`;
+                    return session.sendQueued(msg)
+                        .catch(error => { logger.error(`error replying to message from ${userString}, error: ${error}`); });
+                });
                 switch (cmdObj.cmd) {
                     case 'twitter_view':
                     case 'twitter_get':

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
dist/koishi.js.map


+ 15 - 8
src/koishi.ts

@@ -150,16 +150,18 @@ export default class {
           if (test) groupString = `${groupItem.groupName}(${groupId})`;
           return test;
         })) {
-          session.bot.handleFriendRequest(session.messageId, true);
-          return logger.info(`accepted friend request from ${userString} (from group ${groupString})`);
+          return session.bot.handleFriendRequest(session.messageId, true)
+            .then(() => { logger.info(`accepted friend request from ${userString} (from group ${groupString})`); })
+            .catch(error => { logger.error(`error accepting friend request from ${userString}, error: ${error}`); });
         }
         chainPromises(groupList.map(groupItem =>
           (done: boolean) => Promise.resolve(done ||
             this.bot.getGroupMember(groupItem.groupId, session.userId).then(() => {
               groupString = `${groupItem.groupName}(${groupItem.groupId})`;
-              session.bot.handleFriendRequest(session.messageId, true);
-              logger.info(`accepted friend request from ${userString} (found in group ${groupString})`);
-              return true;
+              return session.bot.handleFriendRequest(session.messageId, true)
+                .then(() => { logger.info(`accepted friend request from ${userString} (found in group ${groupString})`); })
+                .catch(error => { logger.error(`error accepting friend request from ${userString}, error: ${error}`); })
+                .then(() => true);
             }).catch(() => false)
           )
         )).then(done => {
@@ -176,8 +178,9 @@ export default class {
       logger.debug(`detected group invitation event: ${groupString}}`);
       return session.bot.getFriendList().then(friendList => {
         if (friendList.some(friendItem => friendItem.userId = session.userId)) {
-          session.bot.handleGroupRequest(session.messageId, true);
-          return logger.info(`accepted group invitation from ${userString} (friend)`);
+          return session.bot.handleGroupRequest(session.messageId, true)
+            .then(() => { logger.info(`accepted group invitation from ${userString} (friend)`); })
+            .catch(error => { logger.error(`error accepting group invitation from ${userString}, error: ${error}`); });
         }
         logger.warn(`received group invitation from ${userString} (stranger)`);
         logger.warn('please manually accept this group invitation');
@@ -187,7 +190,11 @@ export default class {
     this.app.middleware(async (session: CQSession) => {
       const chat = await this.getChat(session);
       const cmdObj = parseCmd(session.content);
-      const reply = async msg => session.sendQueued(msg);
+      const reply = async msg => {
+        const userString = `${session.username}(${session.userId})`;
+        return session.sendQueued(msg)
+          .catch(error => { logger.error(`error replying to message from ${userString}, error: ${error}`); });
+      };
       switch (cmdObj.cmd) {
         case 'twitter_view':
         case 'twitter_get':

Деякі файли не було показано, через те що забагато файлів було змінено