$settings
__construct($this->session->getSessionDirectoryPath())]]>
Logger::$default
getMessage
wakeup
API
API
API
API
API
API
API
API
API
API
API
API
API
API
API
API
API
API
API
logger
$eventHandler
getMessage
isInited
setEventHandler
APIStart
\is_callable($callable)
$id
broadcasts[$id]]]>
broadcasts[$id]]]>
broadcasts[$id]?->cancel()]]>
broadcasts[$id]?->getProgress()]]>
filter->whitelist) && !\in_array($peer, $this->filter->whitelist, true)]]>
getStream()]]>
$API
$ctx
$datacenter
$logger
$shared
refreshNext
refreshNext
$uri
$auth_key
$data
$data
$fileName
$fileName
$fp
$new_session
$options
$options
$session
$settings
$settings
$settings
$settings
$tdesktop_base_path
$tdesktop_key
$tdesktop_user_base_path
pyrogram
tdesktop
tdesktop_decrypt
tdesktop_fopen
tdesktop_fopen_encrypted
tdesktop_md5
tdesktop_read_bytearray
telethon
zerobias
$part_one_md5
$part_one_md5
$dc
$main_dc_id
notFalse
$socket instanceof Connection
\is_int($id)
$default[2]
$default[2]
$dohWrapper
$socket instanceof DataCenterConnection
settings->getTransport()]]>
\is_int($key)
$API
$connectionsPromise
$ctx
$datacenter
bind
hasTempAuthKey()
&& $authorized_socket->hasPermAuthKey()
&& $authorized_socket->isAuthorized()
&& $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]>
permAuthKey =& $this->API->datacenter->getDataCenterConnection($dc)->permAuthKey]]>
ttl[$index])]]>
$cacheTtl
Traversable
Traversable
$index
$index
$index
$index
$index
$config
$config
withDatabase(null)]]>
getIdleTimeout()]]>
getMaxConnections()]]>
query("SHOW VARIABLES LIKE 'max_connections'")->fetchRow()['Value']]]>
$config
$config
withDatabase(null)]]>
getIdleTimeout()]]>
getMaxConnections()]]>
$settings
$settings
$settings
DriverArray
$v
$value
$value
$v]]>
\json_decode($value, true, 256, JSON_THROW_ON_ERROR)]]>
$dbSettings
$dbSettings
$dbSettings
$dbSettings
$deserializer
$deserializer
$deserializer
$deserializer
$serializer
$serializer
$serializer
$serializer
$table
$table
$table
$table
$old
setSettings
new static()
MemoryArray
MemoryArray
$array
$flags
$settings
dbSettings]]>
$stmt
$pdo
$v
$v
$v
$v
$v
$v
$v
$value
\igbinary_unserialize(\hex2bin($v))]]>
\unserialize(\hex2bin($v))]]>
\json_decode(\hex2bin($value), true, 256, JSON_THROW_ON_ERROR)]]>
dbSettings]]>
$v
$v
$v
$v
$v
$value
$v]]>
\json_decode($value, true, 256, JSON_THROW_ON_ERROR)]]>
dbSettings]]>
$db
db->get($key)]]>
$value
$stmt
$db
$db
$db
fetchRow()['count']]]>
$builtUri
$uri
$orig[1][0] === BufferedRawStream::class
$class
wrapper->getAPI()]]>
getParameters()[0]->getType()]]>
self::$pluginCache
\array_values
require $file
new $class
replyCache]]>
replyCache]]>
$replyCache
$adminIds
$peerResolved
$peersResolved
$peerResolved
$matches
$matches
$peerResolved
botApiFileId]]>
botApiFileUniqueId]]>
$thumbs
$videoThumbs
AbstractAudio
AbstractAudio
AbstractSticker
AbstractSticker
AbstractVideo
AbstractVideo
AnimatedSticker
AnimatedSticker
Audio
Audio
CustomEmoji
CustomEmoji
Document
Document
DocumentPhoto
DocumentPhoto
Gif
Gif
MaskSticker
MaskSticker
Photo
Photo
RoundVideo
RoundVideo
StaticSticker
StaticSticker
Sticker
Sticker
Video
Video
VideoSticker
VideoSticker
Voice
Voice
entities]]>
entities]]>
getClient()->wrapMessage($this->getClient()->extractMessage($result))]]>
Message
getClient()->wrapMessage($this->getClient()->extractMessage($result))]]>
$html
$htmlTelegram
Message
wrapMedia($rawMessage['media'], $this->protected)
: null]]>
ChannelMessage
ChannelMessage
ChannelMessage
GroupMessage
GroupMessage
GroupMessage
PrivateMessage
PrivateMessage
PrivateMessage
DialogCreated
DialogMemberLeft
DialogMembersJoined
DialogMessagePinned
DialogPhotoChanged
DialogTitleChanged
Message
getIdInternal($rawCallback['peer'])]]>
$code
$errfile
$errline
$errno
$errstr
$file
$line
$message
__invoke
self::$map
self::$map ??= new WeakMap
wrapper->getAPI()->getEventHandler($class)]]>
T|EventHandlerProxy|__PHP_Incomplete_Class|null
$data
MTProtoToTd
MTProtoToTdcli
completePhoneLogin
downloadToCallable
downloadToDir
downloadToStream
end
phoneLogin
requestSecretChat
start
tdToTdcli
upload
uploadEncrypted
uploadFromCallable
uploadFromStream
uploadFromTgfile
uploadFromUrl
account ??= new \danog\MadelineProto\Namespace\AbstractAPI('account')]]>
auth ??= new \danog\MadelineProto\Namespace\AbstractAPI('auth')]]>
bots ??= new \danog\MadelineProto\Namespace\AbstractAPI('bots')]]>
channels ??= new \danog\MadelineProto\Namespace\AbstractAPI('channels')]]>
chatlists ??= new \danog\MadelineProto\Namespace\AbstractAPI('chatlists')]]>
contacts ??= new \danog\MadelineProto\Namespace\AbstractAPI('contacts')]]>
folders ??= new \danog\MadelineProto\Namespace\AbstractAPI('folders')]]>
help ??= new \danog\MadelineProto\Namespace\AbstractAPI('help')]]>
langpack ??= new \danog\MadelineProto\Namespace\AbstractAPI('langpack')]]>
messages ??= new \danog\MadelineProto\Namespace\AbstractAPI('messages')]]>
payments ??= new \danog\MadelineProto\Namespace\AbstractAPI('payments')]]>
phone ??= new \danog\MadelineProto\Namespace\AbstractAPI('phone')]]>
photos ??= new \danog\MadelineProto\Namespace\AbstractAPI('photos')]]>
stats ??= new \danog\MadelineProto\Namespace\AbstractAPI('stats')]]>
stickers ??= new \danog\MadelineProto\Namespace\AbstractAPI('stickers')]]>
stories ??= new \danog\MadelineProto\Namespace\AbstractAPI('stories')]]>
updates ??= new \danog\MadelineProto\Namespace\AbstractAPI('updates')]]>
upload ??= new \danog\MadelineProto\Namespace\AbstractAPI('upload')]]>
users ??= new \danog\MadelineProto\Namespace\AbstractAPI('users')]]>
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
setWrapper
$class
downloadToCallable
downloadToDir
downloadToFile
methodCallAsyncRead
uploadFromCallable
uploadFromTgfile
uploadFromUrl
getException()]]>
getException();]]>
logger
$logger
$server
$previous
type($this->message, $this->code, $previous)]]>
code]]>
exception ? $this->exception->getException() : null]]>
?Throwable
$address
(int) $port
$arguments
$arguments
$arguments
include $autoloadPath
$callback
$server
$settings
$payload === self::SHUTDOWN
$payload === self::SHUTDOWN
unwrap
ServerCallback
ServerCallback
$args
$this->__call($id, $args)]]>
$data
copy
unwrap
$data
Wrapper
Wrapper
new $class($this, $ids)
callbackIds[] = &$callback]]>
callbackIds[] = &$callback]]>
IteratorAggregate
getEventHandler()::class]]>
$optional
$optional
$optional
$optional
$optional
$optional
$optional
$optional
getResource()]]>
mode === self::FILE_LOGGER
? $this->optional
: Magic::$script_cwd.DIRECTORY_SEPARATOR.'MadelineProto.log']]>
optional]]>
optional]]>
stdout->getResource()]]>
$optional
optional, [$param, $level])]]>
$colors
$stdout
colors]]>
colors]]>
colors]]>
colors]]>
colors]]>
colors]]>
colors]]>
colors]]>
getMsgId()]]>
API->settings]]>
getRpc
CheckLoop
CheckLoop
CheckLoop
CheckLoop
CheckLoop
API]]>
CleanupLoop
CleanupLoop
CleanupLoop
CleanupLoop
CleanupLoop
connection->msgIdHandler?->cleanup()]]>
connection->msgIdHandler]]>
HttpWaitLoop
getSettings
PingLoop
PingLoop
PingLoop
PingLoop
shared]]>
bufferRead($payload_length)]]>
bufferRead(4)]]>
bufferRead(4)]]>
bufferRead(8)]]>
$message_data
$message_data
$message_key
getReadBuffer
ReadLoop
getSerializedBody()]]>
getSerializedBody()]]>
connection->call_queue]]>
connection->call_queue]]>
getWriteBuffer
getWriteBuffer
WriteLoop
shared->isHttp() && empty($this->connection->pendingOutgoing)]]>
$callable()]]>
$msg
$messages
$update
feed
feedSingle
$state
$updater
FeedLoop
SecretFeedLoop
checkSeq
feed
API->feeders[$channelId]]]>
date
pts
pts
pts
pts
pts
qts
qts
qts
update
update
update
update
update
update
update
API->authorization['user']]]>
API->authorization['user']['bot']]]>
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$difference
$feeder
UpdateLoop
API->feeders[$channelId]?->resume()]]>
datacenter)]]>
TL)]]>
settings)]]>
settings)]]>
dcList, $this->settings->getConnection())]]>
new PeerDatabase($this)
$callbacks
$callbacks
getInputConstructor(...),
),
\array_fill_keys(
[
'User',
'Chat',
'Peer',
'InputDialogPeer',
'InputNotifyPeer',
],
$this->getInfo(...),
),
\array_fill_keys(
[
'InputMedia',
'InputDocument',
'InputPhoto',
],
$this->getFileInfo(...),
),
[
'InputFileLocation' => $this->getDownloadInfo(...),
'InputPeer' => $this->getInputPeer(...),
'InputCheckPasswordSRP' => function (string $password): array {
return (new PasswordCalculator($this->methodCallAsyncRead('account.getPassword', [])))->getCheckPassword($password);
},
],
)]]>
array
serializeSession
authorization['user']['bot']]]>
channels_state->get()]]>
channels_state->get()]]>
channels_state->get()]]>
channels_state->get()]]>
$path
getSelf()['bot']]]>
getSelf()['premium']]]>
authorization['hint']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']['bot']]]>
authorization['user']['bot']]]>
authorization['user']['bot']]]>
authorization['user']['id']]]>
logger
start
sanitizeReportPeers($userOrId)]]>
wrapper) && $this->isInited()]]>
wrapper) && isset(self::$references[$this->getSessionName()])]]>
authorized === API::LOGGED_IN && \is_int($dc_id)]]>
datacenter]]>
peerDatabase]]>
\is_int($dc_id)
datacenter)]]>
full_chats]]>
settings->getAppInfo()->getLangCode()]]]>
getBody
state |= self::STATE_ACKED]]>
state |= self::STATE_REPLIED]]>
state |= self::STATE_SENT]]>
authKey]]>
authKey]]>
authorized
{$key} =& $bound->{$key}]]>
ack_queue]]>
new_outgoing]]>
expires
$f->await()]]>
methodCallAsyncRead
resume
resume
getMaxId
$e]]>
\time() + $seconds
$msgId
$msgId
getMsgId()]]>
getMsgId()]]>
getMsgId()]]>
resume
API->authorized_dc == $this->datacenter && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]>
$contentRelated
$contentRelated
generateInSeqNo
generateOutSeqNo
$msgIdHandler
methodCallAsyncRead
methodCallAsyncWrite
syncLoading
getSelf()['id']]]>
getSelf()['id']]]>
$media
extractBotAPIFile($this->MTProtoToBotAPI($media))['file_id']]]>
$data
$media
downloadToCallable
downloadToDir
genAllFile
uploadFromCallable
uploadFromTgfile
uploadFromUrl
read[$offset]]]>
write[$offset]]]>
write[$offset]]]>
$messageMedia
$old_dc
decrypt
getReference
getReference
getReference
getReference
getReference
getReference
getReference
$res
$res
$res
$res
$res
$res
$res
$res
$res
$res
$res
$res
$res
$cb(100, $speed, $time)
Message
static function (int $offset, int $size) use ($stream) {
static function (int $offset, int $size) use ($stream, $seekable, $lock) {
static function (string $payload, int $offset) use ($stream, $seekable, $lock) {
downloadToStream
upload
uploadEncrypted
uploadFromStream
$file
$file
$body
$size
seek
seek
populateFrom
$id
$peers
$peers
$peers
$peers
db]]>
$db
powMod
pendingDb]]>
API->getIdInternal($full)]]>
API->getIdInternal($full)]]>
API->getIdInternal($id)]]>
API->authorization['user']]]>
API->authorization['user']['id']]]>
fullDb]]>
fullDb]]>
pendingDb]]>
$db
$fullDb
$usernames
(int) $id
getInfo($peer, \danog\MadelineProto\API::INFO_TYPE_CONSTRUCTOR)['forum']]]>
$channel
$channel
$channel
$channel
$channel
$filter
$filter
$filter
$filter
$filter
$folder_id
$gres
$limit
$limit
$limit
$offset
$offset
$offset
$q
$q
$q
$q
$q
$res
$res
$total_count
$total_count
fetchParticipants
fetchParticipantsCache
fwdPeerIsset
getInputConstructor
getInputPeer
getParticipantsHash
recurseAlphabetSearchParticipants
\danog\MadelineProto\API::PEER_TYPE_*
$promises
$full
getIdInternal($id)]]>
getIdInternal($id)]]>
peerDatabase->getFull($partial['bot_api_id'])]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']['id']]]>
authorization['user']['id']]]>
authorization['user']['id']]]>
authorization['user']['id']]]>
API->authorization['user']]]>
API->authorization['user']]]>
API->authorization['user']['id']]]>
API->authorization['user']['id']]]>
getDb($locationString)['origins']]]>
getDb($locationString)['reference']]]>
getDb($locationString)['reference']]]>
getDb($locationString)['reference']]]>
getDb($locationString)['origins']]]>
$db
$extra_ranges
$range_orig
$seek_end
wrapMedia([
'_' => 'messageMediaPhoto',
'photo' => $message['action']['photo']
])]]>
nextSent]]>
getUpdatesState
loadUpdateState
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']['id']]]>
authorization['user']['id']]]>
authorization['user']['id']]]>
authorization['user']['id']]]>
authorization['user']['id']]]>
authorization['user']['id']]]>
msg_ids]]>
addPendingWakeups
waitForInternalStart
$first
eventHandlerHandlers) !== 0 && \is_array($update)]]>
\is_array($update)
completeLogin
createApp
getApp
hasApp
settings]]>
$value
settings]]>
methodCallAsyncRead
$wrapper
$file
$message
$level
$message
$previous
$caller
$code
$message
$caller
$method
$e
$fp
$n
$chat
completeSecretChat
requestSecretChat
$chat_id
$chat_id
$encrypted_data
$encrypted_data
$message_key
$message_key
$old
$old
$chat
$chat
$chat_id
$chat_id
$seqno
$seqno
checkSecretInSeqNo
checkSecretOutSeqNo
generateSecretInSeqNo
generateSecretOutSeqNo
[$unserialized, $unlock]
$ipcSocket
$ipcSocket
unserialize($this->ipcStatePath)]]>
?IpcState
read(null, 1)]]>
read(null, 1)]]>
$php[0]
$php[1]
$php[0]
$php[1]
lightState ??= $this->unserialize($this->lightStatePath)]]>
extra]]>
$stream
$l
$append
$append_after
$memory_stream
$stream
$append
$append_after
$decrypt
$encrypt
$extra
$read_buffer
$stream
$write_buffer
$append
$append_after
read
write
$hash_name
$read_buffer
$read_check_after
$read_check_pos
$read_hash
$rev
$stream
$write_buffer
$write_check_after
$write_check_pos
$write_hash
close
$obj
$socketContext
$uri
$extra
StreamInterface
$stream
$l
$in_seq_no
$out_seq_no
$stream
$l
$stream
$stream
$uri
$code
$ctx
$header
$code
$current_header[1]
$description
getStream($header)]]>
$stream
$l
$stream
$l
$extra
$stream
$stream
$extra
$read
$code
$current_header[1]
$description
$l
getStream()]]>
$stream
$extra
bufferRead(1)]]>
bufferRead(1)]]>
bufferRead(1)]]>
bufferRead(1)]]>
bufferRead(1)]]>
bufferRead(1)]]>
bufferRead(1)]]>
bufferRead(1)]]>
bufferRead(1)]]>
bufferRead(16)]]>
bufferRead(2)]]>
bufferRead(4)]]>
$length
$ip
getStream(\chr(5).\chr(\strlen($methods)).$methods)]]>
setupTls
getStream
write
write
$connector
$stream
$data
$markup
parseReplyMarkup
}>]]>
$arguments[$key]
$photo
$photoSize
$thumbnail
$file
$message
$posClose === false
$posClose === false
MTProtoToTd
MTProtoToTdcli
tdToTdcli
authorization['user']]]>
authorization['user']['id']]]>
$file
$message
\is_resource($stream)
\is_resource($stream)
API->getInfo($arguments[$current_argument['name']]))['InputEncryptedChat']]]>
$arg
deserialize
serializeMethod
serializeObject
serializeParams
API->logger]]>
botAPIToMTProto
logger
$elem[1]
$elem[1]
$elem[1]
$elem[1]
$afterConstructorDeserialization
$afterMethodResponseDeserialization
$beforeConstructorDeserialization
$beforeConstructorSerialization
$beforeMethodResponseDeserialization
$constructors
$methods
$tdDescriptions
$typeMismatch
(string) $object
(string) $object
(string) $object
findByPredicate
findByType
deserialize
serializeMethod
serializeObject
findById
findByMethod
click
authorization['user']]]>
authorization['user']['id']]]>
$c->name !== null]]>
$val
$this->{$var}]]>
end
getVar
$value
$value
$this->{$var},
$obj,
$obj::class,
)->__invoke()]]>
{$var} =& $val;
},
$obj,
$obj::class,
)->__invoke()]]>
__invoke
__invoke
{$var} =& $val]]>
getSelf()['id']]]>
udp]]>
?array
$stream
$crc
$encrypted_data
bufferRead(4)]]>
bufferRead(4)]]>
bufferRead(4)]]>
bufferRead(4)]]>
bufferRead(4)]]>
bufferRead(4)]]>
bufferRead(8)]]>
getReadBuffer
$ack_mask
$out_seq_no
getStream()]]>
udp]]>
true
authKey]]>
authKey]]>
call]]>
$visualization
$visualization
pendingPing]]>
call['g_a']]]>
$authKey
$bestEndpoint
$messageHandler
API->logger)]]>
]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']]]>
authorization['user']['bot']]]>
authorization['user']['bot']]]>
authorization['user']['bot']]]>
authorization['user']['bot']]]>
$dialogs
event_handler_instance === null || $this->event_handler_instance instanceof __PHP_Incomplete_Class]]>
event_handler_instance instanceof __PHP_Incomplete_Class]]>
PluginEventHandler|EventHandlerProxy|null
pluginInstances[$class]]]>
pluginInstances[$class]]]>
pluginInstances[$class]]]>
pluginInstances[$class]]]>
pluginInstances[$class]]]>
new $class_name
array
completePhoneLogin
phoneLogin
authorization['phone_code']]]>
authorization['phone_code_hash']]]>
authorization['phone_code_hash']]]>
authorization['phone_number']]]>
authorization['phone_number']]]>
\is_array($auth_key)
loop
getAuthorization() === \danog\MadelineProto\API::LOGGED_IN]]>
start
$title
$result
$result