feat: add sender nickname in wxpusher

pull/90/head
moonrailgun 2 years ago
parent 298550c862
commit 5b238bf860

@ -9,8 +9,12 @@ import {
} from '@typegoose/typegoose'; } from '@typegoose/typegoose';
import { Base, TimeStamps } from '@typegoose/typegoose/lib/defaultClasses'; import { Base, TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
import type { Types } from 'mongoose'; import type { Types } from 'mongoose';
import type { InboxStruct } from 'tailchat-server-sdk';
import { User } from '../user/user'; import { User } from '../user/user';
/**
* @deprecated use InboxStruct directly
*/
interface InboxMessage { interface InboxMessage {
/** /**
* Id * Id
@ -24,6 +28,11 @@ interface InboxMessage {
messageId: string; messageId: string;
/**
*
*/
messageAuthor: string;
/** /**
* / * /
*/ */
@ -70,7 +79,7 @@ export class Inbox extends TimeStamps implements Base {
* *
*/ */
@prop() @prop()
payload?: InboxMessage | object; payload?: InboxStruct['payload'];
/** /**
* *

@ -79,6 +79,7 @@ export interface MessageInboxItem extends BasicInboxItem {
groupId?: string; groupId?: string;
converseId: string; converseId: string;
messageId: string; messageId: string;
messageAuthor: string;
messageSnippet: string; messageSnippet: string;
messagePlainContent?: string; messagePlainContent?: string;
}; };

@ -49,11 +49,20 @@ class WxpusherService extends TcService {
const message = inboxItem.payload; const message = inboxItem.payload;
let title = 'new'; let title = 'new';
const senderInfo = await call(ctx).getUserInfo(message.messageAuthor);
if (message.groupId) { if (message.groupId) {
const groupInfo = await call(ctx).getGroupInfo(message.groupId); const [groupInfo] = await Promise.all([
title = `来自群组: ${groupInfo.name}`; // 因为wxpusher插件仅适用于中国大陆因此仅需要中文即可 call(ctx).getGroupInfo(message.groupId),
]);
title = `[群组] ${groupInfo.name}${senderInfo.nickname}`; // 因为wxpusher插件仅适用于中国大陆因此仅需要中文即可
} else {
title = `[私信] ${senderInfo.nickname}`; // 因为wxpusher插件仅适用于中国大陆因此仅需要中文即可
} }
const content = message.messagePlainContent ?? message.messageSnippet; // 优先使用去节点的内容
const content = `${senderInfo.nickname}: ${
message.messagePlainContent ?? message.messageSnippet
}`; // 优先使用去节点的内容
try { try {
await this.sendMessage(userId, [title, content].join('\n')); await this.sendMessage(userId, [title, content].join('\n'));

Loading…
Cancel
Save