Skip to content

Commit c3e099e

Browse files
authored
Merge pull request #1467 from r3bers/patch-1
Fix to handling ForwardOrigin in DB layer.
2 parents 596cc9c + 73250c2 commit c3e099e

File tree

1 file changed

+32
-12
lines changed

1 file changed

+32
-12
lines changed

src/DB.php

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
use Longman\TelegramBot\Entities\ChosenInlineResult;
2222
use Longman\TelegramBot\Entities\InlineQuery;
2323
use Longman\TelegramBot\Entities\Message;
24+
use Longman\TelegramBot\Entities\MessageOrigin\MessageOriginChannel;
25+
use Longman\TelegramBot\Entities\MessageOrigin\MessageOriginChat;
26+
use Longman\TelegramBot\Entities\MessageOrigin\MessageOriginHiddenUser;
27+
use Longman\TelegramBot\Entities\MessageOrigin\MessageOriginUser;
2428
use Longman\TelegramBot\Entities\MessageReactionCountUpdated;
2529
use Longman\TelegramBot\Entities\MessageReactionUpdated;
2630
use Longman\TelegramBot\Entities\Payments\PreCheckoutQuery;
@@ -1273,15 +1277,31 @@ public static function insertMessageRequest(Message $message): bool
12731277
}
12741278

12751279
// Insert the forwarded message user in users table
1276-
$forward_date = $message->getForwardDate() ? self::getTimestamp($message->getForwardDate()) : null;
1277-
1278-
if ($forward_from = $message->getForwardFrom()) {
1279-
self::insertUser($forward_from);
1280-
$forward_from = $forward_from->getId();
1281-
}
1282-
if ($forward_from_chat = $message->getForwardFromChat()) {
1283-
self::insertChat($forward_from_chat);
1284-
$forward_from_chat = $forward_from_chat->getId();
1280+
$forward_from = null;
1281+
$forward_from_chat = null;
1282+
$forward_from_message_id = null;
1283+
$forward_signature = null;
1284+
$forward_sender_name = null;
1285+
$forward_date = null;
1286+
1287+
if ($forward_origin = $message->getForwardOrigin()) {
1288+
$forward_date = self::getTimestamp($forward_origin->getDate());
1289+
1290+
if ($forward_origin instanceof MessageOriginUser) {
1291+
self::insertUser($forward_origin->getSenderUser());
1292+
$forward_from = $forward_origin->getSenderUser()->getId();
1293+
} elseif ($forward_origin instanceof MessageOriginHiddenUser) {
1294+
$forward_sender_name = $forward_origin->getSenderUserName();
1295+
} elseif ($forward_origin instanceof MessageOriginChat) {
1296+
self::insertChat($forward_origin->getChat());
1297+
$forward_from_chat = $forward_origin->getChat()->getId();
1298+
$forward_signature = $forward_origin->getAuthorSignature();
1299+
} elseif ($forward_origin instanceof MessageOriginChannel) {
1300+
self::insertChat($forward_origin->getChat());
1301+
$forward_from_chat = $forward_origin->getChat()->getId();
1302+
$forward_from_message_id = $forward_origin->getMessageId();
1303+
$forward_signature = $forward_origin->getAuthorSignature();
1304+
}
12851305
}
12861306

12871307
$via_bot_id = null;
@@ -1359,9 +1379,9 @@ public static function insertMessageRequest(Message $message): bool
13591379
$sth->bindValue(':date', $date);
13601380
$sth->bindValue(':forward_from', $forward_from);
13611381
$sth->bindValue(':forward_from_chat', $forward_from_chat);
1362-
$sth->bindValue(':forward_from_message_id', $message->getForwardFromMessageId());
1363-
$sth->bindValue(':forward_signature', $message->getForwardSignature());
1364-
$sth->bindValue(':forward_sender_name', $message->getForwardSenderName());
1382+
$sth->bindValue(':forward_from_message_id', $forward_from_message_id);
1383+
$sth->bindValue(':forward_signature', $forward_signature);
1384+
$sth->bindValue(':forward_sender_name', $forward_sender_name);
13651385
$sth->bindValue(':forward_date', $forward_date);
13661386
$sth->bindValue(':is_topic_message', $message->getIsTopicMessage());
13671387

0 commit comments

Comments
 (0)