|
@@ -14,7 +14,6 @@ const koishi_1 = require("koishi");
|
|
|
const plugin_adapter_onebot_1 = require("@koishijs/plugin-adapter-onebot");
|
|
|
const command_1 = require("./command");
|
|
|
const loggers_1 = require("./loggers");
|
|
|
-const utils_1 = require("./utils");
|
|
|
const logger = (0, loggers_1.getLogger)('qqbot');
|
|
|
exports.Message = {
|
|
|
Image: koishi_1.segment.image,
|
|
@@ -137,56 +136,61 @@ class default_1 {
|
|
|
this.app.plugin(plugin_adapter_onebot_1.default, this.config);
|
|
|
this.app.on('friend-request', (session) => __awaiter(this, void 0, void 0, function* () {
|
|
|
const userString = `${session.username}(${session.userId})`;
|
|
|
- let groupId;
|
|
|
- let groupString;
|
|
|
- if (session.username in this.tempSenders)
|
|
|
- groupId = this.tempSenders[session.userId].toString();
|
|
|
logger.debug(`detected new friend request event: ${userString}`);
|
|
|
- return session.bot.getGuildList().then(groupList => {
|
|
|
- if (groupList.some(({ guildName, guildId }) => {
|
|
|
- const test = guildId.toString() === groupId;
|
|
|
- if (test)
|
|
|
- groupString = `${guildName}(${guildId})`;
|
|
|
- return test;
|
|
|
- })) {
|
|
|
- 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}`); });
|
|
|
+ try {
|
|
|
+ const isTemp = session.username in this.tempSenders;
|
|
|
+ const { guildId, guildName } = isTemp ?
|
|
|
+ yield session.bot.getGuild(this.tempSenders[session.userId].toString()) :
|
|
|
+ (yield session.bot.getGuildList()).find(({ guildId }) => __awaiter(this, void 0, void 0, function* () {
|
|
|
+ try {
|
|
|
+ return yield this.bot.getGuildMember(guildId, session.userId);
|
|
|
+ }
|
|
|
+ catch (_b) { }
|
|
|
+ }));
|
|
|
+ try {
|
|
|
+ const groupString = `${guildName}(${guildId})`;
|
|
|
+ yield session.bot.handleFriendRequest(session.messageId, true);
|
|
|
+ logger.info(`accepted friend request from ${userString} (${isTemp ? 'from' : 'found in'} group ${groupString})`);
|
|
|
}
|
|
|
- (0, utils_1.chainPromises)(groupList.map(groupItem => (done) => Promise.resolve(done ||
|
|
|
- this.bot.getGuildMember(groupItem.guildId, session.userId).then(() => {
|
|
|
- groupString = `${groupItem.guildName}(${groupItem.guildName})`;
|
|
|
- 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;
|
|
|
- logger.warn(`received friend request from ${userString} (stranger)`);
|
|
|
- logger.warn('please manually accept this friend request');
|
|
|
- });
|
|
|
- });
|
|
|
+ catch (error) {
|
|
|
+ logger.error(`error accepting friend request from ${userString}, error: ${error}`);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (_a) {
|
|
|
+ logger.warn(`received friend request from ${userString} (stranger)`);
|
|
|
+ logger.warn('please manually accept this friend request');
|
|
|
+ }
|
|
|
}));
|
|
|
this.app.on('guild-request', (session) => __awaiter(this, void 0, void 0, function* () {
|
|
|
const userString = `${session.username}(${session.userId})`;
|
|
|
const groupString = `${session.guildName}(${session.guildId})`;
|
|
|
logger.debug(`detected group invitation event: ${groupString}}`);
|
|
|
- return session.bot.getFriendList().then(friendList => {
|
|
|
- if (friendList.some(friendItem => friendItem.userId = session.userId)) {
|
|
|
- return session.bot.handleGuildRequest(session.messageId, true)
|
|
|
- .then(() => { logger.info(`accepted group invitation from ${userString} (friend)`); })
|
|
|
- .catch(error => { logger.error(`error accepting group invitation from ${userString}, error: ${error}`); });
|
|
|
+ const friendList = yield session.bot.getFriendList();
|
|
|
+ if (friendList.some(friendItem => friendItem.userId = session.userId)) {
|
|
|
+ try {
|
|
|
+ session.bot.handleGuildRequest(session.messageId, true);
|
|
|
+ logger.info(`accepted group invitation from ${userString} (friend)`);
|
|
|
}
|
|
|
- logger.warn(`received group invitation from ${userString} (stranger)`);
|
|
|
- logger.warn('please manually accept this group invitation');
|
|
|
- });
|
|
|
+ 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');
|
|
|
}));
|
|
|
this.app.middleware((session) => __awaiter(this, void 0, void 0, function* () {
|
|
|
const chat = yield this.getChat(session);
|
|
|
+ let userString = `${session.username}(${session.userId})`;
|
|
|
+ if (chat.chatType === 'temp') {
|
|
|
+ const group = yield session.bot.getGuild(chat.chatID.group.toString());
|
|
|
+ userString += ` (from group ${group.guildName}(${group.guildId}))`;
|
|
|
+ }
|
|
|
const cmdObj = (0, command_1.parseCmd)(session.content);
|
|
|
const reply = (msg) => this.getSender(chat)(msg).catch(error => {
|
|
|
- logger.error(`error replying to message from ${session.username}(${session.userId}), error: ${error}`);
|
|
|
+ if (chat.chatType === 'temp') {
|
|
|
+ return logger.info(`ignored error while replying to ${userString}`);
|
|
|
+ }
|
|
|
+ logger.error(`error replying to message from ${userString}, error: ${error}`);
|
|
|
});
|
|
|
switch (cmdObj.cmd) {
|
|
|
case 'twi_view':
|