Handle creation of chats with groups, closes #7

This commit is contained in:
Inex Code 2021-02-13 11:19:00 +00:00
parent 0d0a98490c
commit fd02432559
1 changed files with 16 additions and 4 deletions

View File

@ -100,6 +100,7 @@ export class VkPuppet {
name: `${userInfo[0].first_name} ${userInfo[0].last_name}`, name: `${userInfo[0].first_name} ${userInfo[0].last_name}`,
avatarUrl: userInfo[0].photo_max, avatarUrl: userInfo[0].photo_max,
isDirect: true, isDirect: true,
externalUrl: `https://vk.com/id${info.items[0].peer.id}}`,
}; };
break; break;
@ -113,6 +114,17 @@ export class VkPuppet {
}; };
break; break;
case "group":
const groupInfo = await p.client.api.groups.getById({ group_id: info.items[0].peer.id });
response = {
puppetId,
roomId: peerId.toString(),
name: groupInfo[0].name || peerId.toString(),
avatarUrl: groupInfo[0]?.photo_200,
externalUrl: `https://vk.com/${groupInfo[0].screen_name}`,
};
break;
default: default:
response = { response = {
puppetId, puppetId,
@ -285,7 +297,7 @@ export class VkPuppet {
delete_for_all: 1, delete_for_all: 1,
message_ids: Number(eventId), message_ids: Number(eventId),
}) })
: await this.handleMatrixEdit(room, eventId, { body: "[ДАННЫЕ УДАЛЕНЫ]", eventId }, asUser); : await this.handleMatrixEdit(room, eventId, { body: "[ДАННЫЕ УДАЛЕНЫ]", eventId }, asUser);
} catch (err) { } catch (err) {
log.error("Error sending edit to vk", err.error || err.body || err); log.error("Error sending edit to vk", err.error || err.body || err);
} }
@ -521,7 +533,7 @@ export class VkPuppet {
} }
if (context.hasAttachments()) { if (context.hasAttachments()) {
const attachments = p.data.isUserToken const attachments = p.data.isUserToken
? (await p.client.api.messages.getById({message_ids: context.id})).items[0].attachments! ? (await p.client.api.messages.getById({ message_ids: context.id })).items[0].attachments!
: context.attachments; : context.attachments;
for (const f of attachments) { for (const f of attachments) {
switch (f.type) { switch (f.type) {
@ -563,7 +575,7 @@ export class VkPuppet {
case AttachmentType.STICKER: case AttachmentType.STICKER:
try { try {
p.data.isUserToken ? await this.puppet.sendFileDetect(params, f["sticker"]["images_with_background"][4]["url"]) p.data.isUserToken ? await this.puppet.sendFileDetect(params, f["sticker"]["images_with_background"][4]["url"])
: await this.puppet.sendFileDetect(params, f["imagesWithBackground"][4]["url"]); : await this.puppet.sendFileDetect(params, f["imagesWithBackground"][4]["url"]);
} catch (err) { } catch (err) {
const opts: IMessageEvent = { const opts: IMessageEvent = {
body: `Sticker was sent: ${f["imagesWithBackground"][4]["url"]}`, body: `Sticker was sent: ${f["imagesWithBackground"][4]["url"]}`,
@ -594,7 +606,7 @@ export class VkPuppet {
case AttachmentType.DOCUMENT: case AttachmentType.DOCUMENT:
try { try {
p.data.isUserToken ? await this.puppet.sendFileDetect(params, f["doc"]["url"], f["doc"]["title"]) p.data.isUserToken ? await this.puppet.sendFileDetect(params, f["doc"]["url"], f["doc"]["title"])
: await this.puppet.sendFileDetect(params, f["url"], f["title"]); : await this.puppet.sendFileDetect(params, f["url"], f["title"]);
} catch (err) { } catch (err) {
const opts: IMessageEvent = { const opts: IMessageEvent = {
body: `Document was sent: ${f["url"]}`, body: `Document was sent: ${f["url"]}`,