99namespace TelegramBot \Api \Types \Inline \InputMessageContent ;
1010
1111use TelegramBot \Api \TypeInterface ;
12+ use TelegramBot \Api \Types \LinkPreviewOptions ;
13+ use TelegramBot \Api \Types \ArrayOfMessageEntity ;
1214use TelegramBot \Api \Types \Inline \InputMessageContent ;
1315
1416/**
@@ -35,7 +37,9 @@ class Text extends InputMessageContent implements TypeInterface
3537 protected static $ map = [
3638 'message_text ' => true ,
3739 'parse_mode ' => true ,
38- 'disable_web_page_preview ' => true ,
40+ 'entities ' => ArrayOfMessageEntity::class,
41+ 'disable_web_page_preview ' => true , // @todo: remove as deprecated with bot api 7.0
42+ 'link_preview_options ' => LinkPreviewOptions::class
3943 ];
4044
4145 /**
@@ -54,23 +58,42 @@ class Text extends InputMessageContent implements TypeInterface
5458 protected $ parseMode ;
5559
5660 /**
61+ * @deprecated use $linkPreviewOptions instead
5762 * Optional. Disables link previews for links in the sent message
5863 *
5964 * @var bool|null
6065 */
6166 protected $ disableWebPagePreview ;
6267
68+ /**
69+ * Link preview generation options for the message
70+ *
71+ * @var LinkPreviewOptions|null
72+ */
73+ protected $ linkPreviewOptions ;
74+
6375 /**
6476 * Text constructor.
77+ *
6578 * @param string $messageText
6679 * @param string|null $parseMode
6780 * @param bool $disableWebPagePreview
81+ * @param LinkPreviewOptions|null $linkPreviewOptions Link preview generation options for the message.
6882 */
69- public function __construct ($ messageText , $ parseMode = null , $ disableWebPagePreview = false )
83+ public function __construct ($ messageText , $ parseMode = null , $ disableWebPagePreview = false , $ linkPreviewOptions = null )
7084 {
7185 $ this ->messageText = $ messageText ;
7286 $ this ->parseMode = $ parseMode ;
7387 $ this ->disableWebPagePreview = $ disableWebPagePreview ;
88+
89+ if (null === $ linkPreviewOptions && false !== $ disableWebPagePreview ) {
90+ @trigger_error ('setting $disableWebPagePreview is now deprecated use $linkPreviewOptions instead ' , E_USER_DEPRECATED );
91+
92+ $ this ->linkPreviewOptions = new LinkPreviewOptions ();
93+ $ this ->linkPreviewOptions ->map ([
94+ 'is_disabled ' => $ disableWebPagePreview
95+ ]);
96+ }
7497 }
7598
7699 /**
@@ -126,4 +149,21 @@ public function setDisableWebPagePreview($disableWebPagePreview)
126149 {
127150 $ this ->disableWebPagePreview = $ disableWebPagePreview ;
128151 }
152+
153+ /**
154+ * @return LinkPreviewOptions|null
155+ */
156+ public function getLinkPreviewOptions ()
157+ {
158+ return $ this ->linkPreviewOptions ;
159+ }
160+
161+ /**
162+ * @param LinkPreviewOptions|null $linkPreviewOptions
163+ * @return void
164+ */
165+ public function setLinkPreviewOptions ($ linkPreviewOptions )
166+ {
167+ $ this ->linkPreviewOptions = $ linkPreviewOptions ;
168+ }
129169}
0 commit comments