From b2e4a6506c8c3b0ae5fc46eb638a4195cc15b2f8 Mon Sep 17 00:00:00 2001 From: devrabie <30236112+devrabie@users.noreply.github.com> Date: Sat, 20 Jun 2026 19:54:16 +0000 Subject: [PATCH 1/3] feat: Support for Telegram Bot API 10.1 - Add support for Rich Messages: `RichMessage`, `RichText`, `RichBlock`. - Add endpoints `sendRichMessage` and `sendRichMessageDraft`. - Add `rich_message` to `Message` entity and `editMessageText` request. - Add Join Request Queries: `answerChatJoinRequestQuery` and `sendChatJoinRequestWebApp`. - Add `supports_join_request_queries` to `User` and `guard_bot` to `ChatFullInfo`. - Add Poll Media Link support: `Link` and `InputMediaLink`. - Add API 10.1 Arabic documentation and update changelog. --- API_10.1_FEATURES.md | 66 +++++++++++++++++++ CHANGELOG.md | 13 +++- src/Entities/ChatFullInfo.php | 2 + src/Entities/ChatJoinRequest.php | 1 + src/Entities/InputMedia/InputMediaLink.php | 17 +++++ .../InputRichMessageContent.php | 26 ++++++++ src/Entities/InputRichMessage.php | 25 +++++++ src/Entities/Link.php | 12 ---- src/Entities/Message.php | 2 + src/Entities/RichBlock/RichBlock.php | 36 ++++++++++ src/Entities/RichBlock/RichBlockAnchor.php | 12 ++++ src/Entities/RichBlock/RichBlockAnimation.php | 12 ++++ src/Entities/RichBlock/RichBlockAudio.php | 12 ++++ .../RichBlock/RichBlockBlockQuotation.php | 12 ++++ src/Entities/RichBlock/RichBlockCaption.php | 12 ++++ src/Entities/RichBlock/RichBlockCollage.php | 12 ++++ src/Entities/RichBlock/RichBlockDetails.php | 12 ++++ src/Entities/RichBlock/RichBlockDivider.php | 12 ++++ src/Entities/RichBlock/RichBlockFooter.php | 12 ++++ src/Entities/RichBlock/RichBlockList.php | 12 ++++ src/Entities/RichBlock/RichBlockListItem.php | 12 ++++ src/Entities/RichBlock/RichBlockMap.php | 12 ++++ .../RichBlockMathematicalExpression.php | 12 ++++ src/Entities/RichBlock/RichBlockParagraph.php | 12 ++++ src/Entities/RichBlock/RichBlockPhoto.php | 12 ++++ .../RichBlock/RichBlockPreformatted.php | 12 ++++ .../RichBlock/RichBlockPullQuotation.php | 12 ++++ .../RichBlock/RichBlockSectionHeading.php | 12 ++++ src/Entities/RichBlock/RichBlockSlideshow.php | 12 ++++ src/Entities/RichBlock/RichBlockTable.php | 12 ++++ src/Entities/RichBlock/RichBlockTableCell.php | 12 ++++ src/Entities/RichBlock/RichBlockThinking.php | 12 ++++ src/Entities/RichBlock/RichBlockVideo.php | 12 ++++ src/Entities/RichBlock/RichBlockVoiceNote.php | 12 ++++ src/Entities/RichMessage.php | 25 +++++++ src/Entities/RichText/RichText.php | 36 ++++++++++ src/Entities/RichText/RichTextAnchor.php | 12 ++++ src/Entities/RichText/RichTextAnchorLink.php | 12 ++++ .../RichText/RichTextBankCardNumber.php | 12 ++++ src/Entities/RichText/RichTextBold.php | 12 ++++ src/Entities/RichText/RichTextBotCommand.php | 12 ++++ src/Entities/RichText/RichTextCashtag.php | 12 ++++ src/Entities/RichText/RichTextCode.php | 12 ++++ src/Entities/RichText/RichTextCustomEmoji.php | 12 ++++ src/Entities/RichText/RichTextDateTime.php | 12 ++++ .../RichText/RichTextEmailAddress.php | 12 ++++ src/Entities/RichText/RichTextHashtag.php | 12 ++++ src/Entities/RichText/RichTextItalic.php | 12 ++++ src/Entities/RichText/RichTextMarked.php | 12 ++++ .../RichTextMathematicalExpression.php | 12 ++++ src/Entities/RichText/RichTextMention.php | 12 ++++ src/Entities/RichText/RichTextPhoneNumber.php | 12 ++++ src/Entities/RichText/RichTextReference.php | 12 ++++ .../RichText/RichTextReferenceLink.php | 12 ++++ src/Entities/RichText/RichTextSpoiler.php | 12 ++++ .../RichText/RichTextStrikethrough.php | 12 ++++ src/Entities/RichText/RichTextSubscript.php | 12 ++++ src/Entities/RichText/RichTextSuperscript.php | 12 ++++ src/Entities/RichText/RichTextTextMention.php | 12 ++++ src/Entities/RichText/RichTextUnderline.php | 12 ++++ src/Entities/RichText/RichTextUrl.php | 12 ++++ src/Entities/User.php | 1 + src/Request.php | 10 ++- 63 files changed, 845 insertions(+), 15 deletions(-) create mode 100644 API_10.1_FEATURES.md create mode 100644 src/Entities/InputMedia/InputMediaLink.php create mode 100644 src/Entities/InputMessageContent/InputRichMessageContent.php create mode 100644 src/Entities/InputRichMessage.php create mode 100644 src/Entities/RichBlock/RichBlock.php create mode 100644 src/Entities/RichBlock/RichBlockAnchor.php create mode 100644 src/Entities/RichBlock/RichBlockAnimation.php create mode 100644 src/Entities/RichBlock/RichBlockAudio.php create mode 100644 src/Entities/RichBlock/RichBlockBlockQuotation.php create mode 100644 src/Entities/RichBlock/RichBlockCaption.php create mode 100644 src/Entities/RichBlock/RichBlockCollage.php create mode 100644 src/Entities/RichBlock/RichBlockDetails.php create mode 100644 src/Entities/RichBlock/RichBlockDivider.php create mode 100644 src/Entities/RichBlock/RichBlockFooter.php create mode 100644 src/Entities/RichBlock/RichBlockList.php create mode 100644 src/Entities/RichBlock/RichBlockListItem.php create mode 100644 src/Entities/RichBlock/RichBlockMap.php create mode 100644 src/Entities/RichBlock/RichBlockMathematicalExpression.php create mode 100644 src/Entities/RichBlock/RichBlockParagraph.php create mode 100644 src/Entities/RichBlock/RichBlockPhoto.php create mode 100644 src/Entities/RichBlock/RichBlockPreformatted.php create mode 100644 src/Entities/RichBlock/RichBlockPullQuotation.php create mode 100644 src/Entities/RichBlock/RichBlockSectionHeading.php create mode 100644 src/Entities/RichBlock/RichBlockSlideshow.php create mode 100644 src/Entities/RichBlock/RichBlockTable.php create mode 100644 src/Entities/RichBlock/RichBlockTableCell.php create mode 100644 src/Entities/RichBlock/RichBlockThinking.php create mode 100644 src/Entities/RichBlock/RichBlockVideo.php create mode 100644 src/Entities/RichBlock/RichBlockVoiceNote.php create mode 100644 src/Entities/RichMessage.php create mode 100644 src/Entities/RichText/RichText.php create mode 100644 src/Entities/RichText/RichTextAnchor.php create mode 100644 src/Entities/RichText/RichTextAnchorLink.php create mode 100644 src/Entities/RichText/RichTextBankCardNumber.php create mode 100644 src/Entities/RichText/RichTextBold.php create mode 100644 src/Entities/RichText/RichTextBotCommand.php create mode 100644 src/Entities/RichText/RichTextCashtag.php create mode 100644 src/Entities/RichText/RichTextCode.php create mode 100644 src/Entities/RichText/RichTextCustomEmoji.php create mode 100644 src/Entities/RichText/RichTextDateTime.php create mode 100644 src/Entities/RichText/RichTextEmailAddress.php create mode 100644 src/Entities/RichText/RichTextHashtag.php create mode 100644 src/Entities/RichText/RichTextItalic.php create mode 100644 src/Entities/RichText/RichTextMarked.php create mode 100644 src/Entities/RichText/RichTextMathematicalExpression.php create mode 100644 src/Entities/RichText/RichTextMention.php create mode 100644 src/Entities/RichText/RichTextPhoneNumber.php create mode 100644 src/Entities/RichText/RichTextReference.php create mode 100644 src/Entities/RichText/RichTextReferenceLink.php create mode 100644 src/Entities/RichText/RichTextSpoiler.php create mode 100644 src/Entities/RichText/RichTextStrikethrough.php create mode 100644 src/Entities/RichText/RichTextSubscript.php create mode 100644 src/Entities/RichText/RichTextSuperscript.php create mode 100644 src/Entities/RichText/RichTextTextMention.php create mode 100644 src/Entities/RichText/RichTextUnderline.php create mode 100644 src/Entities/RichText/RichTextUrl.php diff --git a/API_10.1_FEATURES.md b/API_10.1_FEATURES.md new file mode 100644 index 00000000..a86f907c --- /dev/null +++ b/API_10.1_FEATURES.md @@ -0,0 +1,66 @@ +# ميزات تحديث Bot API 10.1 + +يدعم هذا التحديث ميزات الإصدار 10.1 من واجهة برمجة تطبيقات تيليجرام للبوتات (Telegram Bot API) الصادر في 11 يونيو 2026. + +## 1. الرسائل الغنية (Rich Messages) +تمت إضافة دعم للرسائل الغنية مما يتيح للبوتات إرسال نصوص منظمة وبث ردود تم إنشاؤها عبر الذكاء الاصطناعي مع تنسيقات غنية وسلسة. + +- **الكيانات الجديدة:** إضافة فئات تمثل تنسيقات النصوص الغنية (مثل `RichTextBold`، `RichTextItalic`، `RichTextUrl` والمزيد) وكتل الرسائل (مثل `RichBlockParagraph`، `RichBlockTable`، `RichBlockVideo` والمزيد). +- **إرسال رسائل غنية:** استخدام `Request::sendRichMessage` و `Request::sendRichMessageDraft`. + +**مثال تطبيقي:** +```php +use Longman\TelegramBot\Request; + +$response = Request::sendRichMessage([ + 'chat_id' => $chat_id, + 'rich_message' => [ + 'type' => 'rich_message', + 'blocks' => [ + [ + 'type' => 'rich_block_paragraph', + 'text' => [ + 'type' => 'rich_text_bold', + 'text' => 'مرحباً بك في ميزة الرسائل الغنية!' + ] + ] + ] + ] +]); +``` + +- **تعديل رسائل غنية:** يمكنك الآن تمرير `rich_message` إلى وظيفة `editMessageText` لتعديل الرسائل لتصبح رسائل غنية. + +## 2. استعلامات طلب الانضمام (Join Request Queries) +تم توفير دعم لاستعلامات طلب الانضمام التي تقدم تفاعلات متقدمة عند انضمام المستخدمين. + +- يمكن التحقق مما إذا كان المستخدم يدعم هذه الاستعلامات من خلال حقل `supports_join_request_queries` في كائن `User`. +- يمكن تحديد البوت الحارس للدردشة من خلال الحقل `guard_bot` في كائن `ChatFullInfo`. +- للرد على استعلام: +```php +use Longman\TelegramBot\Request; + +$result = Request::answerChatJoinRequestQuery([ + 'query_id' => $query_id, + 'text' => 'تمت الموافقة على طلبك بنجاح!' +]); +``` + +## 3. الوسائط المتصلة بالاستفتاءات (Poll Media) +تمت إضافة فئات جديدة مثل `Link` لدعم تضمين الروابط المباشرة في وسائط الاستفتاء (`PollMedia`). + +```php +use Longman\TelegramBot\Request; + +Request::sendPoll([ + 'chat_id' => $chat_id, + 'question' => 'ما رأيك في هذا الرابط؟', + 'options' => [['text' => 'ممتاز'], ['text' => 'جيد']], + 'media' => [ + 'type' => 'link', + 'url' => 'https://example.com' + ] +]); +``` + +تم تحديث المكتبة بالكامل لدعم هذه الكيانات والأساليب بطريقة سهلة ومدمجة. diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ee3cf44..0130fa50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,19 @@ Exclamation symbols (:exclamation:) note something of importance e.g. breaking c ## [1.2.0] - 2026-03-01 ### Notes - [:ledger: View file changes][1.2.0] +- [API 10.1 Features Documentation](API_10.1_FEATURES.md) - [API 9.4 and 9.5 Features Documentation](API_9.4_9.5_FEATURES.md) - [API 9.3 Features Documentation](API_9.3_FEATURES.md) -- Support for Telegram Bot API 7.4 through 9.5. -### Added +- Support for Telegram Bot API 7.4 through 10.1. +### Added +- **Bot API 10.1:** + - Support for Rich Messages via `RichMessage`, `RichText`, and `RichBlock`. + - Added methods `sendRichMessage` and `sendRichMessageDraft`. + - Support for `rich_message` in `editMessageText`. + - Added support for Join Request Queries: `answerChatJoinRequestQuery` and `sendChatJoinRequestWebApp`. + - Added `supports_join_request_queries` to `User`. + - Added `guard_bot` to `ChatFullInfo`. + - Added `Link` and `InputMediaLink` for polls. - **Bot API 9.5:** - New `MessageEntity` type `date_time` with `unix_time` and `date_time_format`. - Support for `sendMessageDraft` for all bots. diff --git a/src/Entities/ChatFullInfo.php b/src/Entities/ChatFullInfo.php index 46c9d552..2c6ddfb8 100644 --- a/src/Entities/ChatFullInfo.php +++ b/src/Entities/ChatFullInfo.php @@ -26,6 +26,7 @@ * @method int getUnrestrictBoostCount() Optional. For supergroups, the minimum number of boosts that a non-administrator user needs to add in order to ignore slow mode and chat permissions. * @method int getMessageAutoDeleteTime() Optional. The time after which all messages sent to the chat will be automatically deleted; in seconds. Returned only in getChat. * @method bool getHasAggressiveAntiSpamEnabled() Optional. True, if aggressive anti-spam checks are enabled in the supergroup. The field is only available to chat administrators. + * @method User getGuardBot() Optional. The bot that is serving as the guard bot for the chat. Returned only in getChat. * @method bool getHasHiddenMembers() Optional. True, if non-administrators can only get the list of bots and administrators in the chat. Returned only in getChat. * @method bool getHasProtectedContent() Optional. True, if messages from the chat can't be forwarded to other chats. Returned only in getChat. * @method bool getHasVisibleHistory() Optional. True, if new chat members will have access to old messages; available only to chat administrators. @@ -55,6 +56,7 @@ protected function subEntities(): array 'rating' => UserRating::class, 'unique_gift_colors' => UniqueGiftColors::class, 'accepted_gift_types' => AcceptedGiftTypes::class, + 'guard_bot' => User::class, 'first_profile_audio' => Audio::class, ]); } diff --git a/src/Entities/ChatJoinRequest.php b/src/Entities/ChatJoinRequest.php index 5d2c3433..894e91a7 100644 --- a/src/Entities/ChatJoinRequest.php +++ b/src/Entities/ChatJoinRequest.php @@ -13,6 +13,7 @@ * @method User getFrom() User that sent the join request * @method int getUserChatId() Identifier of a private chat with the user who sent the join request. * @method int getDate() Date the request was sent in Unix time + * @method string getQueryId() Optional. Unique identifier for the join request query. * @method string getBio() Optional. Bio of the user. * @method ChatInviteLink getInviteLink() Optional. Chat invite link that was used by the user to send the join request */ diff --git a/src/Entities/InputMedia/InputMediaLink.php b/src/Entities/InputMedia/InputMediaLink.php new file mode 100644 index 00000000..da17ec14 --- /dev/null +++ b/src/Entities/InputMedia/InputMediaLink.php @@ -0,0 +1,17 @@ + [RichBlock::class], + ]; + } +} diff --git a/src/Entities/InputRichMessage.php b/src/Entities/InputRichMessage.php new file mode 100644 index 00000000..f1fa0311 --- /dev/null +++ b/src/Entities/InputRichMessage.php @@ -0,0 +1,25 @@ + [RichBlock::class], + ]; + } +} diff --git a/src/Entities/Link.php b/src/Entities/Link.php index 649de229..dd48bb45 100644 --- a/src/Entities/Link.php +++ b/src/Entities/Link.php @@ -1,26 +1,14 @@ - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - namespace Longman\TelegramBot\Entities; /** * Class Link * - * This object represents a link. - * * @link https://core.telegram.org/bots/api#link * * @method string getUrl() URL of the link */ class Link extends Entity { - } diff --git a/src/Entities/Message.php b/src/Entities/Message.php index f8641430..ced0bb52 100644 --- a/src/Entities/Message.php +++ b/src/Entities/Message.php @@ -119,6 +119,7 @@ * @method VideoChatEnded getVideoChatEnded() Optional. Service message: voice chat ended * @method VideoChatParticipantsInvited getVideoChatParticipantsInvited() Optional. Service message: new participants invited to a voice chat * @method WebAppData getWebAppData() Optional. Service message: data sent by a Web App + * @method RichMessage getRichMessage() Optional. Rich formatted message. * @method InlineKeyboard getReplyMarkup() Optional. Inline keyboard attached to the message. login_url buttons are represented as ordinary url buttons. * @method string getBusinessConnectionId() Optional. Unique identifier of the business connection from which the message was received. If non-empty, the message is business_message. * @method User getSenderBusinessBot() Optional. The bot that actually sent the message on behalf of the business account. Available only for outgoing messages sent on behalf of the business account. @@ -217,6 +218,7 @@ protected function subEntities(): array 'video_chat_ended' => VideoChatEnded::class, 'video_chat_participants_invited' => VideoChatParticipantsInvited::class, 'web_app_data' => WebAppData::class, + 'rich_message' => RichMessage::class, 'reply_markup' => InlineKeyboard::class, 'chat_background_set' => ChatBackground::class, 'checklist' => Checklist::class, diff --git a/src/Entities/RichBlock/RichBlock.php b/src/Entities/RichBlock/RichBlock.php new file mode 100644 index 00000000..343fdf57 --- /dev/null +++ b/src/Entities/RichBlock/RichBlock.php @@ -0,0 +1,36 @@ + [RichBlock::class], + ]; + } +} diff --git a/src/Entities/RichText/RichText.php b/src/Entities/RichText/RichText.php new file mode 100644 index 00000000..db2d9568 --- /dev/null +++ b/src/Entities/RichText/RichText.php @@ -0,0 +1,36 @@ + Date: Tue, 23 Jun 2026 13:48:47 +0000 Subject: [PATCH 2/3] feat: Support for Telegram Bot API 10.1 with Rich Messages HTML Formatting - Added `API_10.1_FEATURES.md` detailing new HTML formatting for Rich Messages (``, ``, ``, `
`). - Updated `CHANGELOG.md` to reflect instructions for new HTML tags. - Verified changes with unit tests and code linting. --- API_10.1_FEATURES.md | 42 ++++++++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 1 + 2 files changed, 43 insertions(+) diff --git a/API_10.1_FEATURES.md b/API_10.1_FEATURES.md index a86f907c..0ea0ab43 100644 --- a/API_10.1_FEATURES.md +++ b/API_10.1_FEATURES.md @@ -64,3 +64,45 @@ Request::sendPoll([ ``` تم تحديث المكتبة بالكامل لدعم هذه الكيانات والأساليب بطريقة سهلة ومدمجة. + +## 4. تنسيق الرسائل عبر HTML في الرسائل الغنية (HTML Formatting) +تسمح تيليجرام أيضاً بتنسيق الرسائل الغنية باستخدام `HTML` دون الحاجة لتعريف هيكل `RichBlock` بالكامل عبر المصفوفات المعقدة. تم إضافة علامات (Tags) جديدة لدعم الرسائل الغنية. + +**التنسيقات الجديدة المدعومة:** +- `` أو ``: لتمييز النص (Marked). +- ``: للنصوص السفلية (Subscript). +- ``: للنصوص العلوية (Superscript). +- `
` و ``: لإضافة كتل التفاصيل القابلة للطي (Details Block). +- `
` مع دعم `expandable`: للاقتباسات القابلة للتوسيع. + +**كيفية كتابتها (مثال):** +```php +use Longman\TelegramBot\Request; + +$htmlText = ' +نص عريض +نص مميز +H2O و E=mc2 +
+ اضغط لمعرفة المزيد + هذا النص سيكون مخفياً حتى يقوم المستخدم بتوسيعه. +
+'; + +$response = Request::sendRichMessage([ + 'chat_id' => $chat_id, + 'rich_message' => [ + 'type' => 'rich_message', + 'blocks' => [ + [ + 'type' => 'rich_block_paragraph', + 'text' => [ + 'type' => 'rich_text_marked', + 'text' => 'يمكنك استخدام المصفوفات، أو تمرير HTML مباشرة حسب الطريقة التي تفضلها في دوال الإرسال التي تدعم parse_mode.' + ] + ] + ] + ] +]); +``` +*ملاحظة: يمكنك إرسال الرسائل بتنسيق `HTML` العادي باستخدام `sendMessage` مع تحديد `parse_mode => 'HTML'` إذا لم ترغب في استخدام كائن `rich_message` بالكامل، وستقوم تيليجرام بتفسير العلامات الجديدة.* diff --git a/CHANGELOG.md b/CHANGELOG.md index 0130fa50..e0d17b54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ Exclamation symbols (:exclamation:) note something of importance e.g. breaking c - Support for Rich Messages via `RichMessage`, `RichText`, and `RichBlock`. - Added methods `sendRichMessage` and `sendRichMessageDraft`. - Support for `rich_message` in `editMessageText`. + - Added instructions for HTML formatting in Rich Messages (tags like ``, ``, ``). - Added support for Join Request Queries: `answerChatJoinRequestQuery` and `sendChatJoinRequestWebApp`. - Added `supports_join_request_queries` to `User`. - Added `guard_bot` to `ChatFullInfo`. From 41a9419939706f2ba2cf8bc8e52a1ec490098afe Mon Sep 17 00:00:00 2001 From: devrabie <30236112+devrabie@users.noreply.github.com> Date: Wed, 24 Jun 2026 12:54:32 +0000 Subject: [PATCH 3/3] feat: Support for Telegram Bot API 10.1 with Rich Messages Formatting - Add support for Rich Messages: `RichMessage`, `RichText`, `RichBlock`. - Organized `RichText` and `RichBlock` subclasses into dedicated subdirectories. - Updated `subEntities()` for new subclasses to support accurate nested parsing. - Added endpoints `sendRichMessage` and `sendRichMessageDraft`. - Added `rich_message` to `Message` entity and `editMessageText` request. - Added Join Request Queries: `answerChatJoinRequestQuery` and `sendChatJoinRequestWebApp`. - Added `supports_join_request_queries` to `User` and `guard_bot` to `ChatFullInfo`. - Added Poll Media Link support: `Link` and `InputMediaLink`. - Created comprehensive `API_10.1_FEATURES.md` documentation explaining HTML/Markdown formatting for Rich Messages. - Updated `CHANGELOG.md` with new features and HTML formatting tag support. --- API_10.1_FEATURES.md | 72 +++++++++++++------ src/Entities/Link.php | 9 +++ src/Entities/RichBlock/RichBlockAnimation.php | 11 +++ src/Entities/RichBlock/RichBlockAudio.php | 11 +++ .../RichBlock/RichBlockBlockQuotation.php | 11 +++ src/Entities/RichBlock/RichBlockCaption.php | 11 +++ src/Entities/RichBlock/RichBlockCollage.php | 11 +++ src/Entities/RichBlock/RichBlockDetails.php | 11 +++ src/Entities/RichBlock/RichBlockFooter.php | 10 +++ src/Entities/RichBlock/RichBlockList.php | 10 +++ src/Entities/RichBlock/RichBlockListItem.php | 10 +++ src/Entities/RichBlock/RichBlockMap.php | 11 +++ src/Entities/RichBlock/RichBlockParagraph.php | 10 +++ src/Entities/RichBlock/RichBlockPhoto.php | 11 +++ .../RichBlock/RichBlockPreformatted.php | 10 +++ .../RichBlock/RichBlockPullQuotation.php | 11 +++ .../RichBlock/RichBlockSectionHeading.php | 10 +++ src/Entities/RichBlock/RichBlockSlideshow.php | 11 +++ src/Entities/RichBlock/RichBlockTable.php | 10 +++ src/Entities/RichBlock/RichBlockTableCell.php | 10 +++ src/Entities/RichBlock/RichBlockThinking.php | 10 +++ src/Entities/RichBlock/RichBlockVideo.php | 11 +++ src/Entities/RichBlock/RichBlockVoiceNote.php | 11 +++ src/Entities/RichText/RichTextAnchorLink.php | 10 +++ .../RichText/RichTextBankCardNumber.php | 10 +++ src/Entities/RichText/RichTextBold.php | 10 +++ src/Entities/RichText/RichTextBotCommand.php | 10 +++ src/Entities/RichText/RichTextCashtag.php | 10 +++ src/Entities/RichText/RichTextCode.php | 10 +++ src/Entities/RichText/RichTextDateTime.php | 10 +++ .../RichText/RichTextEmailAddress.php | 10 +++ src/Entities/RichText/RichTextHashtag.php | 10 +++ src/Entities/RichText/RichTextItalic.php | 10 +++ src/Entities/RichText/RichTextMarked.php | 10 +++ src/Entities/RichText/RichTextMention.php | 10 +++ src/Entities/RichText/RichTextPhoneNumber.php | 10 +++ src/Entities/RichText/RichTextReference.php | 10 +++ .../RichText/RichTextReferenceLink.php | 10 +++ src/Entities/RichText/RichTextSpoiler.php | 10 +++ .../RichText/RichTextStrikethrough.php | 10 +++ src/Entities/RichText/RichTextSubscript.php | 10 +++ src/Entities/RichText/RichTextSuperscript.php | 10 +++ src/Entities/RichText/RichTextTextMention.php | 11 +++ src/Entities/RichText/RichTextUnderline.php | 10 +++ src/Entities/RichText/RichTextUrl.php | 10 +++ 45 files changed, 503 insertions(+), 21 deletions(-) diff --git a/API_10.1_FEATURES.md b/API_10.1_FEATURES.md index 0ea0ab43..87cf0d64 100644 --- a/API_10.1_FEATURES.md +++ b/API_10.1_FEATURES.md @@ -5,22 +5,36 @@ ## 1. الرسائل الغنية (Rich Messages) تمت إضافة دعم للرسائل الغنية مما يتيح للبوتات إرسال نصوص منظمة وبث ردود تم إنشاؤها عبر الذكاء الاصطناعي مع تنسيقات غنية وسلسة. -- **الكيانات الجديدة:** إضافة فئات تمثل تنسيقات النصوص الغنية (مثل `RichTextBold`، `RichTextItalic`، `RichTextUrl` والمزيد) وكتل الرسائل (مثل `RichBlockParagraph`، `RichBlockTable`، `RichBlockVideo` والمزيد). +- **الكيانات الجديدة للنصوص الغنية (Rich Text):** + - `RichTextBold`، `RichTextItalic`، `RichTextUnderline`، `RichTextStrikethrough`، `RichTextSpoiler` + - `RichTextDateTime`، `RichTextTextMention`، `RichTextSubscript`، `RichTextSuperscript` + - `RichTextMarked`، `RichTextCode`، `RichTextCustomEmoji`، `RichTextMathematicalExpression` + - `RichTextUrl`، `RichTextEmailAddress`، `RichTextPhoneNumber`، `RichTextBankCardNumber` + - `RichTextMention`، `RichTextHashtag`، `RichTextCashtag`، `RichTextBotCommand` + - `RichTextAnchor`، `RichTextAnchorLink`، `RichTextReference`، `RichTextReferenceLink` + +- **الكيانات الجديدة للكتل الغنية (Rich Block):** + - `RichBlockCaption`، `RichBlockTableCell`، `RichBlockListItem`، `RichBlockParagraph` + - `RichBlockSectionHeading`، `RichBlockPreformatted`، `RichBlockFooter`، `RichBlockDivider` + - `RichBlockMathematicalExpression`، `RichBlockAnchor`، `RichBlockList`، `RichBlockBlockQuotation` + - `RichBlockPullQuotation`، `RichBlockCollage`، `RichBlockSlideshow`، `RichBlockTable` + - `RichBlockDetails`، `RichBlockMap`، `RichBlockAnimation`، `RichBlockAudio` + - `RichBlockPhoto`، `RichBlockVideo`، `RichBlockVoiceNote`، `RichBlockThinking` + - **إرسال رسائل غنية:** استخدام `Request::sendRichMessage` و `Request::sendRichMessageDraft`. -**مثال تطبيقي:** +**مثال تطبيقي (هيكلي):** ```php use Longman\TelegramBot\Request; $response = Request::sendRichMessage([ 'chat_id' => $chat_id, 'rich_message' => [ - 'type' => 'rich_message', 'blocks' => [ [ - 'type' => 'rich_block_paragraph', + 'type' => 'paragraph', 'text' => [ - 'type' => 'rich_text_bold', + 'type' => 'bold', 'text' => 'مرحباً بك في ميزة الرسائل الغنية!' ] ] @@ -63,10 +77,8 @@ Request::sendPoll([ ]); ``` -تم تحديث المكتبة بالكامل لدعم هذه الكيانات والأساليب بطريقة سهلة ومدمجة. - -## 4. تنسيق الرسائل عبر HTML في الرسائل الغنية (HTML Formatting) -تسمح تيليجرام أيضاً بتنسيق الرسائل الغنية باستخدام `HTML` دون الحاجة لتعريف هيكل `RichBlock` بالكامل عبر المصفوفات المعقدة. تم إضافة علامات (Tags) جديدة لدعم الرسائل الغنية. +## 4. تنسيق الرسائل عبر HTML و Markdown في الرسائل الغنية (Formatting) +تسمح تيليجرام أيضاً بتنسيق الرسائل الغنية باستخدام `HTML` أو `Markdown` دون الحاجة لتعريف هيكل `RichBlock` بالكامل عبر المصفوفات المعقدة. **التنسيقات الجديدة المدعومة:** - `` أو ``: لتمييز النص (Marked). @@ -74,12 +86,17 @@ Request::sendPoll([ - ``: للنصوص العلوية (Superscript). - `
` و ``: لإضافة كتل التفاصيل القابلة للطي (Details Block). - `
` مع دعم `expandable`: للاقتباسات القابلة للتوسيع. +- ``: للمعادلات الرياضية. +- `` و ``: لإنشاء كولاج وشرائح من الصور/الفيديوهات. +- ``: لإدراج خريطة. +- `Thinking...`: حصرية للاستخدام مع `sendRichMessageDraft`. -**كيفية كتابتها (مثال):** +**كيفية كتابتها (مثال HTML):** ```php use Longman\TelegramBot\Request; $htmlText = ' +

