diff --git a/src/service/vk/handlers/PostNewHandler.ts b/src/service/vk/handlers/PostNewHandler.ts index 66ab5e6..9c60286 100644 --- a/src/service/vk/handlers/PostNewHandler.ts +++ b/src/service/vk/handlers/PostNewHandler.ts @@ -115,11 +115,7 @@ export class PostNewHandler extends VkEventHandler { this.channel.markdown ); - const event = await this.createEvent( - id, - msg.message_id, - context.wall.toJSON() - ); + const event = await this.createEvent(id, msg.message_id, context); await this.db.createPost( event!.id, diff --git a/src/service/vk/handlers/VkEventHandler.ts b/src/service/vk/handlers/VkEventHandler.ts index 5afd038..edc5249 100644 --- a/src/service/vk/handlers/VkEventHandler.ts +++ b/src/service/vk/handlers/VkEventHandler.ts @@ -102,13 +102,26 @@ export class VkEventHandler< tgMessageId: number, text: Record ) => { - return await this.db.createEvent( - this.type, - id, - this.group.id, - this.channel.id, - tgMessageId, - text - ); + let plain = ""; + + try { + plain = JSON.stringify(text); + } catch (e) { + logger.warn(`createEvent: failed to stringify JSON: ${e}`, e); + plain = text.toString(); + } + + try { + return await this.db.createEvent( + this.type, + id, + this.group.id, + this.channel.id, + tgMessageId, + { event: plain } + ); + } catch (e) { + logger.warn("createEvent error", e); + } }; }