diff --git a/README.md b/README.md
index a5d4c1a9..f0885ceb 100644
--- a/README.md
+++ b/README.md
@@ -124,271 +124,271 @@ Tip: if you receive an error (or nothing), [send us](https://t.me/pwrtelegramgro
* [Build your own proxy](https://docs.madelineproto.xyz/docs/PROXY.html#build-your-proxy)
* [Using methods](https://docs.madelineproto.xyz/docs/USING_METHODS.html)
* [FULL API Documentation with descriptions](https://docs.madelineproto.xyz/API_docs/methods/)
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
+ * [Logout](https://docs.madelineproto.xyz/logout.html)
+ * [Login](https://docs.madelineproto.xyz/docs/LOGIN.html)
+ * [Get all chats, broadcast a message to all chats](https://docs.madelineproto.xyz/docs/DIALOGS.html)
+ * [Get the full participant list of a channel/group/supergroup](https://docs.madelineproto.xyz/get_pwr_chat.html)
+ * [Get full info about a user/chat/supergroup/channel](https://docs.madelineproto.xyz/get_full_info.html)
+ * [Get info about a user/chat/supergroup/channel](https://docs.madelineproto.xyz/get_info.html)
+ * [Get info about the currently logged-in user](https://docs.madelineproto.xyz/get_self.html)
+ * [Upload or download files up to 1.5 GB](https://docs.madelineproto.xyz/docs/FILES.html)
+ * [Make a phone call and play a song](https://docs.madelineproto.xyz/docs/CALLS.html)
+ * [Create a secret chat bot](https://docs.madelineproto.xyz/docs/SECRET_CHATS.html)
+ * Accept telegram passport authorization: account.acceptAuthorization
+ * Accept telegram's TOS: help.acceptTermsOfService
+ * Add a sticker set: messages.installStickerSet
+ * Add a sticker to favorites: messages.faveSticker
+ * Add a sticker to recent stickers: messages.saveRecentSticker
+ * Add a user to a normal chat (use channels->inviteToChannel for supergroups): messages.addChatUser
+ * Add phone number as contact: contacts.importContacts
+ * Add sticker to stickerset: stickers.addStickerToSet
+ * Add users to channel/supergroup: channels.inviteToChannel
+ * Block a user: contacts.block
+ * Bots only: get telegram passport authorization form: account.getAuthorizationForm
+ * Bots only: send payment form: payments.sendPaymentForm
+ * Bots only: set precheckout results: messages.setBotPrecheckoutResults
+ * Bots only: set shipping results: messages.setBotShippingResults
+ * Bots only: set the callback answer (after a button was clicked): messages.setBotCallbackAnswer
+ * Bots only: set the results of an inline query: messages.setInlineBotResults
+ * Call inline bot: messages.getInlineBotResults
+ * Cancel password recovery email: account.cancelPasswordEmail
+ * Change notification settings: account.updateNotifySettings
+ * Change sticker position in photo: stickers.changeStickerPosition
+ * Change the phone number associated to this account: account.changePhone
+ * Change the phone number: account.sendChangePhoneCode
+ * Change the profile photo: photos.updateProfilePhoto
+ * Change typing status: messages.setTyping
+ * Check if about to edit a message or a media caption: messages.getMessageEditData
+ * Check if an invitation link is valid: messages.checkChatInvite
+ * Check if this username is available: account.checkUsername
+ * Check if this username is free and can be assigned to a channel/supergroup: channels.checkUsername
+ * Clear all drafts: messages.clearAllDrafts
+ * Clear all recent stickers: messages.clearRecentStickers
+ * Clear saved payments info: payments.clearSavedInfo
+ * Confirm password recovery using email: account.confirmPasswordEmail
+ * Confirm this phone number is associated to this account, obtain phone_code_hash from sendConfirmPhoneCode: account.confirmPhone
+ * Contact signup notification setting value: account.getContactSignUpNotification
+ * Convert chat to supergroup: messages.migrateChat
+ * Create a chat (not supergroup): messages.createChat
+ * Create channel/supergroup: channels.createChannel
+ * Create stickerset: stickers.createStickerSet
+ * Delete a certain session: account.resetAuthorization
+ * Delete a certain telegram web login authorization: account.resetWebAuthorization
+ * Delete a channel/supergroup: channels.deleteChannel
+ * Delete a contact: contacts.deleteContact
+ * Delete a user from a chat (not supergroup): messages.deleteChatUser
+ * Delete all logged-in sessions.: auth.resetAuthorizations
+ * Delete all messages of a user in a channel/supergroup: channels.deleteUserHistory
+ * Delete all temporary authorization keys except the ones provided: auth.dropTempAuthKeys
+ * Delete channel/supergroup messages: channels.deleteMessages
+ * Delete chat history: messages.deleteHistory
+ * Delete contacts by phones: contacts.deleteByPhones
+ * Delete messages: messages.deleteMessages
+ * Delete multiple contacts: contacts.deleteContacts
+ * Delete profile photos: photos.deletePhotos
+ * Delete secure telegram passport value: account.deleteSecureValue
+ * Delete the history of a supergroup/channel: channels.deleteHistory
+ * Delete this account: account.deleteAccount
+ * Disable all notifications for a certain period: account.updateDeviceLocked
+ * Download a file through telegram: upload.getWebFile
+ * Edit a message: messages.editMessage
+ * Edit a sent inline message: messages.editInlineBotMessage
+ * Edit admin permissions of a user in a channel/supergroup: channels.editAdmin
+ * Edit admin permissions: messages.editChatAdmin
+ * Edit chat info: messages.editChatAbout
+ * Edit default rights of chat: messages.editChatDefaultBannedRights
+ * Edit the photo of a normal chat (not supergroup): messages.editChatPhoto
+ * Edit the photo of a supergroup/channel: channels.editPhoto
+ * Edit the title of a normal chat (not supergroup): messages.editChatTitle
+ * Edit the title of a supergroup/channel: channels.editTitle
+ * Edit user info: help.editUserInfo
+ * Enable or disable hidden history for new channel/supergroup users: channels.togglePreHistoryHidden
+ * Export chat invite : messages.exportChatInvite
+ * Find a sticker set: messages.searchStickerSets
+ * Finish account exporting session: account.finishTakeoutSession
+ * Forward messages: messages.forwardMessages
+ * Get CDN configuration: help.getCdnConfig
+ * Get a stickerset: messages.getStickerSet
+ * Get account TTL: account.getAccountTTL
+ * Get admin log of a channel/supergroup: channels.getAdminLog
+ * Get all archived stickers: messages.getArchivedStickers
+ * Get all channels you left: channels.getLeftChannels
+ * Get all chats (not supergroups or channels): messages.getAllChats
+ * Get all contacts: contacts.getContacts
+ * Get all logged-in authorizations: account.getAuthorizations
+ * Get all message drafts: messages.getAllDrafts
+ * Get all secure telegram passport values: account.getAllSecureValues
+ * Get all stickerpacks: messages.getAllStickers
+ * Get all supergroups/channels where you're admin: channels.getAdminedPublicChannels
+ * Get and increase message views: messages.getMessagesViews
+ * Get app config: help.getAppConfig
+ * Get available languages: langpack.getLanguages
+ * Get blocked users: contacts.getBlocked
+ * Get call configuration: phone.getCallConfig
+ * Get channel/supergroup messages: channels.getMessages
+ * Get channel/supergroup participants (you should use `$MadelineProto->get_pwr_chat($id)` instead): channels.getParticipants
+ * Get chats in common with a user: messages.getCommonChats
+ * Get contacts by IDs: contacts.getContactIDs
+ * Get deep link info: help.getDeepLinkInfo
+ * Get dialog info of peers: messages.getPeerDialogs
+ * Get dialogs marked as unread manually: messages.getDialogUnreadMarks
+ * Get document by SHA256 hash: messages.getDocumentByHash
+ * Get favorite stickers: messages.getFavedStickers
+ * Get featured stickers: messages.getFeaturedStickers
+ * Get high scores of a game sent in an inline message: messages.getInlineGameHighScores
+ * Get high scores of a game: messages.getGameHighScores
+ * Get info about a certain channel/supergroup participant: channels.getParticipant
+ * Get info about app updates: help.getAppUpdate
+ * Get info about chats: messages.getChats
+ * Get info about multiple channels/supergroups: channels.getChannels
+ * Get info about users: users.getUsers
+ * Get info of support user: help.getSupport
+ * Get information about the current proxy: help.getProxyData
+ * Get invitation text: help.getInviteText
+ * Get language pack strings: langpack.getStrings
+ * Get language pack updates: langpack.getDifference
+ * Get language pack: langpack.getLangPack
+ * Get language: langpack.getLanguage
+ * Get masks: messages.getMaskStickers
+ * Get message ranges to fetch: messages.getSplitRanges
+ * Get messages: messages.getMessages
+ * Get most used chats: contacts.getTopPeers
+ * Get nearest datacenter: help.getNearestDc
+ * Get notification exceptions: account.getNotifyExceptions
+ * Get notification settings: account.getNotifySettings
+ * Get online status of all users: contacts.getStatuses
+ * Get online users: messages.getOnlines
+ * Get passport config: help.getPassportConfig
+ * Get payment form: payments.getPaymentForm
+ * Get payment receipt: payments.getPaymentReceipt
+ * Get pinned dialogs: messages.getPinnedDialogs
+ * Get poll results: messages.getPollResults
+ * Get previous messages of a group: messages.getHistory
+ * Get privacy settings: account.getPrivacy
+ * Get recent locations: messages.getRecentLocations
+ * Get recent stickers: messages.getRecentStickers
+ * Get recent t.me URLs: help.getRecentMeUrls
+ * Get saved contacts: contacts.getSaved
+ * Get saved gifs: messages.getSavedGifs
+ * Get saved payments info: payments.getSavedInfo
+ * Get secure value for telegram passport: account.getSecureValue
+ * Get server configuration: help.getConfig
+ * Get stats URL: messages.getStatsURL
+ * Get stickers attachable to images: messages.getAttachedStickers
+ * Get stickers: messages.getStickers
+ * Get support name: help.getSupportName
+ * Get telegram web login authorizations: account.getWebAuthorizations
+ * Get temporary password for buying products through bots: account.getTmpPassword
+ * Get the callback answer of a bot (after clicking a button): messages.getBotCallbackAnswer
+ * Get the changelog of this app: help.getAppChangelog
+ * Get the current password: account.getPassword
+ * Get the link of a message in a channel: channels.exportMessageLink
+ * Get the profile photos of a user: photos.getUserPhotos
+ * Get the settings of apeer: messages.getPeerSettings
+ * Get unread mentions: messages.getUnreadMentions
+ * Get updated TOS: help.getTermsOfServiceUpdate
+ * Get user info: help.getUserInfo
+ * Get wallpaper info: account.getWallPaper
+ * Get webpage preview: messages.getWebPage
+ * Get webpage preview: messages.getWebPagePreview
+ * Gets list of chats: you should use $MadelineProto->get_dialogs() instead: https://docs.madelineproto.xyz/docs/DIALOGS.html: messages.getDialogs
+ * Global message search: messages.searchGlobal
+ * Hide report spam popup: messages.hideReportSpam
+ * Import chat invite: messages.importChatInvite
+ * Initializes connection and save information on the user's device and application.: initConnection
+ * Install wallpaper: account.installWallPaper
+ * Invalidate sent phone code: auth.cancelCode
+ * Invoke method from takeout session: invokeWithTakeout
+ * Invoke this method with layer X: invokeWithLayer
+ * Invoke with messages range: invokeWithMessagesRange
+ * Invoke with method without returning updates in the socket: invokeWithoutUpdates
+ * Invokes a query after successfull completion of one of the previous queries.: invokeAfterMsg
+ * Join a channel/supergroup: channels.joinChannel
+ * Kick or ban a user from a channel/supergroup: channels.editBanned
+ * Leave a channel/supergroup: channels.leaveChannel
+ * Log data for developer of this app: help.saveAppLog
+ * Mark channel/supergroup history as read: channels.readHistory
+ * Mark channel/supergroup messages as read: channels.readMessageContents
+ * Mark dialog as unread : messages.markDialogUnread
+ * Mark mentions as read: messages.readMentions
+ * Mark message as read: messages.readMessageContents
+ * Mark messages as read in secret chats: messages.readEncryptedHistory
+ * Mark messages as read: messages.readHistory
+ * Mark messages as read: messages.receivedMessages
+ * Mark new featured stickers as read: messages.readFeaturedStickers
+ * Notify server that you received a call (server will refuse all incoming calls until the current call is over): phone.receivedCall
+ * Pin or unpin dialog: messages.toggleDialogPin
+ * Register device for push notifications: account.registerDevice
+ * Remove a sticker set: messages.uninstallStickerSet
+ * Remove sticker from stickerset: stickers.removeStickerFromSet
+ * Reorder pinned dialogs: messages.reorderPinnedDialogs
+ * Reorder sticker sets: messages.reorderStickerSets
+ * Report a message in a supergroup/channel for spam: channels.reportSpam
+ * Report a message: messages.report
+ * Report a peer for spam: messages.reportSpam
+ * Report for spam a secret chat: messages.reportEncryptedSpam
+ * Report for spam: account.reportPeer
+ * Resend password recovery email: account.resendPasswordEmail
+ * Resend the SMS verification code: auth.resendCode
+ * Reset all notification settings: account.resetNotifySettings
+ * Reset all telegram web login authorizations: account.resetWebAuthorizations
+ * Reset saved contacts: contacts.resetSaved
+ * Reset top peer rating for a certain category/peer: contacts.resetTopPeerRating
+ * Reset wallpapers: account.resetWallPapers
+ * Result type returned by a current query.: invokeAfterMsgs
+ * Returns a list of available wallpapers.: account.getWallPapers
+ * Save a GIF: messages.saveGif
+ * Save a message draft: messages.saveDraft
+ * Save call debugging info: phone.saveCallDebug
+ * Save telegram passport secure value: account.saveSecureValue
+ * Save wallpaper: account.saveWallPaper
+ * Search contacts: contacts.search
+ * Search gifs: messages.searchGifs
+ * Search peers or messages: messages.search
+ * Send a custom request to the bot API: bots.sendCustomRequest
+ * Send a file to a secret chat: messages.sendEncryptedFile
+ * Send a media: messages.sendMedia
+ * Send a message: messages.sendMessage
+ * Send a service message to a secret chat: messages.sendEncryptedService
+ * Send an album: messages.sendMultiMedia
+ * Send an email to recover the 2FA password: auth.requestPasswordRecovery
+ * Send confirmation phone code: account.sendConfirmPhoneCode
+ * Send email verification code: account.sendVerifyEmailCode
+ * Send inline bot result obtained with messages.getInlineBotResults to the chat: messages.sendInlineBotResult
+ * Send message to secret chat: messages.sendEncrypted
+ * Send phone verification code: account.sendVerifyPhoneCode
+ * Send screenshot notification: messages.sendScreenshotNotification
+ * Send typing notification to secret chat: messages.setEncryptedTyping
+ * Send vote: messages.sendVote
+ * Send webhook request via bot API: bots.answerWebhookJSONQuery
+ * Set account TTL: account.setAccountTTL
+ * Set contact sign up notification: account.setContactSignUpNotification
+ * Set phone call rating: phone.setCallRating
+ * Set privacy settings: account.setPrivacy
+ * Set secure value error for telegram passport: users.setSecureValueErrors
+ * Set the game score of an inline message: messages.setInlineGameScore
+ * Set the game score: messages.setGameScore
+ * Set the supergroup/channel stickerpack: channels.setStickers
+ * Set the update status of webhook: help.setBotUpdatesStatus
+ * Start a bot: messages.startBot
+ * Start account exporting session: account.initTakeoutSession
+ * Stop sending PUSH notifications to app: account.unregisterDevice
+ * Toggle channel signatures: channels.toggleSignatures
+ * Toggle top peers: contacts.toggleTopPeers
+ * Unblock a user: contacts.unblock
+ * Update online status: account.updateStatus
+ * Update pinned message (private chat only): messages.updatePinnedMessage
+ * Update profile info: account.updateProfile
+ * Update the username of a supergroup/channel: channels.updateUsername
+ * Update this user's username: account.updateUsername
+ * Upload a file without sending it to anyone: messages.uploadMedia
+ * Upload a secret chat file without sending it to anyone: messages.uploadEncryptedFile
+ * Upload profile photo: photos.uploadProfilePhoto
+ * Upload wallpaper: account.uploadWallPaper
+ * Use the code that was emailed to you after running $MadelineProto->auth->requestPasswordRecovery to login to your account: auth.recoverPassword
+ * Validate requested payment info: payments.validateRequestedInfo
+ * Verify email address: account.verifyEmail
+ * Verify phone number: account.verifyPhone
* [Peers](https://docs.madelineproto.xyz/docs/USING_METHODS.html#peers)
* [Files](https://docs.madelineproto.xyz/docs/FILES.html)
* [Secret chats](https://docs.madelineproto.xyz/docs/USING_METHODS.html#secret-chats)
diff --git a/build_docs.php b/build_docs.php
index a6971b61..d34c186b 100755
--- a/build_docs.php
+++ b/build_docs.php
@@ -80,3 +80,106 @@ foreach ($docs as $settings) {
$doc = new \danog\MadelineProto\DocsBuilder($logger, $settings);
$doc->mk_docs();
}
+
+chdir(__DIR__);
+
+$orderedfiles = [];
+$order = [
+ 'CREATING_A_CLIENT',
+ 'LOGIN',
+ 'FEATURES',
+ 'REQUIREMENTS',
+ 'INSTALLATION',
+ 'UPDATES',
+ 'SETTINGS',
+ 'SELF',
+ 'EXCEPTIONS',
+ 'FLOOD_WAIT',
+ 'LOGGING',
+ 'CALLS',
+ 'FILES',
+ 'CHAT_INFO',
+ 'DIALOGS',
+ 'INLINE_BUTTONS',
+ 'SECRET_CHATS',
+ 'LUA',
+ 'PROXY',
+ 'USING_METHODS',
+ 'CONTRIB',
+ 'TEMPLATES'
+];
+$index = '';
+$files = glob('docs/docs/docs/*md');
+foreach ($files as $file) {
+ $base = basename($file, '.md');
+ $key = array_search($base, $order);
+ if ($key !== false) {
+ $orderedfiles[$key] = $file;
+ }
+}
+ksort($orderedfiles);
+foreach ($orderedfiles as $key => $filename) {
+ $lines = explode("\n", file_get_contents($filename));
+ while (end($lines) === '' || strpos(end($lines), 'Next')) {
+ unset($lines[count($lines) - 1]);
+ }
+ if ($lines[0] === '---') {
+ array_shift($lines);
+ while ($lines[0] !== '---') {
+ array_shift($lines);
+ }
+ array_shift($lines);
+ }
+ preg_match('|^# (.*)|', $lines[0], $matches);
+ $title = $matches[1];
+ $description = $lines[2];
+
+ array_unshift($lines, '---', 'title: '.$title, 'description: '.$description, 'image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png', '---');
+
+ if (isset($orderedfiles[$key + 1])) {
+ $nextfile = 'https://docs.madelineproto.xyz/docs/'.basename($orderedfiles[$key + 1], '.md').'.html';
+ $prevfile = $key === 0 ? 'https://docs.madelineproto.xyz' : 'https://docs.madelineproto.xyz/docs/'.basename($orderedfiles[$key - 1], '.md').'.html';
+ $lines[count($lines)] = "\nNext section";
+ } else {
+ $lines[count($lines)] = "\nNext section";
+ }
+ file_put_contents($filename, implode("\n", $lines));
+
+ $file = file_get_contents($filename);
+
+ preg_match_all('|( *)\* \[(.*)\]\((.*)\)|', $file, $matches);
+ $file = 'https://docs.madelineproto.xyz/docs/'.basename($filename, '.md').'.html';
+ $index .= "* [$title]($file)\n";
+ if (basename($filename) !== 'FEATURES.md') {
+ foreach ($matches[1] as $key => $match) {
+ $spaces = " $match";
+ $name = $matches[2][$key];
+ $url = $matches[3][$key][0] === '#' ? $file.$matches[3][$key] : $matches[3][$key];
+ $index .= "$spaces* [$name]($url)\n";
+ if ($name === 'FULL API Documentation with descriptions') {
+ $spaces .= " ";
+ preg_match_all('|\* (.*)|', file_get_contents('docs/docs/API_docs/methods/index.md'), $smatches);
+ foreach ($smatches[1] as $key => $match) {
+ $match = str_replace('href="', 'href="https://docs.madelineproto.xyz/API_docs/methods/', $match);
+ $index .= "$spaces* ".$match."\n";
+ }
+ }
+ }
+ }
+}
+
+$readme = explode('## ', file_get_contents('README.md'));
+foreach ($readme as &$section) {
+ if (explode("\n", $section)[0] === 'Documentation') {
+ $section = "Documentation\n\n".$index."\n";
+ }
+}
+$readme = implode('## ', $readme);
+
+file_put_contents('README.md', $readme);
+file_put_contents('docs/docs/index.md', '---
+title: MadelineProto documentation
+description: PHP client/server for the telegram MTProto protocol (a better tg-cli)
+image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
+---
+'.$readme);
diff --git a/build_docs_index.php b/build_docs_index.php
deleted file mode 100644
index cb97064e..00000000
--- a/build_docs_index.php
+++ /dev/null
@@ -1,100 +0,0 @@
- $filename) {
- $lines = explode("\n", file_get_contents($filename));
- while (end($lines) === '' || strpos(end($lines), 'Next')) {
- unset($lines[count($lines) - 1]);
- }
- if ($lines[0] === '---') {
- array_shift($lines);
- while ($lines[0] !== '---') {
- array_shift($lines);
- }
- array_shift($lines);
- }
- preg_match('|^# (.*)|', $lines[0], $matches);
- $title = $matches[1];
- $description = $lines[2];
-
- array_unshift($lines, '---', 'title: '.$title, 'description: '.$description, 'image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png', '---');
-
- if (isset($orderedfiles[$key + 1])) {
- $nextfile = 'https://docs.madelineproto.xyz/docs/'.basename($orderedfiles[$key + 1], '.md').'.html';
- $prevfile = $key === 0 ? 'https://docs.madelineproto.xyz' : 'https://docs.madelineproto.xyz/docs/'.basename($orderedfiles[$key - 1], '.md').'.html';
- $lines[count($lines)] = "\nNext section";
- } else {
- $lines[count($lines)] = "\nNext section";
- }
- file_put_contents($filename, implode("\n", $lines));
-
- $file = file_get_contents($filename);
-
- preg_match_all('|( *)\* \[(.*)\]\((.*)\)|', $file, $matches);
- $file = 'https://docs.madelineproto.xyz/docs/'.basename($filename, '.md').'.html';
- $index .= "* [$title]($file)\n";
- if (basename($filename) !== 'FEATURES.md') {
- foreach ($matches[1] as $key => $match) {
- $spaces = " $match";
- $name = $matches[2][$key];
- $url = $matches[3][$key][0] === '#' ? $file.$matches[3][$key] : $matches[3][$key];
- $index .= "$spaces* [$name]($url)\n";
- if ($name === 'FULL API Documentation with descriptions') {
- $spaces .= " ";
- preg_match_all('|\* (.*)|', file_get_contents('docs/docs/API_docs/methods/index.md'), $smatches);
- foreach ($smatches[1] as $key => $match) {
- $match = str_replace('href="', 'href="https://docs.madelineproto.xyz/API_docs/methods/');
- $index .= "$spaces* ".$match."\n";
- }
- }
- }
- }
-}
-
-$readme = explode('## ', file_get_contents('README.md'));
-foreach ($readme as &$section) {
- if (explode("\n", $section)[0] === 'Documentation') {
- $section = "Documentation\n\n".$index."\n";
- }
-}
-$readme = implode('## ', $readme);
-
-file_put_contents('README.md', $readme);
-file_put_contents('docs/docs/index.md', '---
-title: MadelineProto documentation
-description: PHP client/server for the telegram MTProto protocol (a better tg-cli)
-image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
----
-'.$readme);
diff --git a/docs b/docs
index 82b301b0..f2a7aa52 160000
--- a/docs
+++ b/docs
@@ -1 +1 @@
-Subproject commit 82b301b00560298776ce9ca852e8db71ac21b2e9
+Subproject commit f2a7aa5294263a5db36d252caca6183bcc70b4b6