Fixed some bugs
This commit is contained in:
parent
b3d75b106c
commit
ad9591c71b
@ -24,7 +24,7 @@ trait PeerHandler
|
|||||||
foreach ($users as $key => $user) {
|
foreach ($users as $key => $user) {
|
||||||
switch ($user['_']) {
|
switch ($user['_']) {
|
||||||
case 'user':
|
case 'user':
|
||||||
if (!isset($this->chats[$user['id']])) {
|
if (!isset($this->chats[$user['id']]) || $this->chats[$user['id']] !== $user) {
|
||||||
$this->chats[$user['id']] = $user;
|
$this->chats[$user['id']] = $user;
|
||||||
$this->should_serialize = true;
|
$this->should_serialize = true;
|
||||||
}
|
}
|
||||||
@ -43,7 +43,7 @@ trait PeerHandler
|
|||||||
switch ($chat['_']) {
|
switch ($chat['_']) {
|
||||||
case 'chat':
|
case 'chat':
|
||||||
case 'chatEmpty':
|
case 'chatEmpty':
|
||||||
if (!isset($this->chats[-$chat['id']])) {
|
if (!isset($this->chats[-$chat['id']]) || $this->chats[-$chat['id']] !== $chat) {
|
||||||
$this->should_serialize = true;
|
$this->should_serialize = true;
|
||||||
$this->chats[-$chat['id']] = $chat;
|
$this->chats[-$chat['id']] = $chat;
|
||||||
}
|
}
|
||||||
@ -52,7 +52,7 @@ trait PeerHandler
|
|||||||
case 'channelEmpty':
|
case 'channelEmpty':
|
||||||
break;
|
break;
|
||||||
case 'channel':
|
case 'channel':
|
||||||
if (!isset($this->chats[(int) ('-100'.$chat['id'])])) {
|
if (!isset($this->chats[(int) ('-100'.$chat['id'])]) || $this->chats[(int) ('-100'.$chat['id'])] !== $chat) {
|
||||||
$this->should_serialize = true;
|
$this->should_serialize = true;
|
||||||
$this->chats[(int) ('-100'.$chat['id'])] = $chat;
|
$this->chats[(int) ('-100'.$chat['id'])] = $chat;
|
||||||
}
|
}
|
||||||
@ -184,8 +184,13 @@ trait PeerHandler
|
|||||||
$res = [$this->constructors->find_by_predicate($constructor['_'])['type'] => $constructor];
|
$res = [$this->constructors->find_by_predicate($constructor['_'])['type'] => $constructor];
|
||||||
switch ($constructor['_']) {
|
switch ($constructor['_']) {
|
||||||
case 'user':
|
case 'user':
|
||||||
$res['InputPeer'] = $constructor['self'] ? ['_' => 'inputPeerSelf'] : ['_' => 'inputPeerUser', 'user_id' => $constructor['id'], 'access_hash' => $constructor['access_hash']];
|
if ($constructor['self']) {
|
||||||
$res['InputUser'] = $constructor['self'] ? ['_' => 'inputUserSelf'] : ['_' => 'inputUser', 'user_id' => $constructor['id'], 'access_hash' => $constructor['access_hash']];
|
$res['InputPeer'] = ['_' => 'inputPeerSelf'];
|
||||||
|
$res['InputUser'] = ['_' => 'inputUserSelf'];
|
||||||
|
} else if (isset($constructor['access_hash'])) {
|
||||||
|
$res['InputPeer'] = ['_' => 'inputPeerUser', 'user_id' => $constructor['id'], 'access_hash' => $constructor['access_hash']];
|
||||||
|
$res['InputUser'] = ['_' => 'inputUser', 'user_id' => $constructor['id'], 'access_hash' => $constructor['access_hash']];
|
||||||
|
}
|
||||||
$res['Peer'] = ['_' => 'peerUser', 'user_id' => $constructor['id']];
|
$res['Peer'] = ['_' => 'peerUser', 'user_id' => $constructor['id']];
|
||||||
$res['user_id'] = $constructor['id'];
|
$res['user_id'] = $constructor['id'];
|
||||||
$res['bot_api_id'] = $constructor['id'];
|
$res['bot_api_id'] = $constructor['id'];
|
||||||
@ -197,8 +202,10 @@ trait PeerHandler
|
|||||||
$res['bot_api_id'] = -$constructor['id'];
|
$res['bot_api_id'] = -$constructor['id'];
|
||||||
break;
|
break;
|
||||||
case 'channel':
|
case 'channel':
|
||||||
$res['InputPeer'] = ['_' => 'inputPeerChannel', 'channel_id' => $constructor['id'], 'access_hash' => $constructor['access_hash']];
|
if (isset($constructor['access_hash'])) {
|
||||||
$res['InputChannel'] = ['_' => 'inputChannel', 'channel_id' => $constructor['id'], 'access_hash' => $constructor['access_hash']];
|
$res['InputPeer'] = ['_' => 'inputPeerChannel', 'channel_id' => $constructor['id'], 'access_hash' => $constructor['access_hash']];
|
||||||
|
$res['InputChannel'] = ['_' => 'inputChannel', 'channel_id' => $constructor['id'], 'access_hash' => $constructor['access_hash']];
|
||||||
|
}
|
||||||
$res['Peer'] = ['_' => 'peerChannel', 'channel_id' => $constructor['id']];
|
$res['Peer'] = ['_' => 'peerChannel', 'channel_id' => $constructor['id']];
|
||||||
$res['channel_id'] = $constructor['id'];
|
$res['channel_id'] = $constructor['id'];
|
||||||
$res['bot_api_id'] = (int) ('-100'.$constructor['id']);
|
$res['bot_api_id'] = (int) ('-100'.$constructor['id']);
|
||||||
|
@ -287,8 +287,8 @@ trait ResponseHandler
|
|||||||
|
|
||||||
if (!$this->peer_isset($from_id) ||
|
if (!$this->peer_isset($from_id) ||
|
||||||
!$this->peer_isset($to_id) ||
|
!$this->peer_isset($to_id) ||
|
||||||
(isset($updates['via_bot_id']) && !$this->peer_isset($updates['via_bot_id']))
|
(isset($updates['via_bot_id']) && !$this->peer_isset($updates['via_bot_id'])) ||
|
||||||
(isset($updates['entities']) && !$this->entities_peer_isset($updates['entites']))
|
(isset($updates['entities']) && !$this->entities_peer_isset($updates['entites'])) ||
|
||||||
(isset($updates['fwd_from']) && !$this->fwd_peer_isset($updates['fwd_from']))) {
|
(isset($updates['fwd_from']) && !$this->fwd_peer_isset($updates['fwd_from']))) {
|
||||||
\danog\MadelineProto\Logger::log('getDifference: good - getting user for updateShortMessage');
|
\danog\MadelineProto\Logger::log('getDifference: good - getting user for updateShortMessage');
|
||||||
|
|
||||||
|
@ -92,9 +92,9 @@ trait UpdateHandler
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'updates.channelDifferenceTooLong':
|
case 'updates.channelDifferenceTooLong':
|
||||||
unset($this->channels_state[$channel]);
|
//unset($this->channels_state[$channel]);
|
||||||
//unset($this->chats[$this->get_info('channel#'.$channel)['bot_api_id']]);
|
//unset($this->chats[$this->get_info('channel#'.$channel)['bot_api_id']]);
|
||||||
//$this->handle_update_messages($difference['messages'], $channel);
|
$this->handle_update_messages($difference['messages'], $channel);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new \danog\MadelineProto\Exception('Unrecognized update difference received: '.var_export($difference, true));
|
throw new \danog\MadelineProto\Exception('Unrecognized update difference received: '.var_export($difference, true));
|
||||||
@ -200,12 +200,12 @@ trait UpdateHandler
|
|||||||
} else {
|
} else {
|
||||||
$cur_state = &$this->get_channel_state($channel_id, (isset($update['pts']) ? $update['pts'] : 0) - (isset($update['pts_count']) ? $update['pts_count'] : 0));
|
$cur_state = &$this->get_channel_state($channel_id, (isset($update['pts']) ? $update['pts'] : 0) - (isset($update['pts_count']) ? $update['pts_count'] : 0));
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if ($cur_state['sync_loading']) {
|
if ($cur_state['sync_loading']) {
|
||||||
\danog\MadelineProto\Logger::log('Sync loading, not handling update');
|
\danog\MadelineProto\Logger::log('Sync loading, not handling update');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
switch ($update['_']) {
|
switch ($update['_']) {
|
||||||
case 'updateChannelTooLong':
|
case 'updateChannelTooLong':
|
||||||
\danog\MadelineProto\Logger::log('Got channel too long update, getting difference...');
|
\danog\MadelineProto\Logger::log('Got channel too long update, getting difference...');
|
||||||
|
Loading…
Reference in New Issue
Block a user