diff --git a/README.md b/README.md
index 0a227de7..4301dc4a 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+
+
The development of the project is currently on hold until further notice. We will provide updates as soon as they become available.
PHP Telegram Bot
diff --git a/src/DB.php b/src/DB.php
index 487ea7ff..dd10b870 100644
--- a/src/DB.php
+++ b/src/DB.php
@@ -21,6 +21,10 @@
use Longman\TelegramBot\Entities\ChosenInlineResult;
use Longman\TelegramBot\Entities\InlineQuery;
use Longman\TelegramBot\Entities\Message;
+use Longman\TelegramBot\Entities\MessageOrigin\MessageOriginChannel;
+use Longman\TelegramBot\Entities\MessageOrigin\MessageOriginChat;
+use Longman\TelegramBot\Entities\MessageOrigin\MessageOriginHiddenUser;
+use Longman\TelegramBot\Entities\MessageOrigin\MessageOriginUser;
use Longman\TelegramBot\Entities\MessageReactionCountUpdated;
use Longman\TelegramBot\Entities\MessageReactionUpdated;
use Longman\TelegramBot\Entities\Payments\PreCheckoutQuery;
@@ -1273,15 +1277,31 @@ public static function insertMessageRequest(Message $message): bool
}
// Insert the forwarded message user in users table
- $forward_date = $message->getForwardDate() ? self::getTimestamp($message->getForwardDate()) : null;
-
- if ($forward_from = $message->getForwardFrom()) {
- self::insertUser($forward_from);
- $forward_from = $forward_from->getId();
- }
- if ($forward_from_chat = $message->getForwardFromChat()) {
- self::insertChat($forward_from_chat);
- $forward_from_chat = $forward_from_chat->getId();
+ $forward_from = null;
+ $forward_from_chat = null;
+ $forward_from_message_id = null;
+ $forward_signature = null;
+ $forward_sender_name = null;
+ $forward_date = null;
+
+ if ($forward_origin = $message->getForwardOrigin()) {
+ $forward_date = self::getTimestamp($forward_origin->getDate());
+
+ if ($forward_origin instanceof MessageOriginUser) {
+ self::insertUser($forward_origin->getSenderUser());
+ $forward_from = $forward_origin->getSenderUser()->getId();
+ } elseif ($forward_origin instanceof MessageOriginHiddenUser) {
+ $forward_sender_name = $forward_origin->getSenderUserName();
+ } elseif ($forward_origin instanceof MessageOriginChat) {
+ self::insertChat($forward_origin->getChat());
+ $forward_from_chat = $forward_origin->getChat()->getId();
+ $forward_signature = $forward_origin->getAuthorSignature();
+ } elseif ($forward_origin instanceof MessageOriginChannel) {
+ self::insertChat($forward_origin->getChat());
+ $forward_from_chat = $forward_origin->getChat()->getId();
+ $forward_from_message_id = $forward_origin->getMessageId();
+ $forward_signature = $forward_origin->getAuthorSignature();
+ }
}
$via_bot_id = null;
@@ -1359,9 +1379,9 @@ public static function insertMessageRequest(Message $message): bool
$sth->bindValue(':date', $date);
$sth->bindValue(':forward_from', $forward_from);
$sth->bindValue(':forward_from_chat', $forward_from_chat);
- $sth->bindValue(':forward_from_message_id', $message->getForwardFromMessageId());
- $sth->bindValue(':forward_signature', $message->getForwardSignature());
- $sth->bindValue(':forward_sender_name', $message->getForwardSenderName());
+ $sth->bindValue(':forward_from_message_id', $forward_from_message_id);
+ $sth->bindValue(':forward_signature', $forward_signature);
+ $sth->bindValue(':forward_sender_name', $forward_sender_name);
$sth->bindValue(':forward_date', $forward_date);
$sth->bindValue(':is_topic_message', $message->getIsTopicMessage());
diff --git a/src/Request.php b/src/Request.php
index 21a7a5f7..22e9f552 100644
--- a/src/Request.php
+++ b/src/Request.php
@@ -410,6 +410,10 @@ public static function setClient(ClientInterface $client): void
*/
public static function setCustomBotApiUri(string $api_base_uri, string $api_base_download_uri = ''): void
{
+ if (self::$client) {
+ throw new TelegramException('setCustomBotApiUri() needs to be called before the Telegram object gets instantiated.');
+ }
+
self::$api_base_uri = $api_base_uri;
if ($api_base_download_uri !== '') {
self::$api_base_download_uri = $api_base_download_uri;
diff --git a/structure.sql b/structure.sql
index 357501ec..d36af44f 100644
--- a/structure.sql
+++ b/structure.sql
@@ -378,6 +378,8 @@ CREATE TABLE IF NOT EXISTS `telegram_update` (
`my_chat_member_updated_id` BIGINT UNSIGNED NULL COMMENT 'The bot''s chat member status was updated in a chat. For private chats, this update is received only when the bot is blocked or unblocked by the user.',
`chat_member_updated_id` BIGINT UNSIGNED NULL COMMENT 'A chat member''s status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify “chat_member” in the list of allowed_updates to receive these updates.',
`chat_join_request_id` BIGINT UNSIGNED NULL COMMENT 'A request to join the chat has been sent',
+ `chat_boost_updated_id` BIGINT UNSIGNED NULL COMMENT 'A chat boost was added or changed.',
+ `chat_boost_removed_id` BIGINT UNSIGNED NULL COMMENT 'A boost was removed from a chat.',
PRIMARY KEY (`id`),
KEY `message_id` (`message_id`),
@@ -409,7 +411,9 @@ CREATE TABLE IF NOT EXISTS `telegram_update` (
FOREIGN KEY (`poll_answer_poll_id`) REFERENCES `poll_answer` (`poll_id`),
FOREIGN KEY (`my_chat_member_updated_id`) REFERENCES `chat_member_updated` (`id`),
FOREIGN KEY (`chat_member_updated_id`) REFERENCES `chat_member_updated` (`id`),
- FOREIGN KEY (`chat_join_request_id`) REFERENCES `chat_join_request` (`id`)
+ FOREIGN KEY (`chat_join_request_id`) REFERENCES `chat_join_request` (`id`),
+ FOREIGN KEY (`chat_boost_updated_id`) REFERENCES `chat_boost_updated` (`id`),
+ FOREIGN KEY (`chat_boost_removed_id`) REFERENCES `chat_boost_removed` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
CREATE TABLE IF NOT EXISTS `conversation` (
diff --git a/utils/db-schema-update/0.82.0-0.83.0.sql b/utils/db-schema-update/0.82.0-0.83.0.sql
index 537307c7..72f35053 100644
--- a/utils/db-schema-update/0.82.0-0.83.0.sql
+++ b/utils/db-schema-update/0.82.0-0.83.0.sql
@@ -69,3 +69,9 @@ ALTER TABLE `message`
ALTER TABLE `telegram_update`
ADD COLUMN `message_reaction_id` bigint UNSIGNED DEFAULT NULL COMMENT 'A reaction to a message was changed by a user' AFTER `edited_channel_post_id`,
ADD COLUMN `message_reaction_count_id` bigint UNSIGNED DEFAULT NULL COMMENT 'Reactions to a message with anonymous reactions were changed' AFTER `message_reaction_id`;
+
+ALTER TABLE `telegram_update` ADD COLUMN `chat_boost_updated_id` BIGINT UNSIGNED NULL COMMENT 'A chat boost was added or changed.';
+ALTER TABLE `telegram_update` ADD FOREIGN KEY (`chat_boost_updated_id`) REFERENCES `chat_boost_updated` (`id`);
+
+ALTER TABLE `telegram_update` ADD COLUMN `chat_boost_removed_id` BIGINT UNSIGNED NULL COMMENT 'A boost was removed from a chat.';
+ALTER TABLE `telegram_update` ADD FOREIGN KEY (`chat_boost_removed_id`) REFERENCES `chat_boost_removed` (`id`);