Avoid circular resolving issues
This commit is contained in:
parent
45e9380ec8
commit
6b0e53fb68
@ -88,7 +88,7 @@ class MinDatabase implements TLCallback
|
|||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
foreach ($this->db as $id => $origin) {
|
foreach ($this->db as $id => $origin) {
|
||||||
if ($origin['peer'] === $id) {
|
if (!isset($origin['peer']) || $origin['peer'] === $id) {
|
||||||
unset($this->db[$id]);
|
unset($this->db[$id]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,8 @@ trait PeerHandler
|
|||||||
public $caching_simple_username = [];
|
public $caching_simple_username = [];
|
||||||
public $caching_possible_username = [];
|
public $caching_possible_username = [];
|
||||||
|
|
||||||
|
public $caching_full_info = [];
|
||||||
|
|
||||||
public function to_supergroup($id)
|
public function to_supergroup($id)
|
||||||
{
|
{
|
||||||
return -($id + \pow(10, (int) \floor(\log($id, 10) + 3)));
|
return -($id + \pow(10, (int) \floor(\log($id, 10) + 3)));
|
||||||
@ -432,7 +434,8 @@ trait PeerHandler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isset($this->chats[$id])) {
|
if (isset($this->chats[$id])) {
|
||||||
if (($this->chats[$id]['min'] ?? false) && $this->minDatabase->hasPeer($id)) {
|
if (($this->chats[$id]['min'] ?? false) && $this->minDatabase->hasPeer($id) && !isset($this->caching_full_info[$id])) {
|
||||||
|
$this->caching_full_info[$id] = true;
|
||||||
$this->logger->logger("Only have min peer for $id in database, trying to fetch full info");
|
$this->logger->logger("Only have min peer for $id in database, trying to fetch full info");
|
||||||
try {
|
try {
|
||||||
if ($id < 0) {
|
if ($id < 0) {
|
||||||
@ -444,6 +447,8 @@ trait PeerHandler
|
|||||||
$this->logger->logger($e->getMessage(), \danog\MadelineProto\Logger::WARNING);
|
$this->logger->logger($e->getMessage(), \danog\MadelineProto\Logger::WARNING);
|
||||||
} catch (\danog\MadelineProto\RPCErrorException $e) {
|
} catch (\danog\MadelineProto\RPCErrorException $e) {
|
||||||
$this->logger->logger($e->getMessage(), \danog\MadelineProto\Logger::WARNING);
|
$this->logger->logger($e->getMessage(), \danog\MadelineProto\Logger::WARNING);
|
||||||
|
} finally {
|
||||||
|
unset($this->caching_full_info[$id]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -506,7 +511,8 @@ trait PeerHandler
|
|||||||
}
|
}
|
||||||
foreach ($this->chats as $bot_api_id => $chat) {
|
foreach ($this->chats as $bot_api_id => $chat) {
|
||||||
if (isset($chat['username']) && \strtolower($chat['username']) === $id) {
|
if (isset($chat['username']) && \strtolower($chat['username']) === $id) {
|
||||||
if ($chat['min'] ?? false) {
|
if ($chat['min'] ?? false && !isset($this->caching_full_info[$bot_api_id])) {
|
||||||
|
$this->caching_full_info[$bot_api_id] = true;
|
||||||
$this->logger->logger("Only have min peer for $bot_api_id in database, trying to fetch full info");
|
$this->logger->logger("Only have min peer for $bot_api_id in database, trying to fetch full info");
|
||||||
try {
|
try {
|
||||||
if ($bot_api_id < 0) {
|
if ($bot_api_id < 0) {
|
||||||
@ -518,6 +524,8 @@ trait PeerHandler
|
|||||||
$this->logger->logger($e->getMessage(), \danog\MadelineProto\Logger::WARNING);
|
$this->logger->logger($e->getMessage(), \danog\MadelineProto\Logger::WARNING);
|
||||||
} catch (\danog\MadelineProto\RPCErrorException $e) {
|
} catch (\danog\MadelineProto\RPCErrorException $e) {
|
||||||
$this->logger->logger($e->getMessage(), \danog\MadelineProto\Logger::WARNING);
|
$this->logger->logger($e->getMessage(), \danog\MadelineProto\Logger::WARNING);
|
||||||
|
} finally {
|
||||||
|
unset($this->caching_full_info[$bot_api_id]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user