$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)]]>
stream]]>
getStream()]]>
$API
$datacenter
$shared
getInputClientProxy
isHttp
refreshNext
refreshNext
$uri
$auth_key
$data
$data
$fileName
$fileName
$fp
$options
$options
$settings
$tdesktop_base_path
$tdesktop_key
$tdesktop_user_base_path
tdesktop
tdesktop_decrypt
tdesktop_fopen
tdesktop_fopen_encrypted
tdesktop_md5
tdesktop_read_bytearray
$part_one_md5
$part_one_md5
$dc
$main_dc_id
getConfig
\is_string($dc)
$default[2]
$default[2]
$API
$connectionsPromise
$datacenter
bind
hasTempAuthKey()
&& $authorized_socket->hasPermAuthKey()
&& $authorized_socket->isAuthorized()
&& $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]>
permAuthKey =& $connection->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
$webSocketConnector
$orig[1][0] === BufferedRawStream::class
Rfc6455Connector
$class
wrapper->getAPI()]]>
getParameters()[0]->getType()]]>
getDbPrefix
self::$pluginCache
array_values
startedInternal]]>
startedInternal]]>
require $file
new $class
replyCache]]>
replyCache]]>
wrapMessage($client->extractMessage($result))]]>
wrapMessage($client->extractMessage($result))]]>
$arr['_'] === 'storyItemDeleted'
? new StoryDeleted($client, ['peer' => $this->senderId, 'story' => $arr])
: new Story($client, ['peer' => $this->senderId, 'story' => $arr]),
$result
)]]>
DialogSetTTL
DialogSetTTL
]]>
wrapMessage($client->extractMessage($result))]]>
wrapMessage($client->extractMessage($result))]]>
AbstractPrivateMessage
AbstractPrivateMessage
getIdInternal($rawStory['peer'])]]>
wrapMedia($rawBotApp['document']) : null]]>
wrapMedia($rawBotApp['photo']) : null]]>
$peerResolved
$peersResolved
$adminIds
API]]>
$API
$peerResolved
$matches
$matches
$matches
$matches
$result
array{
* ext: string,
* name: string,
* mime: string,
* size: int,
* InputFileLocation: array,
* key_fingerprint?: string,
* key?: string,
* iv?: string,
* }
botApiFileId]]>
botApiFileUniqueId]]>
$thumbs
$videoThumbs
AbstractAudio
AbstractAudio
AbstractSticker
AbstractSticker
AbstractVideo
AbstractVideo
AnimatedSticker
AnimatedSticker
Audio
Audio
CustomEmoji
CustomEmoji
Document
Document
DocumentPhoto
DocumentPhoto
Gif
Gif
MaskSticker
MaskSticker
getIdInternal($rawMedia['peer'])]]>
Photo
Photo
RoundVideo
RoundVideo
StaticSticker
StaticSticker
Sticker
Sticker
Video
Video
VideoSticker
VideoSticker
Voice
Voice
getClient()->wrapMessage($this->getClient()->extractMessage($result))]]>
Message
getClient()->wrapMessage($this->getClient()->extractMessage($result))]]>
$html
$htmlTelegram
wrapMedia($rawMessage['media'], $this->protected)
: null]]>
ChannelMessage
ChannelMessage
wrapMessage($client->extractMessage($result))]]>
wrapMessage($client->extractMessage($result))]]>
wrapMessage($client->extractMessage($result))]]>
wrapMessage($client->extractMessage($result))]]>
DialogTopicCreated
DialogTopicEdited
DialogTopicEdited
DialogTopicEdited
wrapMessage($client->extractMessage($result))]]>
wrapMessage($client->extractMessage($result))]]>
wrapMessage($client->extractMessage($result))]]>
wrapMessage($client->extractMessage($result))]]>
GroupMessage
GroupMessage
getClient()->wrapMessage($this->getClient()->extractMessage($result))]]>
DialogScreenshotTaken
getClient()->wrapMessage($this->getClient()->extractMessage($result))]]>
PrivateMessage
PrivateMessage
replyCache]]>
replyCache]]>
getClient()->wrapMessage($this->getClient()->extractMessage($result))]]>
DialogScreenshotTaken
getClient()->wrapMessage($this->getClient()->extractMessage($result))]]>
SecretMessage
SecretMessage
getIdInternal($rawParticipant['peer'])]]>
getIdInternal($rawParticipant['peer'])]]>
Message
getIdInternal($rawCallback['peer'])]]>
nextSent]]>
wrapMessage($client->extractMessage($result))]]>
wrapUpdate($update)]]>
wrapUpdate($update)]]>
StoryReaction
StoryReaction
wrapMessage($client->extractMessage($result))]]>
wrapUpdate($update)]]>
wrapUpdate($update)]]>
$first
$html
$htmlTelegram
wrapMedia($rawStory['media'], $this->protected)]]>
getIdInternal($rawStory['peer'])]]>
getIdInternal($rawPeerBlocked['peer_id'])]]>
new UsernameInfo($username),
$rawUserName['usernames']
)]]>
wrapMedia($rawWallpaper['document'])]]>
$code
$errfile
$errline
$errno
$errstr
$file
$line
$message
__invoke
self::$map
self::$map ??= new WeakMap
self::$map ??= new WeakMap
wrapper->getAPI()->getEventHandler($class)]]>
T|EventHandlerProxy|__PHP_Incomplete_Class|null
$data
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
$payload === self::SHUTDOWN
$payload === self::SHUTDOWN
unwrap
ServerCallback
ServerCallback
$args
$this->__call($id, $args)]]>
$data
copy
unwrap
$payload[0]
$payload[0]
$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]]>
optional]]>
stdoutUnbuffered->getResource()]]>
$optional
$colors
$stdout
$stdoutUnbuffered
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]]>
getReason(), ' ')]]>
throw $e;
bufferRead($payload_length)]]>
bufferRead(4)]]>
bufferRead(4)]]>
bufferRead(8)]]>
$message_data
$message_data
$message_key
getReadBuffer
ReadLoop
$e
$e
$e
ClosedException
getSerializedBody()]]>
getSerializedBody()]]>
getWriteBuffer
getWriteBuffer
WriteLoop
connection->isHttp() && empty($this->connection->pendingOutgoing)]]>
$callable()]]>
API->logger)]]>
$msg
$messages
$update
feed
feedSingle
$state
$updater
FeedLoop
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)]]>
new DataCenter($this)
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
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
getMaxId
$e]]>
$response
time() + $seconds
$msgId
$msgId
$msgId
$msgId
hasReply
hasReply
API->authorized_dc == $this->datacenter && $this->API->authorized === \danog\MadelineProto\API::LOGGED_IN]]>
$msgIdHandler
methodCallAsyncRead
methodCallAsyncWrite
syncLoading
getSelf()['id']]]>
getSelf()['id']]]>
$media
extractBotAPIFile($this->MTProtoToBotAPI($media))['file_id']]]>
array
$data
$media
genAllFile
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
$file
$file
static function (string $payload, int $offset) use ($stream, $seekable, $lock) {
$file
$file
$body
$size
seek
seek
$l
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($message['action']['photo'])]]>
wrapMedia($message['action']['photo'])]]>
nextSent]]>
getUpdatesState
loadUpdateState
getIdInternal($message['action']['from_id'])]]>
getIdInternal($message['action']['peer'])]]>
getIdInternal($message['action']['to_id'])]]>
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)
settings->getConnection()]]>
settings->getLogger())) implements LoggerGetter {
public function __construct(private Logger $logger)
{
}
public function getLogger(): Logger
{
return $this->logger;
}
}]]>
completeLogin
createApp
getApp
hasApp
settings]]>
$value
settings->getConnection(),
new class(new Logger($this->settings->getLogger())) implements LoggerGetter {
public function __construct(private Logger $logger)
{
}
public function getLogger(): Logger
{
return $this->logger;
}
},
$this->jar
)]]>
settings]]>
methodCallAsyncRead
$wrapper
$file
$message
$level
$message
$previous
$caller
$code
$message
$caller
$method
$e
$fp
$n
SecretMessage
remoteLayer === 8]]>
$incoming
$outgoing
$randomIdMap
[$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]]>
$entities
$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
stream]]>
stream]]>
stream]]>
?WebsocketMessage
ClosedException
Rfc6455ConnectionFactory
Rfc6455Connector
WebsocketConnection
WebsocketConnector
WebsocketConnector
WebsocketHandshake
WsStream
WssStream
$markup
parseReplyMarkup
}>]]>
$arguments[$key]
$photo
$photoSize
$thumbnail
$file
$message
$posClose === false
$posClose === false
authorization['user']]]>
authorization['user']['id']]]>
$file
$message
\is_resource($stream)
\is_resource($stream)
$arg
deserialize
serializeMethod
serializeObject
serializeParams
$value
$value
$value
$value
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}]]>
getVar
$value
$value
$this->{$var},
$obj,
$obj::class,
)->__invoke()]]>
{$var} =& $val;
},
$obj,
$obj::class,
)->__invoke()]]>
__invoke
__invoke
{$var} =& $val]]>
getSelf()['id']]]>
udp]]>
$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
ClosedException
ClosedException
readLength(1))]]>
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
cachedAllBotUsers]]>
cachedAllBotUsers]]>
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
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]]>
array
$title
$result
$result