From 660c567d1b83d280d58a4f2505057f58987df33f Mon Sep 17 00:00:00 2001 From: devlikepro Date: Sun, 2 Mar 2025 14:18:31 +0700 Subject: [PATCH] [core] GOWS - link preview fix #763 --- src/core/engines/gows/grpc/gows.ts | 23 ++++++++++++++++ src/core/engines/gows/grpc/gows_pb.js | 32 +++++++++++++++++++++- src/core/engines/gows/session.gows.core.ts | 2 ++ src/structures/status.dto.ts | 2 ++ 4 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/core/engines/gows/grpc/gows.ts b/src/core/engines/gows/grpc/gows.ts index 4eab7b8a..081a9e95 100644 --- a/src/core/engines/gows/grpc/gows.ts +++ b/src/core/engines/gows/grpc/gows.ts @@ -2521,6 +2521,7 @@ export namespace messages { media?: Media; backgroundColor?: OptionalString; font?: OptionalUInt32; + linkPreview?: boolean; }) { super(); pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls); @@ -2543,6 +2544,9 @@ export namespace messages { if ("font" in data && data.font != undefined) { this.font = data.font; } + if ("linkPreview" in data && data.linkPreview != undefined) { + this.linkPreview = data.linkPreview; + } } } get session() { @@ -2593,6 +2597,12 @@ export namespace messages { get has_font() { return pb_1.Message.getField(this, 6) != null; } + get linkPreview() { + return pb_1.Message.getFieldWithDefault(this, 7, false) as boolean; + } + set linkPreview(value: boolean) { + pb_1.Message.setField(this, 7, value); + } static fromObject(data: { session?: ReturnType; jid?: string; @@ -2600,6 +2610,7 @@ export namespace messages { media?: ReturnType; backgroundColor?: ReturnType; font?: ReturnType; + linkPreview?: boolean; }): MessageRequest { const message = new MessageRequest({}); if (data.session != null) { @@ -2620,6 +2631,9 @@ export namespace messages { if (data.font != null) { message.font = OptionalUInt32.fromObject(data.font); } + if (data.linkPreview != null) { + message.linkPreview = data.linkPreview; + } return message; } toObject() { @@ -2630,6 +2644,7 @@ export namespace messages { media?: ReturnType; backgroundColor?: ReturnType; font?: ReturnType; + linkPreview?: boolean; } = {}; if (this.session != null) { data.session = this.session.toObject(); @@ -2649,6 +2664,9 @@ export namespace messages { if (this.font != null) { data.font = this.font.toObject(); } + if (this.linkPreview != null) { + data.linkPreview = this.linkPreview; + } return data; } serialize(): Uint8Array; @@ -2667,6 +2685,8 @@ export namespace messages { writer.writeMessage(5, this.backgroundColor, () => this.backgroundColor.serialize(writer)); if (this.has_font) writer.writeMessage(6, this.font, () => this.font.serialize(writer)); + if (this.linkPreview != false) + writer.writeBool(7, this.linkPreview); if (!w) return writer.getResultBuffer(); } @@ -2694,6 +2714,9 @@ export namespace messages { case 6: reader.readMessage(message.font, () => message.font = OptionalUInt32.deserialize(reader)); break; + case 7: + message.linkPreview = reader.readBool(); + break; default: reader.skipField(); } } diff --git a/src/core/engines/gows/grpc/gows_pb.js b/src/core/engines/gows/grpc/gows_pb.js index 14e3ae92..faad950e 100644 --- a/src/core/engines/gows/grpc/gows_pb.js +++ b/src/core/engines/gows/grpc/gows_pb.js @@ -6256,7 +6256,8 @@ proto.messages.MessageRequest.toObject = function(includeInstance, msg) { text: jspb.Message.getFieldWithDefault(msg, 3, ""), media: (f = msg.getMedia()) && proto.messages.Media.toObject(includeInstance, f), backgroundcolor: (f = msg.getBackgroundcolor()) && proto.messages.OptionalString.toObject(includeInstance, f), - font: (f = msg.getFont()) && proto.messages.OptionalUInt32.toObject(includeInstance, f) + font: (f = msg.getFont()) && proto.messages.OptionalUInt32.toObject(includeInstance, f), + linkpreview: jspb.Message.getBooleanFieldWithDefault(msg, 7, false) }; if (includeInstance) { @@ -6321,6 +6322,10 @@ proto.messages.MessageRequest.deserializeBinaryFromReader = function(msg, reader reader.readMessage(value,proto.messages.OptionalUInt32.deserializeBinaryFromReader); msg.setFont(value); break; + case 7: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setLinkpreview(value); + break; default: reader.skipField(); break; @@ -6396,6 +6401,13 @@ proto.messages.MessageRequest.serializeBinaryToWriter = function(message, writer proto.messages.OptionalUInt32.serializeBinaryToWriter ); } + f = message.getLinkpreview(); + if (f) { + writer.writeBool( + 7, + f + ); + } }; @@ -6583,6 +6595,24 @@ proto.messages.MessageRequest.prototype.hasFont = function() { }; +/** + * optional bool linkPreview = 7; + * @return {boolean} + */ +proto.messages.MessageRequest.prototype.getLinkpreview = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.messages.MessageRequest} returns this + */ +proto.messages.MessageRequest.prototype.setLinkpreview = function(value) { + return jspb.Message.setProto3BooleanField(this, 7, value); +}; + + diff --git a/src/core/engines/gows/session.gows.core.ts b/src/core/engines/gows/session.gows.core.ts index 2c699bee..d4313127 100644 --- a/src/core/engines/gows/session.gows.core.ts +++ b/src/core/engines/gows/session.gows.core.ts @@ -530,6 +530,7 @@ export class WhatsappSessionGoWSCore extends WhatsappSession { jid: jid, text: request.text, session: this.session, + linkPreview: request.linkPreview ?? true, }); const response = await promisify(this.client.SendMessage)(message); const data = response.toObject(); @@ -557,6 +558,7 @@ export class WhatsappSessionGoWSCore extends WhatsappSession { font: new messages.OptionalUInt32({ value: status.font, }), + linkPreview: status.linkPreview ?? true, }); const response = await promisify(this.client.SendMessage)(message); const data = response.toObject(); diff --git a/src/structures/status.dto.ts b/src/structures/status.dto.ts index ed6aef1a..bb070ad7 100644 --- a/src/structures/status.dto.ts +++ b/src/structures/status.dto.ts @@ -28,6 +28,8 @@ export class TextStatus { @ContactsProperty contacts?: string[]; + + linkPreview?: boolean = true; } @ApiExtraModels(RemoteFile, BinaryFile)