عنوان رئيسي

نص عريض نص مميز H2O و E=mc2 @@ -87,22 +104,35 @@ H2O و E=mc2 اضغط لمعرفة المزيد هذا النص سيكون مخفياً حتى يقوم المستخدم بتوسيعه.
+x^2 + y^2 '; $response = Request::sendRichMessage([ 'chat_id' => $chat_id, 'rich_message' => [ - 'type' => 'rich_message', - 'blocks' => [ - [ - 'type' => 'rich_block_paragraph', - 'text' => [ - 'type' => 'rich_text_marked', - 'text' => 'يمكنك استخدام المصفوفات، أو تمرير HTML مباشرة حسب الطريقة التي تفضلها في دوال الإرسال التي تدعم parse_mode.' - ] - ] - ] + 'html' => $htmlText ] ]); ``` -*ملاحظة: يمكنك إرسال الرسائل بتنسيق `HTML` العادي باستخدام `sendMessage` مع تحديد `parse_mode => 'HTML'` إذا لم ترغب في استخدام كائن `rich_message` بالكامل، وستقوم تيليجرام بتفسير العلامات الجديدة.* + +**كيفية كتابتها (مثال Markdown):** +```php +use Longman\TelegramBot\Request; + +$markdownText = ' +# عنوان رئيسي +**نص عريض** +==نص مميز== +H~2~O و E=mc^2^ +$$E=mc^2$$ +'; + +$response = Request::sendRichMessage([ + 'chat_id' => $chat_id, + 'rich_message' => [ + 'markdown' => $markdownText + ] +]); +``` + +تم تحديث المكتبة بالكامل لدعم هذه الكيانات والأساليب بطريقة سهلة ومدمجة. diff --git a/src/Entities/Link.php b/src/Entities/Link.php index dd48bb45..70b2eb55 100644 --- a/src/Entities/Link.php +++ b/src/Entities/Link.php @@ -1,5 +1,14 @@ + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + namespace Longman\TelegramBot\Entities; /** diff --git a/src/Entities/RichBlock/RichBlockAnimation.php b/src/Entities/RichBlock/RichBlockAnimation.php index ce3ccda8..dde0e037 100644 --- a/src/Entities/RichBlock/RichBlockAnimation.php +++ b/src/Entities/RichBlock/RichBlockAnimation.php @@ -9,4 +9,15 @@ */ class RichBlockAnimation extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'caption' => RichBlockCaption::class, + 'animation' => \Longman\TelegramBot\Entities\Animation::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockAudio.php b/src/Entities/RichBlock/RichBlockAudio.php index aa8aec78..52db57f5 100644 --- a/src/Entities/RichBlock/RichBlockAudio.php +++ b/src/Entities/RichBlock/RichBlockAudio.php @@ -9,4 +9,15 @@ */ class RichBlockAudio extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'caption' => RichBlockCaption::class, + 'audio' => \Longman\TelegramBot\Entities\Audio::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockBlockQuotation.php b/src/Entities/RichBlock/RichBlockBlockQuotation.php index 04b14317..ec2028ae 100644 --- a/src/Entities/RichBlock/RichBlockBlockQuotation.php +++ b/src/Entities/RichBlock/RichBlockBlockQuotation.php @@ -9,4 +9,15 @@ */ class RichBlockBlockQuotation extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'credit' => \Longman\TelegramBot\Entities\RichText\RichText::class, + 'blocks' => [RichBlock::class], + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockCaption.php b/src/Entities/RichBlock/RichBlockCaption.php index f5384cb7..fff1e183 100644 --- a/src/Entities/RichBlock/RichBlockCaption.php +++ b/src/Entities/RichBlock/RichBlockCaption.php @@ -9,4 +9,15 @@ */ class RichBlockCaption extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => \Longman\TelegramBot\Entities\RichText\RichText::class, + 'credit' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockCollage.php b/src/Entities/RichBlock/RichBlockCollage.php index 4a8c570f..c2b617ab 100644 --- a/src/Entities/RichBlock/RichBlockCollage.php +++ b/src/Entities/RichBlock/RichBlockCollage.php @@ -9,4 +9,15 @@ */ class RichBlockCollage extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'blocks' => [RichBlock::class], + 'caption' => RichBlockCaption::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockDetails.php b/src/Entities/RichBlock/RichBlockDetails.php index 03a4d720..0f3ab9ba 100644 --- a/src/Entities/RichBlock/RichBlockDetails.php +++ b/src/Entities/RichBlock/RichBlockDetails.php @@ -9,4 +9,15 @@ */ class RichBlockDetails extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'blocks' => [RichBlock::class], + 'summary' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockFooter.php b/src/Entities/RichBlock/RichBlockFooter.php index 3671beae..58c069be 100644 --- a/src/Entities/RichBlock/RichBlockFooter.php +++ b/src/Entities/RichBlock/RichBlockFooter.php @@ -9,4 +9,14 @@ */ class RichBlockFooter extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockList.php b/src/Entities/RichBlock/RichBlockList.php index 36b40737..ed269ca4 100644 --- a/src/Entities/RichBlock/RichBlockList.php +++ b/src/Entities/RichBlock/RichBlockList.php @@ -9,4 +9,14 @@ */ class RichBlockList extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'blocks' => [RichBlock::class], + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockListItem.php b/src/Entities/RichBlock/RichBlockListItem.php index d17528ed..c82422fb 100644 --- a/src/Entities/RichBlock/RichBlockListItem.php +++ b/src/Entities/RichBlock/RichBlockListItem.php @@ -9,4 +9,14 @@ */ class RichBlockListItem extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'blocks' => [RichBlock::class], + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockMap.php b/src/Entities/RichBlock/RichBlockMap.php index e10c91cd..24ea2034 100644 --- a/src/Entities/RichBlock/RichBlockMap.php +++ b/src/Entities/RichBlock/RichBlockMap.php @@ -9,4 +9,15 @@ */ class RichBlockMap extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'caption' => RichBlockCaption::class, + 'location' => \Longman\TelegramBot\Entities\Location::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockParagraph.php b/src/Entities/RichBlock/RichBlockParagraph.php index ef3e7c41..3301b011 100644 --- a/src/Entities/RichBlock/RichBlockParagraph.php +++ b/src/Entities/RichBlock/RichBlockParagraph.php @@ -9,4 +9,14 @@ */ class RichBlockParagraph extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockPhoto.php b/src/Entities/RichBlock/RichBlockPhoto.php index 79deb3d7..c46270bc 100644 --- a/src/Entities/RichBlock/RichBlockPhoto.php +++ b/src/Entities/RichBlock/RichBlockPhoto.php @@ -9,4 +9,15 @@ */ class RichBlockPhoto extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'caption' => RichBlockCaption::class, + 'photo' => [\Longman\TelegramBot\Entities\PhotoSize::class], + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockPreformatted.php b/src/Entities/RichBlock/RichBlockPreformatted.php index 1906e3e7..cbd6bfe8 100644 --- a/src/Entities/RichBlock/RichBlockPreformatted.php +++ b/src/Entities/RichBlock/RichBlockPreformatted.php @@ -9,4 +9,14 @@ */ class RichBlockPreformatted extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockPullQuotation.php b/src/Entities/RichBlock/RichBlockPullQuotation.php index ad9f29ed..0824af71 100644 --- a/src/Entities/RichBlock/RichBlockPullQuotation.php +++ b/src/Entities/RichBlock/RichBlockPullQuotation.php @@ -9,4 +9,15 @@ */ class RichBlockPullQuotation extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => \Longman\TelegramBot\Entities\RichText\RichText::class, + 'credit' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockSectionHeading.php b/src/Entities/RichBlock/RichBlockSectionHeading.php index c8ffe406..febe713c 100644 --- a/src/Entities/RichBlock/RichBlockSectionHeading.php +++ b/src/Entities/RichBlock/RichBlockSectionHeading.php @@ -9,4 +9,14 @@ */ class RichBlockSectionHeading extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockSlideshow.php b/src/Entities/RichBlock/RichBlockSlideshow.php index 2ff7bb16..c1bdcd0a 100644 --- a/src/Entities/RichBlock/RichBlockSlideshow.php +++ b/src/Entities/RichBlock/RichBlockSlideshow.php @@ -9,4 +9,15 @@ */ class RichBlockSlideshow extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'blocks' => [RichBlock::class], + 'caption' => RichBlockCaption::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockTable.php b/src/Entities/RichBlock/RichBlockTable.php index bcc139b8..ab131f58 100644 --- a/src/Entities/RichBlock/RichBlockTable.php +++ b/src/Entities/RichBlock/RichBlockTable.php @@ -9,4 +9,14 @@ */ class RichBlockTable extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'caption' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockTableCell.php b/src/Entities/RichBlock/RichBlockTableCell.php index 8b8e9ab3..c5d78a36 100644 --- a/src/Entities/RichBlock/RichBlockTableCell.php +++ b/src/Entities/RichBlock/RichBlockTableCell.php @@ -9,4 +9,14 @@ */ class RichBlockTableCell extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockThinking.php b/src/Entities/RichBlock/RichBlockThinking.php index 1fecea61..ad3ce750 100644 --- a/src/Entities/RichBlock/RichBlockThinking.php +++ b/src/Entities/RichBlock/RichBlockThinking.php @@ -9,4 +9,14 @@ */ class RichBlockThinking extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => \Longman\TelegramBot\Entities\RichText\RichText::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockVideo.php b/src/Entities/RichBlock/RichBlockVideo.php index 826e3fff..a447b2bf 100644 --- a/src/Entities/RichBlock/RichBlockVideo.php +++ b/src/Entities/RichBlock/RichBlockVideo.php @@ -9,4 +9,15 @@ */ class RichBlockVideo extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'caption' => RichBlockCaption::class, + 'video' => \Longman\TelegramBot\Entities\Video::class, + ]; + } } diff --git a/src/Entities/RichBlock/RichBlockVoiceNote.php b/src/Entities/RichBlock/RichBlockVoiceNote.php index 623fe909..558cefe7 100644 --- a/src/Entities/RichBlock/RichBlockVoiceNote.php +++ b/src/Entities/RichBlock/RichBlockVoiceNote.php @@ -9,4 +9,15 @@ */ class RichBlockVoiceNote extends RichBlock { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'caption' => RichBlockCaption::class, + 'voice_note' => \Longman\TelegramBot\Entities\Voice::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextAnchorLink.php b/src/Entities/RichText/RichTextAnchorLink.php index 843c232b..3450ca9a 100644 --- a/src/Entities/RichText/RichTextAnchorLink.php +++ b/src/Entities/RichText/RichTextAnchorLink.php @@ -9,4 +9,14 @@ */ class RichTextAnchorLink extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextBankCardNumber.php b/src/Entities/RichText/RichTextBankCardNumber.php index 833f2707..135953ba 100644 --- a/src/Entities/RichText/RichTextBankCardNumber.php +++ b/src/Entities/RichText/RichTextBankCardNumber.php @@ -9,4 +9,14 @@ */ class RichTextBankCardNumber extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextBold.php b/src/Entities/RichText/RichTextBold.php index 18cad33c..430abb7a 100644 --- a/src/Entities/RichText/RichTextBold.php +++ b/src/Entities/RichText/RichTextBold.php @@ -9,4 +9,14 @@ */ class RichTextBold extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextBotCommand.php b/src/Entities/RichText/RichTextBotCommand.php index b11cf03d..cd943cbf 100644 --- a/src/Entities/RichText/RichTextBotCommand.php +++ b/src/Entities/RichText/RichTextBotCommand.php @@ -9,4 +9,14 @@ */ class RichTextBotCommand extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextCashtag.php b/src/Entities/RichText/RichTextCashtag.php index cdcdd59f..63a30c51 100644 --- a/src/Entities/RichText/RichTextCashtag.php +++ b/src/Entities/RichText/RichTextCashtag.php @@ -9,4 +9,14 @@ */ class RichTextCashtag extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextCode.php b/src/Entities/RichText/RichTextCode.php index 0741462c..3c46c304 100644 --- a/src/Entities/RichText/RichTextCode.php +++ b/src/Entities/RichText/RichTextCode.php @@ -9,4 +9,14 @@ */ class RichTextCode extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextDateTime.php b/src/Entities/RichText/RichTextDateTime.php index 688bafe4..c37594a6 100644 --- a/src/Entities/RichText/RichTextDateTime.php +++ b/src/Entities/RichText/RichTextDateTime.php @@ -9,4 +9,14 @@ */ class RichTextDateTime extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextEmailAddress.php b/src/Entities/RichText/RichTextEmailAddress.php index 1fcd89fc..0515395a 100644 --- a/src/Entities/RichText/RichTextEmailAddress.php +++ b/src/Entities/RichText/RichTextEmailAddress.php @@ -9,4 +9,14 @@ */ class RichTextEmailAddress extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextHashtag.php b/src/Entities/RichText/RichTextHashtag.php index 016d8310..34c27065 100644 --- a/src/Entities/RichText/RichTextHashtag.php +++ b/src/Entities/RichText/RichTextHashtag.php @@ -9,4 +9,14 @@ */ class RichTextHashtag extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextItalic.php b/src/Entities/RichText/RichTextItalic.php index aa592810..df20bc95 100644 --- a/src/Entities/RichText/RichTextItalic.php +++ b/src/Entities/RichText/RichTextItalic.php @@ -9,4 +9,14 @@ */ class RichTextItalic extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextMarked.php b/src/Entities/RichText/RichTextMarked.php index c937551d..ca9dc037 100644 --- a/src/Entities/RichText/RichTextMarked.php +++ b/src/Entities/RichText/RichTextMarked.php @@ -9,4 +9,14 @@ */ class RichTextMarked extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextMention.php b/src/Entities/RichText/RichTextMention.php index 8d8b01fb..e3cebc5a 100644 --- a/src/Entities/RichText/RichTextMention.php +++ b/src/Entities/RichText/RichTextMention.php @@ -9,4 +9,14 @@ */ class RichTextMention extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextPhoneNumber.php b/src/Entities/RichText/RichTextPhoneNumber.php index aa0b7eed..87146dba 100644 --- a/src/Entities/RichText/RichTextPhoneNumber.php +++ b/src/Entities/RichText/RichTextPhoneNumber.php @@ -9,4 +9,14 @@ */ class RichTextPhoneNumber extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextReference.php b/src/Entities/RichText/RichTextReference.php index bd0ea2c2..ca782e22 100644 --- a/src/Entities/RichText/RichTextReference.php +++ b/src/Entities/RichText/RichTextReference.php @@ -9,4 +9,14 @@ */ class RichTextReference extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextReferenceLink.php b/src/Entities/RichText/RichTextReferenceLink.php index 58fa3caa..34f80fa5 100644 --- a/src/Entities/RichText/RichTextReferenceLink.php +++ b/src/Entities/RichText/RichTextReferenceLink.php @@ -9,4 +9,14 @@ */ class RichTextReferenceLink extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextSpoiler.php b/src/Entities/RichText/RichTextSpoiler.php index f4b5b370..bd9b6173 100644 --- a/src/Entities/RichText/RichTextSpoiler.php +++ b/src/Entities/RichText/RichTextSpoiler.php @@ -9,4 +9,14 @@ */ class RichTextSpoiler extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextStrikethrough.php b/src/Entities/RichText/RichTextStrikethrough.php index 608a4532..395c144d 100644 --- a/src/Entities/RichText/RichTextStrikethrough.php +++ b/src/Entities/RichText/RichTextStrikethrough.php @@ -9,4 +9,14 @@ */ class RichTextStrikethrough extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextSubscript.php b/src/Entities/RichText/RichTextSubscript.php index a8698016..b7b1d358 100644 --- a/src/Entities/RichText/RichTextSubscript.php +++ b/src/Entities/RichText/RichTextSubscript.php @@ -9,4 +9,14 @@ */ class RichTextSubscript extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextSuperscript.php b/src/Entities/RichText/RichTextSuperscript.php index ae102b46..98e18055 100644 --- a/src/Entities/RichText/RichTextSuperscript.php +++ b/src/Entities/RichText/RichTextSuperscript.php @@ -9,4 +9,14 @@ */ class RichTextSuperscript extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextTextMention.php b/src/Entities/RichText/RichTextTextMention.php index 54575c30..47f7a30c 100644 --- a/src/Entities/RichText/RichTextTextMention.php +++ b/src/Entities/RichText/RichTextTextMention.php @@ -9,4 +9,15 @@ */ class RichTextTextMention extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + 'user' => \Longman\TelegramBot\Entities\User::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextUnderline.php b/src/Entities/RichText/RichTextUnderline.php index f24109a6..35cfb26b 100644 --- a/src/Entities/RichText/RichTextUnderline.php +++ b/src/Entities/RichText/RichTextUnderline.php @@ -9,4 +9,14 @@ */ class RichTextUnderline extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } } diff --git a/src/Entities/RichText/RichTextUrl.php b/src/Entities/RichText/RichTextUrl.php index 68e74a05..717f5950 100644 --- a/src/Entities/RichText/RichTextUrl.php +++ b/src/Entities/RichText/RichTextUrl.php @@ -9,4 +9,14 @@ */ class RichTextUrl extends RichText { + + /** + * {@inheritdoc} + */ + protected function subEntities(): array + { + return [ + 'text' => RichText::class, + ]; + } }