Update content of files

This commit is contained in:
GitHub Action 2022-01-14 08:28:07 +00:00
parent a7bcac37a4
commit 8b07207aa2
16 changed files with 795 additions and 2492 deletions

View file

@ -1,140 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Commands</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Bots offer a set of commands that can be used by users in private, or in a chat.">
<meta property="og:title" content="Commands">
<meta property="og:image" content="">
<meta property="og:description" content="Bots offer a set of commands that can be used by users in private, or in a chat.">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/bots%2Fcommands" >Commands</a></li></ul></div>
<h1 id="dev_page_title">Commands</h1>
<div id="dev_page_content"><!-- scroll_nav -->
<p><a href="/bots">Bots</a> offer a set of <a href="/bots/#commands">commands</a> that can be used by users in private, or in a chat. </p>
<p>For a simplified description using the HTTP bot API, see <a href="/bots/#commands">here »</a>. </p>
<h3><a class="anchor" href="#getting-commands" id="getting-commands" name="getting-commands"><i class="anchor-icon"></i></a>Getting commands</h3>
<pre><code><a href='/constructor/botCommand'>botCommand</a>#c27ac8c7 command:<a href='/type/string'>string</a> description:<a href='/type/string'>string</a> = <a href='/type/BotCommand'>BotCommand</a>;
<a href='/constructor/botInfo'>botInfo</a>#1b74b335 user_id:<a href='/type/long'>long</a> description:<a href='/type/string'>string</a> commands:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/BotCommand'>BotCommand</a>&gt; = <a href='/type/BotInfo'>BotInfo</a>;
<a href='/constructor/channelFull'>channelFull</a>#e9b27a17 flags:<a href='/type/%23'>#</a> can_view_participants:flags.3?<a href='/constructor/true'>true</a> can_set_username:flags.6?<a href='/constructor/true'>true</a> can_set_stickers:flags.7?<a href='/constructor/true'>true</a> hidden_prehistory:flags.10?<a href='/constructor/true'>true</a> can_set_location:flags.16?<a href='/constructor/true'>true</a> has_scheduled:flags.19?<a href='/constructor/true'>true</a> can_view_stats:flags.20?<a href='/constructor/true'>true</a> blocked:flags.22?<a href='/constructor/true'>true</a> id:<a href='/type/long'>long</a> about:<a href='/type/string'>string</a> participants_count:flags.0?<a href='/type/int'>int</a> admins_count:flags.1?<a href='/type/int'>int</a> kicked_count:flags.2?<a href='/type/int'>int</a> banned_count:flags.2?<a href='/type/int'>int</a> online_count:flags.13?<a href='/type/int'>int</a> read_inbox_max_id:<a href='/type/int'>int</a> read_outbox_max_id:<a href='/type/int'>int</a> unread_count:<a href='/type/int'>int</a> chat_photo:<a href='/type/Photo'>Photo</a> notify_settings:<a href='/type/PeerNotifySettings'>PeerNotifySettings</a> exported_invite:flags.23?<a href='/type/ExportedChatInvite'>ExportedChatInvite</a> bot_info:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/BotInfo'>BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href='/type/long'>long</a> migrated_from_max_id:flags.4?<a href='/type/int'>int</a> pinned_msg_id:flags.5?<a href='/type/int'>int</a> stickerset:flags.8?<a href='/type/StickerSet'>StickerSet</a> available_min_id:flags.9?<a href='/type/int'>int</a> folder_id:flags.11?<a href='/type/int'>int</a> linked_chat_id:flags.14?<a href='/type/long'>long</a> location:flags.15?<a href='/type/ChannelLocation'>ChannelLocation</a> slowmode_seconds:flags.17?<a href='/type/int'>int</a> slowmode_next_send_date:flags.18?<a href='/type/int'>int</a> stats_dc:flags.12?<a href='/type/int'>int</a> pts:<a href='/type/int'>int</a> call:flags.21?<a href='/type/InputGroupCall'>InputGroupCall</a> ttl_period:flags.24?<a href='/type/int'>int</a> pending_suggestions:flags.25?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/string'>string</a>&gt; groupcall_default_join_as:flags.26?<a href='/type/Peer'>Peer</a> theme_emoticon:flags.27?<a href='/type/string'>string</a> = <a href='/type/ChatFull'>ChatFull</a>;
<a href='/constructor/userFull'>userFull</a>#d697ff05 flags:<a href='/type/%23'>#</a> blocked:flags.0?<a href='/constructor/true'>true</a> phone_calls_available:flags.4?<a href='/constructor/true'>true</a> phone_calls_private:flags.5?<a href='/constructor/true'>true</a> can_pin_message:flags.7?<a href='/constructor/true'>true</a> has_scheduled:flags.12?<a href='/constructor/true'>true</a> video_calls_available:flags.13?<a href='/constructor/true'>true</a> user:<a href='/type/User'>User</a> about:flags.1?<a href='/type/string'>string</a> settings:<a href='/type/PeerSettings'>PeerSettings</a> profile_photo:flags.2?<a href='/type/Photo'>Photo</a> notify_settings:<a href='/type/PeerNotifySettings'>PeerNotifySettings</a> bot_info:flags.3?<a href='/type/BotInfo'>BotInfo</a> pinned_msg_id:flags.6?<a href='/type/int'>int</a> common_chats_count:<a href='/type/int'>int</a> folder_id:flags.11?<a href='/type/int'>int</a> ttl_period:flags.14?<a href='/type/int'>int</a> theme_emoticon:flags.15?<a href='/type/string'>string</a> = <a href='/type/UserFull'>UserFull</a>;
<a href='/constructor/user'>user</a>#3ff6ecb0 flags:<a href='/type/%23'>#</a> self:flags.10?<a href='/constructor/true'>true</a> contact:flags.11?<a href='/constructor/true'>true</a> mutual_contact:flags.12?<a href='/constructor/true'>true</a> deleted:flags.13?<a href='/constructor/true'>true</a> bot:flags.14?<a href='/constructor/true'>true</a> bot_chat_history:flags.15?<a href='/constructor/true'>true</a> bot_nochats:flags.16?<a href='/constructor/true'>true</a> verified:flags.17?<a href='/constructor/true'>true</a> restricted:flags.18?<a href='/constructor/true'>true</a> min:flags.20?<a href='/constructor/true'>true</a> bot_inline_geo:flags.21?<a href='/constructor/true'>true</a> support:flags.23?<a href='/constructor/true'>true</a> scam:flags.24?<a href='/constructor/true'>true</a> apply_min_photo:flags.25?<a href='/constructor/true'>true</a> fake:flags.26?<a href='/constructor/true'>true</a> id:<a href='/type/long'>long</a> access_hash:flags.0?<a href='/type/long'>long</a> first_name:flags.1?<a href='/type/string'>string</a> last_name:flags.2?<a href='/type/string'>string</a> username:flags.3?<a href='/type/string'>string</a> phone:flags.4?<a href='/type/string'>string</a> photo:flags.5?<a href='/type/UserProfilePhoto'>UserProfilePhoto</a> status:flags.6?<a href='/type/UserStatus'>UserStatus</a> bot_info_version:flags.14?<a href='/type/int'>int</a> restriction_reason:flags.18?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/RestrictionReason'>RestrictionReason</a>&gt; bot_inline_placeholder:flags.19?<a href='/type/string'>string</a> lang_code:flags.22?<a href='/type/string'>string</a> = <a href='/type/User'>User</a>;</code></pre>
<p>The <a href="/constructor/botInfo">botInfo</a> constructors contained in the <a href="/constructor/userFull">userFull</a>, <a href="/constructor/chatFull">chatFull</a>, <a href="/constructor/channelFull">channelFull</a> contain a list of commands, and for groups, the ID and a description of each bot. </p>
<p>In graphical clients, when users begin a message with a <code>/</code>, a list of commands supported by all bots present in the current chat should be shown; the same should be done for one-to-one chats with the bot itself. </p>
<p>If the command list of a bot changes, the <code>bot_info_version</code> contained in the <a href="/constructor/user">user</a> constructor received in updates will change; this indicates that the client should refetch full bot information using <a href="/method/users.getFullUser">users.getFullUser</a>.</p>
<h3><a class="anchor" href="#setting-commands" id="setting-commands" name="setting-commands"><i class="anchor-icon"></i></a>Setting commands</h3>
<pre><code><a href='/constructor/botCommand'>botCommand</a>#c27ac8c7 command:<a href='/type/string'>string</a> description:<a href='/type/string'>string</a> = <a href='/type/BotCommand'>BotCommand</a>;
---functions---
<a href='/method/bots.setBotCommands'>bots.setBotCommands</a>#517165a scope:<a href='/type/BotCommandScope'>BotCommandScope</a> lang_code:<a href='/type/string'>string</a> commands:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/BotCommand'>BotCommand</a>&gt; = <a href='/type/Bool'>Bool</a>;</code></pre>
<p>The command list can be changed by the owner of the bot through <a href="https://t.me/botfather">@botfather</a>, but bots can also change their own command list by invoking <a href="/method/bots.setBotCommands">bots.setBotCommands</a>.</p></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js?1"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,140 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Creating your Telegram Application</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="How to get your application identifier and create a new Telegram app.">
<meta property="og:title" content="Creating your Telegram Application">
<meta property="og:image" content="06c229ff662379138f">
<meta property="og:description" content="How to get your application identifier and create a new Telegram app.">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/obtaining_api_id" >Creating your Telegram Application</a></li></ul></div>
<h1 id="dev_page_title">Creating your Telegram Application</h1>
<div id="dev_page_content"><p>We welcome all developers to use our <a href="https://core.telegram.org/api#telegram-api">API</a> and source code to create Telegram-like messaging applications on our platform free of charge.</p>
<blockquote>
<p>In order to ensure consistency and security across the Telegram ecosystem,
<strong>all third-party client apps</strong> must comply with the <a href="/api/terms"><strong>API Terms of Service</strong></a>.</p>
</blockquote>
<h3><a class="anchor" href="#obtaining-api-id" id="obtaining-api-id" name="obtaining-api-id"><i class="anchor-icon"></i></a>Obtaining api_id</h3>
<p>In order to obtain an <strong>API id</strong> and develop your own application using the Telegram API you need to do the following:</p>
<ul>
<li>Sign up for Telegram using any application.</li>
<li>Log in to your Telegram core: <a href="https://my.telegram.org">https://my.telegram.org</a>.</li>
<li>Go to <a href="https://my.telegram.org/apps">'API development tools'</a> and fill out the form.</li>
<li>You will get basic addresses as well as the <strong>api_id</strong> and <strong>api_hash</strong> parameters required for user authorization.</li>
<li>For the moment each number can only have one api_id connected to it.</li>
</ul>
<p>We will be sending important developer notifications to the phone number that you use in this process, so please use an up-to-date number connected to your active Telegram account.</p>
<h3><a class="anchor" href="#using-the-api-id" id="using-the-api-id" name="using-the-api-id"><i class="anchor-icon"></i></a>Using the api_id</h3>
<p>Before using the MTProto Telegram API, please note that all API client libraries are strictly monitored to prevent abuse.</p>
<p>If you use the Telegram API for flooding, spamming, faking subscriber and view counters of channels, you <strong>will be banned forever</strong>. </p>
<p>Due to excessive abuse of the Telegram API, <strong>all accounts</strong> that sign up or log in using unofficial Telegram API clients are automatically put <strong>under observation</strong> to avoid violations of the <a href="/api/terms">Terms of Service</a>. </p>
<p>If you didn't violate the Terms of Service but your account does get banned after using the API, write to <a href="mailto:recover@telegram.org">recover@telegram.org</a> explaining what you intend to do with the API, asking to unban your account.<br>
Please note that emails are checked by a human, so automatically generated emails will be detected and banned.</p>
<h3><a class="anchor" href="#using-telegrams-open-source-code" id="using-telegrams-open-source-code" name="using-telegrams-open-source-code"><i class="anchor-icon"></i></a>Using Telegram's open source code</h3>
<p>Everyone is welcome to use our open source code. We have included a sample API id with the code. This API id is limited on the server side and is not suitable for apps released to end-users — using it for anything but testing purposes will result in the API_ID_PUBLISHED_FLOOD error for your users. It is necessary that you obtain your <strong>own API id</strong> before you publish your app.</p>
<blockquote>
<p>Please remember to publish your code as well in order to comply with the GNU GPL licences.</p>
</blockquote></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -0,0 +1,297 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Channel statistics</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Telegram offers detailed channel statistics for channels and supergroups.">
<meta property="og:title" content="Channel statistics">
<meta property="og:image" content="">
<meta property="og:description" content="Telegram offers detailed channel statistics for channels and supergroups.">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/stats" >Channel statistics</a></li></ul></div>
<h1 id="dev_page_title">Channel statistics</h1>
<div id="dev_page_content"><!-- scroll_nav -->
<p>Telegram offers detailed channel statistics for channels and supergroups. </p>
<h3><a class="anchor" href="#channel-statistics" id="channel-statistics" name="channel-statistics"><i class="anchor-icon"></i></a>Channel statistics</h3>
<p>Schema:</p>
<pre><code><a href='/constructor/statsDateRangeDays'>statsDateRangeDays</a>#b637edaf min_date:<a href='/type/int'>int</a> max_date:<a href='/type/int'>int</a> = <a href='/type/StatsDateRangeDays'>StatsDateRangeDays</a>;
<a href='/constructor/statsAbsValueAndPrev'>statsAbsValueAndPrev</a>#cb43acde current:<a href='/type/double'>double</a> previous:<a href='/type/double'>double</a> = <a href='/type/StatsAbsValueAndPrev'>StatsAbsValueAndPrev</a>;
<a href='/constructor/statsPercentValue'>statsPercentValue</a>#cbce2fe0 part:<a href='/type/double'>double</a> total:<a href='/type/double'>double</a> = <a href='/type/StatsPercentValue'>StatsPercentValue</a>;
<a href='/constructor/statsGraphAsync'>statsGraphAsync</a>#4a27eb2d token:<a href='/type/string'>string</a> = <a href='/type/StatsGraph'>StatsGraph</a>;
<a href='/constructor/statsGraphError'>statsGraphError</a>#bedc9822 error:<a href='/type/string'>string</a> = <a href='/type/StatsGraph'>StatsGraph</a>;
<a href='/constructor/statsGraph'>statsGraph</a>#8ea464b6 flags:<a href='/type/%23'>#</a> json:<a href='/type/DataJSON'>DataJSON</a> zoom_token:flags.0?<a href='/type/string'>string</a> = <a href='/type/StatsGraph'>StatsGraph</a>;
<a href='/constructor/messageInteractionCounters'>messageInteractionCounters</a>#ad4fc9bd msg_id:<a href='/type/int'>int</a> views:<a href='/type/int'>int</a> forwards:<a href='/type/int'>int</a> = <a href='/type/MessageInteractionCounters'>MessageInteractionCounters</a>;
<a href='/constructor/stats.broadcastStats'>stats.broadcastStats</a>#bdf78394 period:<a href='/type/StatsDateRangeDays'>StatsDateRangeDays</a> followers:<a href='/type/StatsAbsValueAndPrev'>StatsAbsValueAndPrev</a> views_per_post:<a href='/type/StatsAbsValueAndPrev'>StatsAbsValueAndPrev</a> shares_per_post:<a href='/type/StatsAbsValueAndPrev'>StatsAbsValueAndPrev</a> enabled_notifications:<a href='/type/StatsPercentValue'>StatsPercentValue</a> growth_graph:<a href='/type/StatsGraph'>StatsGraph</a> followers_graph:<a href='/type/StatsGraph'>StatsGraph</a> mute_graph:<a href='/type/StatsGraph'>StatsGraph</a> top_hours_graph:<a href='/type/StatsGraph'>StatsGraph</a> interactions_graph:<a href='/type/StatsGraph'>StatsGraph</a> iv_interactions_graph:<a href='/type/StatsGraph'>StatsGraph</a> views_by_source_graph:<a href='/type/StatsGraph'>StatsGraph</a> new_followers_by_source_graph:<a href='/type/StatsGraph'>StatsGraph</a> languages_graph:<a href='/type/StatsGraph'>StatsGraph</a> recent_message_interactions:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageInteractionCounters'>MessageInteractionCounters</a>&gt; = <a href='/type/stats.BroadcastStats'>stats.BroadcastStats</a>;
---functions---
<a href='/method/stats.getBroadcastStats'>stats.getBroadcastStats</a>#ab42441a flags:<a href='/type/%23'>#</a> dark:flags.0?<a href='/constructor/true'>true</a> channel:<a href='/type/InputChannel'>InputChannel</a> = <a href='/type/stats.BroadcastStats'>stats.BroadcastStats</a>;
<a href='/method/stats.loadAsyncGraph'>stats.loadAsyncGraph</a>#621d5fa0 flags:<a href='/type/%23'>#</a> token:<a href='/type/string'>string</a> x:flags.0?<a href='/type/long'>long</a> = <a href='/type/StatsGraph'>StatsGraph</a>;</code></pre>
<p>Administrators of <a href="/api/channel">channels</a> of a certain size (the exact limit is a server-side config, returned in the <code>can_view_stats</code> flag of <a href="/constructor/channelFull">channelFull</a>) can call <a href="/method/stats.getBroadcastStats">stats.getBroadcastStats</a> to get detailed channel statistics.<br>
The returned <a href="/constructor/stats.broadcastStats">stats.broadcastStats</a> contains multiple statistics: </p>
<ul>
<li>Period-related statistics: a pair of values, one at the beginning and one at the end of the period in consideration (<code>period</code>). <br> The <code>period</code> typically depends on channel activity.<ul>
<li>Absolute follower count (<code>followers</code>)</li>
<li><code>total_viewcount/postcount</code>, for posts posted during the period in consideration (<code>views_per_post</code>).<br>
Note that in this case, <code>current</code> refers to the <code>period</code> in consideration (<code>min_date</code> till <code>max_date</code>), and <code>prev</code> refers to the previous period (<code>(min_date - (max_date - min_date))</code> till <code>min_date</code>). </li>
<li><code>total_sharecount/postcount</code>, for posts posted during the period in consideration (<code>shares_per_post</code>).<br>
Note that in this case, <code>current</code> refers to the <code>period</code> in consideration (<code>min_date</code> till <code>max_date</code>), and <code>prev</code> refers to the previous period (<code>(min_date - (max_date - min_date))</code> till <code>min_date</code>).</li>
</ul>
</li>
<li>Percentage statistics<ul>
<li>Percentage of subscribers with enabled notifications (<code>enabled_notifications</code>)</li>
</ul>
</li>
<li>Graphs: <a href="#graph-visualization">graphs are described below »</a>. </li>
</ul>
<h3><a class="anchor" href="#supergroup-statistics" id="supergroup-statistics" name="supergroup-statistics"><i class="anchor-icon"></i></a>Supergroup statistics</h3>
<p>Schema:</p>
<pre><code><a href='/constructor/statsGroupTopPoster'>statsGroupTopPoster</a>#9d04af9b user_id:<a href='/type/long'>long</a> messages:<a href='/type/int'>int</a> avg_chars:<a href='/type/int'>int</a> = <a href='/type/StatsGroupTopPoster'>StatsGroupTopPoster</a>;
<a href='/constructor/statsGroupTopInviter'>statsGroupTopInviter</a>#535f779d user_id:<a href='/type/long'>long</a> invitations:<a href='/type/int'>int</a> = <a href='/type/StatsGroupTopInviter'>StatsGroupTopInviter</a>;
<a href='/constructor/statsGroupTopAdmin'>statsGroupTopAdmin</a>#d7584c87 user_id:<a href='/type/long'>long</a> deleted:<a href='/type/int'>int</a> kicked:<a href='/type/int'>int</a> banned:<a href='/type/int'>int</a> = <a href='/type/StatsGroupTopAdmin'>StatsGroupTopAdmin</a>;
<a href='/constructor/stats.megagroupStats'>stats.megagroupStats</a>#ef7ff916 period:<a href='/type/StatsDateRangeDays'>StatsDateRangeDays</a> members:<a href='/type/StatsAbsValueAndPrev'>StatsAbsValueAndPrev</a> messages:<a href='/type/StatsAbsValueAndPrev'>StatsAbsValueAndPrev</a> viewers:<a href='/type/StatsAbsValueAndPrev'>StatsAbsValueAndPrev</a> posters:<a href='/type/StatsAbsValueAndPrev'>StatsAbsValueAndPrev</a> growth_graph:<a href='/type/StatsGraph'>StatsGraph</a> members_graph:<a href='/type/StatsGraph'>StatsGraph</a> new_members_by_source_graph:<a href='/type/StatsGraph'>StatsGraph</a> languages_graph:<a href='/type/StatsGraph'>StatsGraph</a> messages_graph:<a href='/type/StatsGraph'>StatsGraph</a> actions_graph:<a href='/type/StatsGraph'>StatsGraph</a> top_hours_graph:<a href='/type/StatsGraph'>StatsGraph</a> weekdays_graph:<a href='/type/StatsGraph'>StatsGraph</a> top_posters:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/StatsGroupTopPoster'>StatsGroupTopPoster</a>&gt; top_admins:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/StatsGroupTopAdmin'>StatsGroupTopAdmin</a>&gt; top_inviters:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/StatsGroupTopInviter'>StatsGroupTopInviter</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/stats.MegagroupStats'>stats.MegagroupStats</a>;
---functions---
<a href='/method/stats.getMegagroupStats'>stats.getMegagroupStats</a>#dcdf8607 flags:<a href='/type/%23'>#</a> dark:flags.0?<a href='/constructor/true'>true</a> channel:<a href='/type/InputChannel'>InputChannel</a> = <a href='/type/stats.MegagroupStats'>stats.MegagroupStats</a>;</code></pre>
<p>Administrators of <a href="/api/channel">supergroups</a> of a certain size (the exact limit is a server-side config, returned in the <code>can_view_stats</code> flag of <a href="/constructor/channelFull">channelFull</a>) can call <a href="/method/stats.getMegagroupStats">stats.getMegagroupStats</a> to get detailed supergroup statistics.<br>
The returned <a href="/constructor/stats.broadcastStats">stats.broadcastStats</a> contains multiple statistics, see the <a href="/constructor/stats.broadcastStats">constructor page for more info »</a>. </p>
<h3><a class="anchor" href="#message-statistics" id="message-statistics" name="message-statistics"><i class="anchor-icon"></i></a>Message statistics</h3>
<pre><code><a href='/constructor/stats.messageStats'>stats.messageStats</a>#8999f295 views_graph:<a href='/type/StatsGraph'>StatsGraph</a> = <a href='/type/stats.MessageStats'>stats.MessageStats</a>;
---functions---
<a href='/method/stats.getMessageStats'>stats.getMessageStats</a>#b6e0a3f5 flags:<a href='/type/%23'>#</a> dark:flags.0?<a href='/constructor/true'>true</a> channel:<a href='/type/InputChannel'>InputChannel</a> msg_id:<a href='/type/int'>int</a> = <a href='/type/stats.MessageStats'>stats.MessageStats</a>;</code></pre>
<p>Administrators of <a href="/api/channel">channels</a> of a certain size (the exact limit is a server-side config, returned in the <code>can_view_stats</code> flag of <a href="/constructor/channelFull">channelFull</a>) can call <a href="/method/stats.getMessageStats">stats.getMessageStats</a> to get statistics of a specific message.<br>
The returned <a href="/constructor/stats.messageStats">stats.messageStats</a> contains the view graph of the message. </p>
<h2><a class="anchor" href="#graph-visualization" id="graph-visualization" name="graph-visualization"><i class="anchor-icon"></i></a>Graph visualization</h2>
<p>There are four available visualizations for graph types:</p>
<ul>
<li><a href="#line-graph">Line graph</a></li>
<li><a href="#step-graph">Step graph</a></li>
<li><a href="#bar-graph">Bar graph</a></li>
<li><a href="#area-graph">Area graph</a></li>
</ul>
<p>Graph modifiers (see <a href="#graph-examples">various graphs</a> for examples): </p>
<ul>
<li><code>y_scaled</code> - Indicates that each of the two (!) lines in a step graph must be visualized on its own scale, with two different tick axes on the left and right parts of the graph</li>
<li><code>percentage</code> - Indicates whether value percentages should be shown in labels</li>
<li><code>stacked</code> - Depending on the graph type, indicates stacking of multiple columns in the same graph</li>
</ul>
<h3><a class="anchor" href="#graph-syntax" id="graph-syntax" name="graph-syntax"><i class="anchor-icon"></i></a>Graph syntax</h3>
<pre><code><a href='/constructor/statsGraphAsync'>statsGraphAsync</a>#4a27eb2d token:<a href='/type/string'>string</a> = <a href='/type/StatsGraph'>StatsGraph</a>;
<a href='/constructor/statsGraphError'>statsGraphError</a>#bedc9822 error:<a href='/type/string'>string</a> = <a href='/type/StatsGraph'>StatsGraph</a>;
<a href='/constructor/statsGraph'>statsGraph</a>#8ea464b6 flags:<a href='/type/%23'>#</a> json:<a href='/type/DataJSON'>DataJSON</a> zoom_token:flags.0?<a href='/type/string'>string</a> = <a href='/type/StatsGraph'>StatsGraph</a>;
<a href='/constructor/dataJSON'>dataJSON</a>#7d748d04 data:<a href='/type/string'>string</a> = <a href='/type/DataJSON'>DataJSON</a>;
---functions---
<a href='/method/stats.loadAsyncGraph'>stats.loadAsyncGraph</a>#621d5fa0 flags:<a href='/type/%23'>#</a> token:<a href='/type/string'>string</a> x:flags.0?<a href='/type/long'>long</a> = <a href='/type/StatsGraph'>StatsGraph</a>;</code></pre>
<p>Certain graphs are not directly sent in the <a href="/constructor/stats.broadcastStats">stats.broadcastStats</a> constructor to reduce server load: instead, those graphs will be sent as a <a href="/constructor/statsGraphAsync">statsGraphAsync</a> constructor, and should be fetched separately using <a href="/method/stats.loadAsyncGraph">stats.loadAsyncGraph</a>. </p>
<p>After obtaining the full <a href="/constructor/statsGraph">statsGraph</a> constructor, clients should parse the JSON graph object in the <code>json</code> field.</p>
<p>Object structure: </p>
<table class="table">
<thead>
<tr>
<th>Key</th>
<th>Graph title</th>
</tr>
</thead>
<tbody>
<tr>
<td>columns</td>
<td>Array of all data column arrays in the chart. Each column array has its <strong>label</strong> at position 0, followed by values.</td>
</tr>
<tr>
<td>types</td>
<td><a href="#graphs">Graphs types</a> for each of the column arrays (object, <code>"label": "type"</code>): <br>- <code>line</code> - <a href="#line-graph">line graph</a> <br>- <code>area</code> - <a href="#area-graph">area graph</a> <br>- <code>step</code> - <a href="#step-graph">step graph</a> <br>- <code>bar</code> - <a href="#bar-graph">bar graph</a> <br>- <code>x</code> - x axis values for each of the charts at the corresponding positions, UNIX timestamps in milliseconds.</td>
</tr>
<tr>
<td>colors</td>
<td>Color for each type (object, <code>"label": "colorKey#AAAAAA"</code>; see <a href="#chart-colors">chart colors</a>).</td>
</tr>
<tr>
<td>names</td>
<td>Localized name for each variable (object, <code>"label": "Name"</code>)</td>
</tr>
<tr>
<td>subchart</td>
<td>Object indicating the default zoom range for the graph, this is object's structure: <br>- <code>show</code> - Whether to use the specified zoom range (boolean) <br>- <code>defaultZoom</code> - An array with two <code>x</code> values, indicating the two ends of the default zoom range</td>
</tr>
<tr>
<td>y_scaled</td>
<td>Indicates that each of the two (!) lines in a step graph must be visualized on its own scale, with two different tick axes on the left and right parts of the graph (boolean, see <a href="#graph-examples">various graphs</a> for examples)</td>
</tr>
<tr>
<td>percentage</td>
<td>Indicates whether value percentages should be shown in labels (boolean, see <a href="#graph-examples">various graphs</a> for examples)</td>
</tr>
<tr>
<td>stacked</td>
<td>Depending on the graph type, indicates stacking of multiple columns in the same graph (boolean, see <a href="#graph-examples">various graphs</a> for examples)</td>
</tr>
</tbody>
</table>
<!-- | hidden | Array of columns that should not be visualized in the final graph | -->
<p>The following chart restrictions apply:</p>
<ul>
<li>Up to 50 columns on one graph must be supported.</li>
<li>Chart types are always the same for every column in the graph.</li>
<li>The <code>bar</code> chart type and <code>stacked</code> option are always used together.</li>
<li><code>percentage</code> is always used with the <code>area</code> graph.<!-- * Graphs with every chart type _should_ be able to zoom into the same chart type with the same columns (names and types). -->
<!-- * `y_scaled` is only used with exactly 2 `line` columns -->
</li>
</ul>
<h3><a class="anchor" href="#chart-zooming" id="chart-zooming" name="chart-zooming"><i class="anchor-icon"></i></a>Chart zooming</h3>
<pre><code><a href='/constructor/statsGraphError'>statsGraphError</a>#bedc9822 error:<a href='/type/string'>string</a> = <a href='/type/StatsGraph'>StatsGraph</a>;
<a href='/constructor/statsGraph'>statsGraph</a>#8ea464b6 flags:<a href='/type/%23'>#</a> json:<a href='/type/DataJSON'>DataJSON</a> zoom_token:flags.0?<a href='/type/string'>string</a> = <a href='/type/StatsGraph'>StatsGraph</a>;
<a href='/constructor/dataJSON'>dataJSON</a>#7d748d04 data:<a href='/type/string'>string</a> = <a href='/type/DataJSON'>DataJSON</a>;
---functions---
<a href='/method/stats.loadAsyncGraph'>stats.loadAsyncGraph</a>#621d5fa0 flags:<a href='/type/%23'>#</a> token:<a href='/type/string'>string</a> x:flags.0?<a href='/type/long'>long</a> = <a href='/type/StatsGraph'>StatsGraph</a>;</code></pre>
<p>Graphs that support zooming will contain a <code>zoom_token</code> in the <a href="/constructor/statsGraph">statsGraph</a> constructor.<br>
Said token should be then used as <code>token</code> in a new <a href="/method/stats.loadAsyncGraph">stats.loadAsyncGraph</a> call triggered when the user clicks on the label, related to a certain x axis in the graph (see <a href="#graph-examples">graph examples</a>).<br>
The <code>x</code> coordinate of the label should be provided to the <code>x</code> parameter; the method will then return (if available) a more detailed subgraph.<br>
If not enough data is available, a localized <a href="/constructor/statsGraphError">statsGraphError</a> will be returned. </p>
<p>Typical zoom <em>visualization</em> rules: </p>
<ul>
<li>Any <code>percentage</code> graph (even if a <code>zoom_token</code> is not available) =&gt; <a href="#piechart">piechart</a></li>
<li><a href="#line-graph">line graph</a> =&gt; <a href="#line-graph">line graph</a></li>
<li><a href="#step-graph">step graph</a> =&gt; <a href="#step-graph">step graph</a></li>
<li><a href="#bar-graph">bar graph</a> =&gt; <a href="#bar-graph">bar graph</a></li>
<li><a href="#area-graph">area graph</a> =&gt; <a href="#area-graph">area graph</a></li>
</ul>
<h3><a class="anchor" href="#chart-colors" id="chart-colors" name="chart-colors"><i class="anchor-icon"></i></a>Chart colors</h3>
<p>Chart colors can be provided as a color key, followed by the primary color value in hex format: </p>
<pre><code>red#e05356</code></pre>
<p>The color key can be one of <code>red</code>, <code>lightblue</code>, <code>lightgreen</code>, <code>golden</code>, <code>green</code>, <code>orange</code>, <code>blue</code>, <code>indigo</code>.<br>
Apps can choose to use a color value specified by the currently loaded theme: for example, the <a href="https://github.com/DrKLO/Telegram/blob/dceccae0b74576d092fb3b2accaffded2c0b5f63/TMessagesProj/src/main/java/org/telegram/ui/Charts/data/ChartData.java#L81">android app</a> uses <code>statisticChartLine_*</code> themekeys for each of the color keys, check out the <a href="https://github.com/DrKLO/Telegram/tree/master/TMessagesProj/src/main/assets">assets directory</a> for a bunch of default themes with various colors for channel statistics. </p>
<p>However, the server may also choose to return just a plain color value in hex format: </p>
<pre><code>#e05356</code></pre>
<p>In this case, the <code>dark</code> flag of the <a href="/method/stats.getBroadcastStats">stats.getBroadcastStats</a> method can be used to choose the palette of returned colors.</p>
<h2><a class="anchor" href="#graph-examples" id="graph-examples" name="graph-examples"><i class="anchor-icon"></i></a>Graph examples</h2>
<h3><a class="anchor" href="#line-graph" id="line-graph" name="line-graph"><i class="anchor-icon"></i></a>Line graph</h3>
<p>Simple single line graph</p>
<h3><a class="anchor" href="#step-graph" id="step-graph" name="step-graph"><i class="anchor-icon"></i></a>Step graph</h3>
<p>Step graph, always "stacked" (to indicate multiple lines)</p>
<h3><a class="anchor" href="#bar-graph" id="bar-graph" name="bar-graph"><i class="anchor-icon"></i></a>Bar graph</h3>
<p>Bar graph with multiple lines, always "stacked" (to indicate actual stacked bars, biggest bars first)</p>
<h3><a class="anchor" href="#area-graph" id="area-graph" name="area-graph"><i class="anchor-icon"></i></a>Area graph</h3>
<p>Mixed bar/line graph, always "stacked" (to indicate actual stacked bars, biggest bars first)</p>
<h3><a class="anchor" href="#piechart" id="piechart" name="piechart"><i class="anchor-icon"></i></a>Piechart</h3>
<p>Piechart, typically obtained only when zooming into percentage graphs</p></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js?1"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,133 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Telegram API Terms of Service</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="We welcome all developers to use our API and source code to create Telegram-like messaging applications on our platform…">
<meta property="og:title" content="Telegram API Terms of Service">
<meta property="og:image" content="">
<meta property="og:description" content="We welcome all developers to use our API and source code to create Telegram-like messaging applications on our platform…">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/terms" >Telegram API Terms of Service</a></li></ul></div>
<h1 id="dev_page_title">Telegram API Terms of Service</h1>
<div id="dev_page_content"><!-- scroll_nav -->
<p>We welcome all developers to use our API and source code to <a href="/api/obtaining_api_id">create Telegram-like messaging applications</a> on our platform free of charge. In order to ensure consistency and security across the Telegram ecosystem, all third-party client apps must comply with the following Terms of Service.</p>
<h4><a class="anchor" name="1-privacy-amp-security" href="#1-privacy-amp-security"><i class="anchor-icon"></i></a>1. Privacy &amp; Security</h4>
<p><strong>1.1.</strong> Telegram is a privacy-oriented platform. All client apps must, therefore, guard their users&#39; privacy with utmost care and comply with our <a href="https://core.telegram.org/mtproto/security_guidelines">Security Guidelines</a>.<br><strong>1.2.</strong> Developers are welcome to add new features or improve and extend existing Telegram features provided that these modifications do not violate these Terms of Service.<br><strong>1.3.</strong> As a client developer, you must make sure that all the basic features of the main Telegram apps function correctly and in an expected way both in your app and when users of your app communicate with other Telegram users. It is forbidden to force users of other Telegram clients to download your app in order to view certain messages and content sent using your app.<br><strong>1.4.</strong> It is forbidden to interfere with the basic functionality of Telegram. This includes but is not limited to: making actions on behalf of the user without the user&#39;s knowledge and consent, preventing self-destructing content from disappearing, preventing last seen and online statuses from being displayed correctly, tampering with the &#39;read&#39; statuses of messages (e.g. implementing a &#39;ghost mode&#39;), preventing typing statuses from being sent/displayed, etc. </p>
<h4><a class="anchor" name="2-transparency" href="#2-transparency"><i class="anchor-icon"></i></a>2. Transparency</h4>
<p><strong>2.1.</strong> You must <a href="/api/obtaining_api_id#obtaining-api-id">obtain your own api_id</a> for your application.<br><strong>2.2.</strong> We offer our API free of charge, but your users must be aware of the fact that your app uses the Telegram API and is part of the Telegram ecosystem. This fact must be featured prominently in the app&#39;s description in the app stores and in the in-app intro if your app has it.<br><strong>2.3.</strong> To avoid confusion, the title of your app must not include the word “Telegram”. An exception can be made if the word “Telegram” is preceded with the word “Unofficial” in the title.<br><strong>2.4.</strong> You must not use the official Telegram logo for your app. Both the Telegram brand and its logo are registered trademarks protected by law in almost every country. </p>
<h4><a class="anchor" name="3-advertising-amp-monetization" href="#3-advertising-amp-monetization"><i class="anchor-icon"></i></a>3. Advertising &amp; Monetization</h4>
<p><strong>3.1.</strong> Developers are allowed to monetize their coding efforts through advertising or other legitimate means.<br><strong>3.2.</strong> If you decide to monetize your app, you must clearly mention all the methods of monetization that are used in your app in all its app store descriptions.<br><strong>3.3.</strong> If your app allows accessing content from Telegram <a href="https://telegram.org/tour/channels">channels</a>, you must include support for <a href="https://core.telegram.org/api/sponsored-messages">official sponsored messages</a> in Telegram channels and may not interefere with this functionality.</p>
<h4><a class="anchor" name="4-breach-of-terms" href="#4-breach-of-terms"><i class="anchor-icon"></i></a>4. Breach of terms</h4>
<p><strong>4.1.</strong> If your app violates these terms, we will notify the Telegram account responsible for the app about the breach of terms.<br><strong>4.2.</strong> If you do not update the app to fix the highlighted issues within <strong>10</strong> days, we will have to discontinue your access to Telegram API and contact the app stores about the removal of your apps that are using the Telegram API in violation of these terms. </p>
<p>We reserve the right to expand these terms and guidelines as the need arises. We will inform client developers of such changes via an in-app notification to their accounts connected to the app in question. </p>
<blockquote>
<p><a href="https://core.telegram.org/api/obtaining_api_id">Back to Creating Your Telegram Application »</a></p>
</blockquote>
</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js?1"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,289 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>channel</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Channel/supergroup info">
<meta property="og:title" content="channel">
<meta property="og:image" content="">
<meta property="og:description" content="Channel/supergroup info">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class=""><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class="active"><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/channel" >channel</a></li></ul></div>
<h1 id="dev_page_title">channel</h1>
<div id="dev_page_content"><p>Channel/supergroup info</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 137 <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="?layer=1">1 &ndash; Base layer</a></li><li><a href="?layer=2">2 &ndash; New userpic notifications</a></li><li><a href="?layer=3">3 &ndash; Send message can trigger link change</a></li><li><a href="?layer=4">4 &ndash; Check-in chats</a></li><li><a href="?layer=5">5 &ndash; Localized SMS, localized notifications</a></li><li><a href="?layer=6">6 &ndash; Foursquare integration</a></li><li><a href="?layer=7">7 &ndash; Added wallPaperSolid</a></li><li><a href="?layer=8">8 &ndash; Added end-to-end encryption</a></li><li><a href="?layer=9">9 &ndash; Improved big files upload perfomance</a></li><li><a href="?layer=10">10 &ndash; Improved chat participants updates</a></li><li><a href="?layer=11">11 &ndash; Improved secret chats</a></li><li><a href="?layer=12">12 &ndash; New dynamic support</a></li><li><a href="?layer=13">13 &ndash; Audio, video MIME; contacts import retry; new secret actions</a></li><li><a href="?layer=14">14 &ndash; Notify settings sync, blacklist sync</a></li><li><a href="?layer=15">15 &ndash; Modified getHistory offset behaviour</a></li><li><a href="?layer=16">16 &ndash; Split sendCode into 2 parts</a></li><li><a href="?layer=17">17 &ndash; Added custom typing, introduced message flags</a></li><li><a href="?layer=18">18 &ndash; Added usernames</a></li><li><a href="?layer=23">23 &ndash; Stickers for secret chats</a></li><li><a href="?layer=105">105 &ndash; Scheduled messages, Cloud themes</a></li><li><a href="?layer=108">108 &ndash; Login with QR code</a></li><li><a href="?layer=109">109 &ndash; Polls v2</a></li><li><a href="?layer=110">110 &ndash; People Nearby 2.0, Bank card entity</a></li><li><a href="?layer=111">111 &ndash; Folders, Broadcast Stats</a></li><li><a href="?layer=112">112 &ndash; Old featured stickers, generic dice, poll timer, poll solution</a></li><li><a href="?layer=113">113 &ndash; PSA</a></li><li><a href="?layer=114">114 &ndash; Video thumbs for GIFs</a></li><li><a href="?layer=115">115 &ndash; Peek Channel Invite</a></li><li><a href="?layer=116">116 &ndash; Group Stats, Profile Videos</a></li><li><a href="?layer=117">117 &ndash; WebRTC Phone Calls</a></li><li><a href="?layer=118">118 &ndash; Callback with 2FA, Countries list</a></li><li><a href="?layer=119">119 &ndash; Comments in channels, Threads, Anonymous Admins</a></li><li><a href="?layer=120">120 &ndash; Multipins, Message Stats, GeoLive v2</a></li><li><a href="?layer=121">121 &ndash; SVG-based Outlines for Stickers</a></li><li><a href="?layer=122">122 &ndash; Voice Chats</a></li><li><a href="?layer=123">123 &ndash; Voice Chat improvements</a></li><li><a href="?layer=124">124 &ndash; Expiring Invite links</a></li><li><a href="?layer=125">125 &ndash; Voice Chats in Broadcasts</a></li><li><a href="?layer=126">126 &ndash; Ban channels in channels</a></li><li><a href="?layer=127">127 &ndash; Payments in channels</a></li><li><a href="?layer=128">128 &ndash; Microthumbs for User/Chat profile photos</a></li><li><a href="?layer=129">129 &ndash; Video Chats</a></li><li><a href="?layer=130">130 &ndash; Custom placeholder for bot reply keyboards</a></li><li><a href="?layer=131">131 &ndash; Reset 2FA Password after a week</a></li><li><a href="?layer=132">132 &ndash; Chat themes</a></li><li><a href="?layer=133">133 &ndash; 64-bit IDs for User/Chat</a></li><li><a href="?layer=137"><strong>137 &ndash; reactions</strong></a></li>
<li class="divider"></li>
<li><a href="/api/layers">More...</a></li>
</ul>
</li>
</ul>
</div>
<pre class="page_scheme"><code><a href="/constructor/channel" class="current_page_link" >channel</a>#8261ac61 flags:<a href="/type/%23" >#</a> creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true id:<a href="/type/long" >long</a> access_hash:flags.13?<a href="/type/long" >long</a> title:<a href="/type/string" >string</a> username:flags.6?<a href="/type/string" >string</a> photo:<a href="/type/ChatPhoto" >ChatPhoto</a> date:<a href="/type/int" >int</a> restriction_reason:flags.9?<a href="/type/Vector%20t" >Vector</a>&lt;<a href="/type/RestrictionReason" >RestrictionReason</a>&gt; admin_rights:flags.14?<a href="/type/ChatAdminRights" >ChatAdminRights</a> banned_rights:flags.15?<a href="/type/ChatBannedRights" >ChatBannedRights</a> default_banned_rights:flags.18?<a href="/type/ChatBannedRights" >ChatBannedRights</a> participants_count:flags.17?<a href="/type/int" >int</a> = <a href="/type/Chat" >Chat</a>;</code></pre></p>
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th style="text-align: center;">Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>flags</strong></td>
<td style="text-align: center;"><a href="/type/%23">#</a></td>
<td>Flags, see <a href="/mtproto/TL-combinators#conditional-fields">TL conditional fields</a></td>
</tr>
<tr>
<td><strong>creator</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/constructor/true">true</a></td>
<td>Whether the current user is the creator of this channel</td>
</tr>
<tr>
<td><strong>left</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/constructor/true">true</a></td>
<td>Whether the current user has left this channel</td>
</tr>
<tr>
<td><strong>broadcast</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.5?<a href="/constructor/true">true</a></td>
<td>Is this a channel?</td>
</tr>
<tr>
<td><strong>verified</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.7?<a href="/constructor/true">true</a></td>
<td>Is this channel verified by telegram?</td>
</tr>
<tr>
<td><strong>megagroup</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.8?<a href="/constructor/true">true</a></td>
<td>Is this a supergroup?</td>
</tr>
<tr>
<td><strong>restricted</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.9?<a href="/constructor/true">true</a></td>
<td>Whether viewing/writing in this channel for a reason (see <code>restriction_reason</code></td>
</tr>
<tr>
<td><strong>signatures</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.11?<a href="/constructor/true">true</a></td>
<td>Whether signatures are enabled (channels)</td>
</tr>
<tr>
<td><strong>min</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.12?<a href="/constructor/true">true</a></td>
<td>See <a href="/api/min">min</a></td>
</tr>
<tr>
<td><strong>scam</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.19?<a href="/constructor/true">true</a></td>
<td>This channel/supergroup is probably a scam</td>
</tr>
<tr>
<td><strong>has_link</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.20?<a href="/constructor/true">true</a></td>
<td>Whether this channel has a private join link</td>
</tr>
<tr>
<td><strong>has_geo</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.21?<a href="/constructor/true">true</a></td>
<td>Whether this chanel has a geoposition</td>
</tr>
<tr>
<td><strong>slowmode_enabled</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.22?<a href="/constructor/true">true</a></td>
<td>Whether slow mode is enabled for groups to prevent flood in chat</td>
</tr>
<tr>
<td><strong>call_active</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.23?<a href="/constructor/true">true</a></td>
<td>Whether a group call or livestream is currently active</td>
</tr>
<tr>
<td><strong>call_not_empty</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.24?<a href="/constructor/true">true</a></td>
<td>Whether there's anyone in the group call or livestream</td>
</tr>
<tr>
<td><strong>fake</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.25?<a href="/constructor/true">true</a></td>
<td>If set, this <a href="/api/channel">supergroup/channel</a> was reported by many users as a fake or scam: be careful when interacting with it.</td>
</tr>
<tr>
<td><strong>gigagroup</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.26?<a href="/constructor/true">true</a></td>
<td>Whether this <a href="/api/channel">supergroup</a> is a gigagroup</td>
</tr>
<tr>
<td><strong>id</strong></td>
<td style="text-align: center;"><a href="/type/long">long</a></td>
<td>ID of the channel</td>
</tr>
<tr>
<td><strong>access_hash</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.13?<a href="/type/long">long</a></td>
<td>Access hash</td>
</tr>
<tr>
<td><strong>title</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td>Title</td>
</tr>
<tr>
<td><strong>username</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.6?<a href="/type/string">string</a></td>
<td>Username</td>
</tr>
<tr>
<td><strong>photo</strong></td>
<td style="text-align: center;"><a href="/type/ChatPhoto">ChatPhoto</a></td>
<td>Profile photo</td>
</tr>
<tr>
<td><strong>date</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Date when the user joined the supergroup/channel, or if the user isn't a member, its creation date</td>
</tr>
<tr>
<td><strong>restriction_reason</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.9?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt;</td>
<td>Contains the reason why access to this channel must be restricted.</td>
</tr>
<tr>
<td><strong>admin_rights</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.14?<a href="/type/ChatAdminRights">ChatAdminRights</a></td>
<td>Admin rights of the user in this channel (see <a href="/api/rights">rights</a>)</td>
</tr>
<tr>
<td><strong>banned_rights</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.15?<a href="/type/ChatBannedRights">ChatBannedRights</a></td>
<td>Banned rights of the user in this channel (see <a href="/api/rights">rights</a>)</td>
</tr>
<tr>
<td><strong>default_banned_rights</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.18?<a href="/type/ChatBannedRights">ChatBannedRights</a></td>
<td>Default chat rights (see <a href="/api/rights">rights</a>)</td>
</tr>
<tr>
<td><strong>participants_count</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.17?<a href="/type/int">int</a></td>
<td>Participant count</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/Chat">Chat</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#min-constructors" id="min-constructors" name="min-constructors"><i class="anchor-icon"></i></a><a href="/api/min">Min constructors</a></h4>
<p>In some situations user and channel constructors have reduced set of fields present (although id is always there) and min flag set.</p>
<h4><a class="anchor" href="#channels" id="channels" name="channels"><i class="anchor-icon"></i></a><a href="/api/channel">Channels</a></h4>
<p>How to handle channels, supergroups, groups, and what's the difference between them.</p>
<h4><a class="anchor" href="#admin-banned-default-rights" id="admin-banned-default-rights" name="admin-banned-default-rights"><i class="anchor-icon"></i></a><a href="/api/rights">Admin, banned, default rights</a></h4>
<p>How to handle admin permissions, granular bans and global permissions in channels, groups and supergroups.</p></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,188 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>phone.confirmCall</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Complete phone call E2E encryption key exchange »">
<meta property="og:title" content="phone.confirmCall">
<meta property="og:image" content="">
<meta property="og:description" content="Complete phone call E2E encryption key exchange »">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/phone.confirmCall" >phone.confirmCall</a></li></ul></div>
<h1 id="dev_page_title">phone.confirmCall</h1>
<div id="dev_page_content"><p><a href="/api/end-to-end/voice-calls">Complete phone call E2E encryption key exchange »</a></p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 137 <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="?layer=1">1 &ndash; Base layer</a></li><li><a href="?layer=2">2 &ndash; New userpic notifications</a></li><li><a href="?layer=3">3 &ndash; Send message can trigger link change</a></li><li><a href="?layer=4">4 &ndash; Check-in chats</a></li><li><a href="?layer=5">5 &ndash; Localized SMS, localized notifications</a></li><li><a href="?layer=6">6 &ndash; Foursquare integration</a></li><li><a href="?layer=7">7 &ndash; Added wallPaperSolid</a></li><li><a href="?layer=8">8 &ndash; Added end-to-end encryption</a></li><li><a href="?layer=9">9 &ndash; Improved big files upload perfomance</a></li><li><a href="?layer=10">10 &ndash; Improved chat participants updates</a></li><li><a href="?layer=11">11 &ndash; Improved secret chats</a></li><li><a href="?layer=12">12 &ndash; New dynamic support</a></li><li><a href="?layer=13">13 &ndash; Audio, video MIME; contacts import retry; new secret actions</a></li><li><a href="?layer=14">14 &ndash; Notify settings sync, blacklist sync</a></li><li><a href="?layer=15">15 &ndash; Modified getHistory offset behaviour</a></li><li><a href="?layer=16">16 &ndash; Split sendCode into 2 parts</a></li><li><a href="?layer=17">17 &ndash; Added custom typing, introduced message flags</a></li><li><a href="?layer=18">18 &ndash; Added usernames</a></li><li><a href="?layer=23">23 &ndash; Stickers for secret chats</a></li><li><a href="?layer=105">105 &ndash; Scheduled messages, Cloud themes</a></li><li><a href="?layer=108">108 &ndash; Login with QR code</a></li><li><a href="?layer=109">109 &ndash; Polls v2</a></li><li><a href="?layer=110">110 &ndash; People Nearby 2.0, Bank card entity</a></li><li><a href="?layer=111">111 &ndash; Folders, Broadcast Stats</a></li><li><a href="?layer=112">112 &ndash; Old featured stickers, generic dice, poll timer, poll solution</a></li><li><a href="?layer=113">113 &ndash; PSA</a></li><li><a href="?layer=114">114 &ndash; Video thumbs for GIFs</a></li><li><a href="?layer=115">115 &ndash; Peek Channel Invite</a></li><li><a href="?layer=116">116 &ndash; Group Stats, Profile Videos</a></li><li><a href="?layer=117">117 &ndash; WebRTC Phone Calls</a></li><li><a href="?layer=118">118 &ndash; Callback with 2FA, Countries list</a></li><li><a href="?layer=119">119 &ndash; Comments in channels, Threads, Anonymous Admins</a></li><li><a href="?layer=120">120 &ndash; Multipins, Message Stats, GeoLive v2</a></li><li><a href="?layer=121">121 &ndash; SVG-based Outlines for Stickers</a></li><li><a href="?layer=122">122 &ndash; Voice Chats</a></li><li><a href="?layer=123">123 &ndash; Voice Chat improvements</a></li><li><a href="?layer=124">124 &ndash; Expiring Invite links</a></li><li><a href="?layer=125">125 &ndash; Voice Chats in Broadcasts</a></li><li><a href="?layer=126">126 &ndash; Ban channels in channels</a></li><li><a href="?layer=127">127 &ndash; Payments in channels</a></li><li><a href="?layer=128">128 &ndash; Microthumbs for User/Chat profile photos</a></li><li><a href="?layer=129">129 &ndash; Video Chats</a></li><li><a href="?layer=130">130 &ndash; Custom placeholder for bot reply keyboards</a></li><li><a href="?layer=131">131 &ndash; Reset 2FA Password after a week</a></li><li><a href="?layer=132">132 &ndash; Chat themes</a></li><li><a href="?layer=133">133 &ndash; 64-bit IDs for User/Chat</a></li><li><a href="?layer=137"><strong>137 &ndash; reactions</strong></a></li>
<li class="divider"></li>
<li><a href="/api/layers">More...</a></li>
</ul>
</li>
</ul>
</div>
<pre class="page_scheme"><code><a href="/constructor/phone.phoneCall" >phone.phoneCall</a>#ec82e140 phone_call:<a href="/type/PhoneCall" >PhoneCall</a> users:<a href="/type/Vector%20t" >Vector</a>&lt;<a href="/type/User" >User</a>&gt; = <a href="/type/phone.PhoneCall" >phone.PhoneCall</a>;
---functions---
<a href="/method/phone.confirmCall" class="current_page_link" >phone.confirmCall</a>#2efe1722 peer:<a href="/type/InputPhoneCall" >InputPhoneCall</a> g_a:<a href="/type/bytes" >bytes</a> key_fingerprint:<a href="/type/long" >long</a> protocol:<a href="/type/PhoneCallProtocol" >PhoneCallProtocol</a> = <a href="/type/phone.PhoneCall" >phone.PhoneCall</a>;</code></pre></p>
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th style="text-align: center;">Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>peer</strong></td>
<td style="text-align: center;"><a href="/type/InputPhoneCall">InputPhoneCall</a></td>
<td>The phone call</td>
</tr>
<tr>
<td><strong>g_a</strong></td>
<td style="text-align: center;"><a href="/type/bytes">bytes</a></td>
<td><a href="/api/end-to-end/voice-calls">Parameter for E2E encryption key exchange »</a></td>
</tr>
<tr>
<td><strong>key_fingerprint</strong></td>
<td style="text-align: center;"><a href="/type/long">long</a></td>
<td>Key fingerprint</td>
</tr>
<tr>
<td><strong>protocol</strong></td>
<td style="text-align: center;"><a href="/type/PhoneCallProtocol">PhoneCallProtocol</a></td>
<td>Phone call settings</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/phone.PhoneCall">phone.PhoneCall</a></p>
<h3><a class="anchor" href="#possible-errors" id="possible-errors" name="possible-errors"><i class="anchor-icon"></i></a>Possible errors</h3>
<table class="table">
<thead>
<tr>
<th>Code</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>400</td>
<td>CALL_ALREADY_DECLINED</td>
<td>The call was already declined.</td>
</tr>
<tr>
<td>400</td>
<td>CALL_PEER_INVALID</td>
<td>The provided call peer object is invalid.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#end-to-end-encrypted-voice-calls" id="end-to-end-encrypted-voice-calls" name="end-to-end-encrypted-voice-calls"><i class="anchor-icon"></i></a><a href="/api/end-to-end/voice-calls">End-to-End Encrypted Voice Calls</a></h4></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -0,0 +1,115 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Nope</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Deprecated old docs. This was definitely not the droid you were looking for.">
<meta property="og:title" content="Nope">
<meta property="og:image" content="">
<meta property="og:description" content="Deprecated old docs. This was definitely not the droid you were looking for.">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/geochats" >Nope</a></li></ul></div>
<h1 id="dev_page_title">Nope</h1>
<div id="dev_page_content"><p>Deprecated old docs. This was definitely not the droid you were looking for.</p></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -0,0 +1,115 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Page not found</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="">
<meta property="og:title" content="Page not found">
<meta property="og:image" content="">
<meta property="og:description" content="">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class=""><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"></div>
<h1 id="dev_page_title">Page not found</h1>
<div id="dev_page_content">The page has not been saved</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -2,12 +2,12 @@
<html class="">
<head>
<meta charset="utf-8">
<title>updateChatUserTyping</title>
<title>decryptedMessageActionSetMessageTTL</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="The user is preparing a message in a group; typing, recording, uploading, etc. This update is valid for 6 seconds. If no repeated update received after 6 seconds, it should be considered that the user stopped doing whatever he&#39;s been doing.">
<meta property="og:title" content="updateChatUserTyping">
<meta property="description" content="Setting of a message lifetime after reading.">
<meta property="og:title" content="decryptedMessageActionSetMessageTTL">
<meta property="og:image" content="">
<meta property="og:description" content="The user is preparing a message in a group; typing, recording, uploading, etc. This update is valid for 6 seconds. If no repeated update received after 6 seconds, it should be considered that the user stopped doing whatever he&#39;s been doing.">
<meta property="og:description" content="Setting of a message lifetime after reading.">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
@ -36,10 +36,11 @@
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/updateChatUserTyping" >updateChatUserTyping</a></li></ul></div>
<h1 id="dev_page_title">updateChatUserTyping</h1>
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/decryptedMessageActionSetMessageTTL" >decryptedMessageActionSetMessageTTL</a></li></ul></div>
<h1 id="dev_page_title">decryptedMessageActionSetMessageTTL</h1>
<div id="dev_page_content"><p>The user is preparing a message in a group; typing, recording, uploading, etc. This update is valid for 6 seconds. If no repeated update received after 6 seconds, it should be considered that the user stopped doing whatever he's been doing.</p>
<div id="dev_page_content"><p>Setting of a message lifetime after reading.</p>
<p>Upon receiving such message the client shall start deleting of all messages of an encrypted chat <strong>ttl_seconds</strong> seconds after the messages were read by user.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
@ -52,7 +53,8 @@
</li>
</ul>
</div>
<pre class="page_scheme"><code><a href="/constructor/updateChatUserTyping" class="current_page_link" >updateChatUserTyping</a>#83487af0 chat_id:<a href="/type/long" >long</a> from_id:<a href="/type/Peer" >Peer</a> action:<a href="/type/SendMessageAction" >SendMessageAction</a> = <a href="/type/Update" >Update</a>;</code></pre></p>
<pre class="page_scheme"><code>===8===
<a href="/constructor/decryptedMessageActionSetMessageTTL" class="current_page_link" >decryptedMessageActionSetMessageTTL</a>#a1733aec ttl_seconds:<a href="/type/int" >int</a> = <a href="/type/DecryptedMessageAction" >DecryptedMessageAction</a>;</code></pre></p>
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
<table class="table">
<thead>
@ -64,27 +66,14 @@
</thead>
<tbody>
<tr>
<td><strong>chat_id</strong></td>
<td style="text-align: center;"><a href="/type/long">long</a></td>
<td>Group id</td>
</tr>
<tr>
<td><strong>from_id</strong></td>
<td style="text-align: center;"><a href="/type/Peer">Peer</a></td>
<td>Peer that started typing (can be the chat itself, in case of anonymous admins).</td>
</tr>
<tr>
<td><strong>action</strong></td>
<td style="text-align: center;"><a href="/type/SendMessageAction">SendMessageAction</a></td>
<td>Type of action<br>Parameter added in <a href="/api/layers#layer-17">Layer 17</a>.</td>
<td><strong>ttl_seconds</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Lifetime in seconds</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/Update">Update</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#layers" id="layers" name="layers"><i class="anchor-icon"></i></a><a href="/api/layers">Layers</a></h4>
<p>Below you will find information on schema changes. For more details on the use of layers, see <a href="/api/invoking#layers">Invoking API methods</a>.</p></div>
<p><a href="/type/DecryptedMessageAction">DecryptedMessageAction</a></p></div>
</div>
@ -123,9 +112,9 @@
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
@ -142,7 +131,7 @@
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>

View file

@ -1,181 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>account.setPrivacy</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Change privacy settings of current account">
<meta property="og:title" content="account.setPrivacy">
<meta property="og:image" content="">
<meta property="og:description" content="Change privacy settings of current account">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/account.setPrivacy" >account.setPrivacy</a></li></ul></div>
<h1 id="dev_page_title">account.setPrivacy</h1>
<div id="dev_page_content"><p>Change privacy settings of current account</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 137 <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="?layer=1">1 &ndash; Base layer</a></li><li><a href="?layer=2">2 &ndash; New userpic notifications</a></li><li><a href="?layer=3">3 &ndash; Send message can trigger link change</a></li><li><a href="?layer=4">4 &ndash; Check-in chats</a></li><li><a href="?layer=5">5 &ndash; Localized SMS, localized notifications</a></li><li><a href="?layer=6">6 &ndash; Foursquare integration</a></li><li><a href="?layer=7">7 &ndash; Added wallPaperSolid</a></li><li><a href="?layer=8">8 &ndash; Added end-to-end encryption</a></li><li><a href="?layer=9">9 &ndash; Improved big files upload perfomance</a></li><li><a href="?layer=10">10 &ndash; Improved chat participants updates</a></li><li><a href="?layer=11">11 &ndash; Improved secret chats</a></li><li><a href="?layer=12">12 &ndash; New dynamic support</a></li><li><a href="?layer=13">13 &ndash; Audio, video MIME; contacts import retry; new secret actions</a></li><li><a href="?layer=14">14 &ndash; Notify settings sync, blacklist sync</a></li><li><a href="?layer=15">15 &ndash; Modified getHistory offset behaviour</a></li><li><a href="?layer=16">16 &ndash; Split sendCode into 2 parts</a></li><li><a href="?layer=17">17 &ndash; Added custom typing, introduced message flags</a></li><li><a href="?layer=18">18 &ndash; Added usernames</a></li><li><a href="?layer=23">23 &ndash; Stickers for secret chats</a></li><li><a href="?layer=105">105 &ndash; Scheduled messages, Cloud themes</a></li><li><a href="?layer=108">108 &ndash; Login with QR code</a></li><li><a href="?layer=109">109 &ndash; Polls v2</a></li><li><a href="?layer=110">110 &ndash; People Nearby 2.0, Bank card entity</a></li><li><a href="?layer=111">111 &ndash; Folders, Broadcast Stats</a></li><li><a href="?layer=112">112 &ndash; Old featured stickers, generic dice, poll timer, poll solution</a></li><li><a href="?layer=113">113 &ndash; PSA</a></li><li><a href="?layer=114">114 &ndash; Video thumbs for GIFs</a></li><li><a href="?layer=115">115 &ndash; Peek Channel Invite</a></li><li><a href="?layer=116">116 &ndash; Group Stats, Profile Videos</a></li><li><a href="?layer=117">117 &ndash; WebRTC Phone Calls</a></li><li><a href="?layer=118">118 &ndash; Callback with 2FA, Countries list</a></li><li><a href="?layer=119">119 &ndash; Comments in channels, Threads, Anonymous Admins</a></li><li><a href="?layer=120">120 &ndash; Multipins, Message Stats, GeoLive v2</a></li><li><a href="?layer=121">121 &ndash; SVG-based Outlines for Stickers</a></li><li><a href="?layer=122">122 &ndash; Voice Chats</a></li><li><a href="?layer=123">123 &ndash; Voice Chat improvements</a></li><li><a href="?layer=124">124 &ndash; Expiring Invite links</a></li><li><a href="?layer=125">125 &ndash; Voice Chats in Broadcasts</a></li><li><a href="?layer=126">126 &ndash; Ban channels in channels</a></li><li><a href="?layer=127">127 &ndash; Payments in channels</a></li><li><a href="?layer=128">128 &ndash; Microthumbs for User/Chat profile photos</a></li><li><a href="?layer=129">129 &ndash; Video Chats</a></li><li><a href="?layer=130">130 &ndash; Custom placeholder for bot reply keyboards</a></li><li><a href="?layer=131">131 &ndash; Reset 2FA Password after a week</a></li><li><a href="?layer=132">132 &ndash; Chat themes</a></li><li><a href="?layer=133">133 &ndash; 64-bit IDs for User/Chat</a></li><li><a href="?layer=137"><strong>137 &ndash; reactions</strong></a></li>
<li class="divider"></li>
<li><a href="/api/layers">More...</a></li>
</ul>
</li>
</ul>
</div>
<pre class="page_scheme"><code><a href="/constructor/account.privacyRules" >account.privacyRules</a>#50a04e45 rules:<a href="/type/Vector%20t" >Vector</a>&lt;<a href="/type/PrivacyRule" >PrivacyRule</a>&gt; chats:<a href="/type/Vector%20t" >Vector</a>&lt;<a href="/type/Chat" >Chat</a>&gt; users:<a href="/type/Vector%20t" >Vector</a>&lt;<a href="/type/User" >User</a>&gt; = <a href="/type/account.PrivacyRules" >account.PrivacyRules</a>;
---functions---
<a href="/method/account.setPrivacy" class="current_page_link" >account.setPrivacy</a>#c9f81ce8 key:<a href="/type/InputPrivacyKey" >InputPrivacyKey</a> rules:<a href="/type/Vector%20t" >Vector</a>&lt;<a href="/type/InputPrivacyRule" >InputPrivacyRule</a>&gt; = <a href="/type/account.PrivacyRules" >account.PrivacyRules</a>;</code></pre></p>
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th style="text-align: center;">Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>key</strong></td>
<td style="text-align: center;"><a href="/type/InputPrivacyKey">InputPrivacyKey</a></td>
<td>Peers to which the privacy rules apply</td>
</tr>
<tr>
<td><strong>rules</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPrivacyRule">InputPrivacyRule</a>&gt;</td>
<td>New privacy rules</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/account.PrivacyRules">account.PrivacyRules</a></p>
<h3><a class="anchor" href="#possible-errors" id="possible-errors" name="possible-errors"><i class="anchor-icon"></i></a>Possible errors</h3>
<table class="table">
<thead>
<tr>
<th>Code</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>400</td>
<td>PRIVACY_KEY_INVALID</td>
<td>The privacy key is invalid.</td>
</tr>
<tr>
<td>400</td>
<td>PRIVACY_TOO_LONG</td>
<td>Too many privacy rules were specified, the current limit is 1000.</td>
</tr>
<tr>
<td>400</td>
<td>PRIVACY_VALUE_INVALID</td>
<td>The specified privacy rule combination is invalid.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -0,0 +1,251 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Formal description of TL combinators</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Formal declaration of TL combinators
Main article: Formal description of TL. See also TL Language.
Combinators in TL are…">
<meta property="og:title" content="Formal description of TL combinators">
<meta property="og:image" content="">
<meta property="og:description" content="Formal declaration of TL combinators
Main article: Formal description of TL. See also TL Language.
Combinators in TL are…">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class=""><a href="/api">API</a></li>
<li class="active"><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/mtproto" >Mobile Protocol</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/mtproto/TL-combinators" >Formal description of TL combinators</a></li></ul></div>
<h1 id="dev_page_title">Formal description of TL combinators</h1>
<div id="dev_page_content"><p><a href="/mtproto/TL-combinators">Formal declaration of TL combinators</a></p>
<p>Main article: <a href="TL-formal">Formal description of TL</a>. See also <a href="TL">TL Language</a>.</p>
<p>Combinators in TL are declared as follows:</p>
<div class="richcode">
<p><em>combinator-decl</em> ::= <em>full-combinator-id</em> { <em>opt-args</em> } { <em>args</em> } <code>=</code> <em>result-type</em> <code>;</code><br>
<em>full-combinator-id</em> ::= <em>lc-ident-full</em> | <code>_</code><br>
<em>combinator-id</em> ::= <em>lc-ident-ns</em> | <code>_</code><br>
<em>opt-args</em> ::= <code>{</code> <em>var-ident</em> { <em>var-ident</em> } : [<em>excl-mark</em>] <em>type-expr</em> <code>}</code><br>
<em>args</em> ::= <em>var-ident-opt</em> <code>:</code> [ <em>conditional-arg-def</em> ] [ <code>!</code> ] <em>type-term</em><br>
<em>args</em> ::= [ <em>var-ident-opt</em> <code>:</code> ] [ <em>multiplicity</em> <code>*</code>] <code>[</code> { <em>args</em> } <code>]</code><br>
<em>args</em> ::= <code>(</code> <em>var-ident-opt</em> { <em>var-ident-opt</em> } <code>:</code> [<code>!</code>] <em>type-term</em> <code>)</code><br>
<em>args</em> ::= [ <code>!</code> ] <em>type-term</em><br>
<em>multiplicity</em> ::= <em>nat-term</em><br>
<em>var-ident-opt</em> ::= <em>var-ident</em> | <code>_</code><br>
<em>conditional-arg-def</em> ::= <em>var-ident</em> [ <code>.</code> <em>nat-const</em> ] <code>?</code><br>
<em>result-type</em> ::= <em>boxed-type-ident</em> { <em>subexpr</em> }<br>
<em>result-type</em> ::= <em>boxed-type-ident</em> <code>&lt;</code> <em>subexpr</em> { <code>,</code> <em>subexpr</em> } <code>&gt;</code> </p>
</div>
<p>We shall clarify what all this means.</p>
<ul>
<li>
<p>A combinator identifier is either an identifier starting with a lowercase Latin letter (<em>lc-ident</em>), or a namespace identifier (also <em>lc-ident</em>) followed by a period and another <em>lc-ident</em>. Therefore, <code>cons</code> and <code>lists.get</code> are valid combinator identifiers.</p>
</li>
<li>
<p>A combinator has a <em>name</em>, also known as a <em>number</em> (not to be confused with the <em>designation</em>) -- a 32-bit number that unambiguously determines it. It is either calculated automatically (see below) or it is explicitly assigned in the declaration. To do this, a hash mark (<code>#</code>) and exactly 8 hexadecimal digits -- the combinators name -- are added to the identifier of the combinator being defined.</p>
</li>
<li>
<p>A combinators declaration begins with its identifier, to which its name (separated by a hash mark) may have been added.</p>
</li>
<li>
<p>After the combinator identifier comes the main part of the declaration, which consists of declarations of <em>fields</em> (or <em>variables</em>), including an indication of their <em>types</em>.</p>
</li>
<li>
<p>First come declarations of optional fields (of which there may be several or none at all). Then there are the declarations of the required fields (there may not be any of these either).</p>
</li>
<li>
<p>Any identifier that begins with an uppercase or lowercase letter and which does not contain references to a namespace can be a field (variable) identifier. Using <em>uc-ident</em> for identifiers of variable types and <em>lc-indent</em> for other variables is good practice. </p>
</li>
<li>
<p>Next a combinator declaration contains the equals sign (<code>=</code>) and the result type (it may be composite or appearing for the first time). The result type may be polymorphic and/or dependent; any fields of the defined constructors fields of type <code>Type</code> or <code>#</code> may be returned (as subexpressions).</p>
</li>
<li>
<p>A combinator declaration is terminated with a semicolon.</p>
</li>
</ul>
<p>In what follows, a constructors <em>fields</em>, <em>variables</em>, and <em>arguments</em> mean the same thing.</p>
<h3><a class="anchor" href="#optional-field-declarations" id="optional-field-declarations" name="optional-field-declarations"><i class="anchor-icon"></i></a>Optional field declarations</h3>
<ul>
<li>
<p>These have the form <code>{</code> <em>field_1</em> ... <em>field_k</em> <code>:</code> <em>type-expr</em> <code>}</code>, where <em>field_i</em> is a variable (field) identifier that is unique within the scope of the combinator declaration, and <em>type-expr</em> is a type shared by all of the fields. </p>
</li>
<li>
<p>If <em>k&gt;1</em>, this entry is functionally equivalent to <code>{</code> <em>field_1</em> <code>:</code> <em>type-expr</em> <code>}</code> ... <code>{</code> <em>field_k</em> <code>:</code> <em>type-expr</em> <code>}</code>. </p>
</li>
<li>
<p>All optional fields must be explicitly named (using <code>_</code> instead of <em>field_i</em> is not allowed).</p>
</li>
<li>
<p>Moreover, at present the names of all optional fields must share the combinators result type (possibly more than once) and themselves be of type <code>#</code> (i,e., <code>nat</code>) or <code>Type</code>. Therefore, if the exact result type is known, it is possible to determine the values of all of the combinators implicit parameters (possibly obtaining a contradiction of the form <code>2=3</code> in doing so, which means that the combinator is not allowed in the context).</p>
</li>
</ul>
<h3><a class="anchor" href="#required-field-declarations" id="required-field-declarations" name="required-field-declarations"><i class="anchor-icon"></i></a>Required field declarations</h3>
<ul>
<li>
<p>These may have the form <code>(</code> <em>field_1</em> ... <em>field_k</em> <code>:</code> <em>type-expr</em> <code>)</code>, similar to an optional field declaration, but with parentheses. This entry is equivalent to <code>(</code> <em>field_1</em> <code>:</code> <em>type-expr</em> <code>)</code> ... <code>(</code> <em>field_k</em> : <em>type-expr</em> <code>)</code>, where the fields are defined one at a time.</p>
</li>
<li>
<p>The underscore sign (<code>_</code>) can be used as names of one or more fields (<em>field_i</em>), indicating that the field is anonymous (the exact name is unimportant).</p>
</li>
<li>
<p>One field may be declared without outer parentheses, like this: <em>field_id</em> <code>:</code> <em>type-expr</em>. Here, however, if <em>type-expr</em> is a complex type, parentheses may be necessary around <em>type-expr</em> (this is reflected in BNF).</p>
</li>
<li>
<p>Furthermore, one anonymous field may be declared using a <em>type-expr</em> entry, functionally equivalent to <code>_</code> <code>:</code> <em>type-expr</em>.</p>
</li>
<li>
<p>Required field declarations follow one after another, separated by spaces (by any number of whitespace symbols, to be more precise).</p>
</li>
<li>
<p>The declared fields type (<em>type-expr</em>) may use the declared combinators previously defined variables (fields) as subexpressions (i.e. parameter values). For example:</p>
<p>nil {X:Type} = List X;
cons {X:Type} hd:X tl:(list X) = List X;
typed_list (X:Type) (l : list X) = TypedList;</p>
</li>
</ul>
<h3><a class="anchor" href="#repetitions" id="repetitions" name="repetitions"><i class="anchor-icon"></i></a>Repetitions</h3>
<ul>
<li>
<p>These may only exist among required parameters. They have the form [ <em>field-id</em> <code>:</code> ] [ <em>multiplicity</em> <code>*</code> ] <code>[</code> <em>args</em> <code>]</code>, where <em>args</em> has the same format as the combinators declaration of (several) required fields, except that all of the enclosing combinators previously declared fields may be used in the argument types.</p>
</li>
<li>
<p>The name of a field of an enclosing combinator that receives a repetition as a value may be specified (<em>field-id</em>), or bypassed, which is equivalent to using the underscore sign as a <em>field-id</em>.</p>
</li>
<li>
<p>The <em>multiplicity</em> field is an expression of the type <code>#</code> (<code>nat</code>), which can be a real constant, the name of a preceding field of type <code>#</code>, or an expression in the form <code>(</code> <em>c</em> <code>+</code> <em>v</em> <code>)</code>, where <em>c</em> is a real constant and <em>v</em> is the name of a field of type <code>#</code>. The sense of the <em>multiplicity</em> field is to provide the length of the (repetition) vector, each element of which consists of values of the types enumerated in <em>args</em>.</p>
</li>
<li>
<p>The <em>multiplicity</em> field may be bypassed. In this case, the last preceding parameter of type <code>#</code> from the enclosing combinator is used (it must be).</p>
</li>
<li>
<p>Functionally, the repetition <em>field-id</em> <code>:</code> <em>multiplicity</em> <code>*</code> <code>[</code> <em>args</em> <code>]</code> is equivalent to the declaration of the single field <code>(</code> <em>field-id</em> <code>:</code> <code>%Tuple</code> <code>%AuxType</code> <em>multiplicity</em> <code>)</code>, where <code>aux_type</code> is an auxiliary type with a new name defined as <code>aux_type *args* = AuxType</code>. If any of the enclosing types fields are used within <em>args</em>, they are added to the auxiliary constructor <code>aux_type</code> and to its <code>AuxType</code> result type as the first (optional) parameters. </p>
</li>
<li>
<p>If <em>args</em> consists of one anonymous field of type <em>some-type</em>, then <em>some-type</em> can be used directly instead of <code>%AuxType</code>.</p>
</li>
<li>
<p>If during implementation the repetitions are rewritten as indicated above, it is logical to use instead of <code>aux_type</code> and <code>AuxType</code>, some identifiers that contain the name of the outer combinator being defined and the repetitions index number inside its definition.</p>
</li>
</ul>
<p>Example:</p>
<pre><code>matrix {m n : #} a : m* [ n* [ double ] ] = Matrix m n;</code></pre>
<p>is functionally equivalent to</p>
<pre><code>aux_type {n : #} (_ : %Tuple double n) = AuxType n;
matrix {m : #} {n : #} (a : %Tuple %(AuxType n) m) = Matrix m n;</code></pre>
<p>Moreover, the built-in types <code>Tuple</code> and <code>Vector</code> could be defined as:</p>
<pre><code>tnil {X : Type} = Tuple X 0;
tcons {X : Type} {n : #} hd:X tl:%(Tuple X n) = Tuple X (S n);
vector {X : Type} (n : #) (v : %(Tuple X n)) = Vector X;</code></pre>
<p>Actually, the following equivalent entry is considered the definition of <code>Vector</code> (i.e. it is specifically this entry that is used to compute the name of the <code>vector</code> constructor and its partial applications):</p>
<pre><code>vector {t : Type} # [ t ] = Vector t;</code></pre>
<p>If we expand it using <code>Tuple</code>, we obtain the previous definition exactly.</p>
<h3><a class="anchor" href="#conditional-fields" id="conditional-fields" name="conditional-fields"><i class="anchor-icon"></i></a>Conditional fields</h3>
<p>The construction </p>
<div class="richcode">
<p><em>args</em> ::= <em>var-ident-opt</em> <code>:</code> [ <em>conditional-arg-def</em> ] [ <code>!</code> ] <em>type-term</em><br>
<em>conditional-arg-def</em> ::= <em>var-ident</em> [ <code>.</code> <em>nat-const</em> ] <code>?</code> </p>
</div>
<p>permits assigning fields which are only present if the value of a preceding mandatory or optional field of type <code>#</code> is not null (or if its chosen bit is not zero if the special binary bit-selection operator <code>.</code> is applied).
Example:</p>
<div class="richcode">
<p>user {fields:#} id:int first_name:(fields.0?string) last_name:(fields.1?string) friends:(fields.2?%(Vector int)) = User fields;<br>
get_users req_fields:# ids:%(Vector int) = Vector %(User req_fields) </p>
</div></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,231 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Clearing Cache and Reordering Stickers</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Clearing Cache and Reordering Stickers">
<meta property="og:image" content="https://telegram.org/file/811140743/1/VHyp1nJFhwk/b10f5a465ed9a6ddc1">
<meta property="og:site_name" content="Telegram">
<meta property="og:description" content="Telegram introduces cache management: New ways to ensure the app uses nearly zero space on your device">
<meta property="article:published_time" content="2015-12-08T21:00:02+00:00"><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:image" content="https://telegram.org/file/811140743/1/VHyp1nJFhwk/b10f5a465ed9a6ddc1" />
<meta property="fb:app_id" content="254098051407226">
<meta property="vk:app_id" content="3782569">
<meta name="apple-itunes-app" content="app-id=686449807">
<meta name="telegram:channel" content="@telegram">
<link rel="canonical" href="https://telegram.org/blog/cache-and-stickers" />
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="alternate icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div id="fb-root"></div>
<div class="tl_page_wrap">
<div class="tl_page_head navbar navbar-static-top navbar navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right"><li class="dropdown top_lang_select"><a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#"><i class="dev_top_lang_icon"></i> <b class="minicaret"></b></a>
<ul class="dropdown-menu"><li class=""><a href="?setln=en">English</a></li><li class="long "><a href="?setln=id">Bahasa Indonesia</a></li><li class="long "><a href="?setln=ms">Bahasa Melayu</a></li><li class=""><a href="?setln=de">Deutsch</a></li><li class=""><a href="?setln=es">Español</a></li><li class=""><a href="?setln=fr">Français</a></li><li class=""><a href="?setln=it">Italiano</a></li><li class=""><a href="?setln=nl">Nederlands</a></li><li class=""><a href="?setln=uz">Ozbek</a></li><li class=""><a href="?setln=pl">Polski</a></li><li class="long "><a href="?setln=pt-br">Português (Brasil)</a></li><li class=""><a href="?setln=tr">Türkçe</a></li><li class=""><a href="?setln=be">Беларуская</a></li><li class=""><a href="?setln=ru">Русский</a></li><li class=""><a href="?setln=uk">Українська</a></li><li class=""><a href="?setln=ar">العربية</a></li><li class=""><a href="?setln=fa">فارسی</a></li><li class=""><a href="?setln=ko">한국어</a></li></ul></li><li class="navbar-twitter hidden-xs"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i> Twitter</a></li></ul>
<ul class="nav navbar-nav">
<li class=""><a href="/">Home</a></li>
<li class=""><a href="/faq">FAQ</a></li>
<li class=""><a href="/apps">Apps</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/api">API</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/mtproto">Protocol</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix tl_page_container ">
<div class="tl_page">
<div class="tl_contest_page_wrap">
<div class="tl_blog_side_blog"><div class="side_blog_wrap">
<div class="side_blog">
<a href="/blog" class="side_blog_header">Recent News</a>
<div class="side_blog_entries">
<a href="/blog/reactions-spoilers-translations" class="side_blog_entry">
<div class="side_blog_date">Dec 30</div>
<div class="side_blog_title">Reactions, Spoilers, Translation and QR Codes</div>
</a><a href="/blog/protected-content-delete-by-date-and-more" class="side_blog_entry">
<div class="side_blog_date">Dec 7</div>
<div class="side_blog_title">Protected Content, Delete by Date, Device Management and More</div>
</a><a href="/blog/shared-media-scrolling-calendar-join-requests-and-more" class="side_blog_entry">
<div class="side_blog_date">Nov 3</div>
<div class="side_blog_title">Hyper-Speed Scrolling and Calendar View for Shared Media, Join Requests and More</div>
</a><a href="/blog/chat-themes-interactive-emoji-read-receipts" class="side_blog_entry">
<div class="side_blog_date">Sep 19</div>
<div class="side_blog_title">Chat Themes, Interactive Emoji, Read Receipts in Groups</div>
</a><a href="/blog/live-streams-forwarding-next-channel" class="side_blog_entry">
<div class="side_blog_date">Aug 31</div>
<div class="side_blog_title">Live Streams, Flexible Forwarding and More</div>
</a><a href="/blog/video-1000" class="side_blog_entry">
<div class="side_blog_date">Jul 30</div>
<div class="side_blog_title">Video Calls with up to 1000 Viewers, Video Playback Speed and More</div>
</a><a href="/blog/group-video-calls" class="side_blog_entry">
<div class="side_blog_date">Jun 25</div>
<div class="side_blog_title">Group Video Calls</div>
</a>
</div>
</div>
</div></div>
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"></div>
<h1 id="dev_page_title">Clearing Cache and Reordering Stickers</h1>
<div id="dev_page_content"><div class="blog_side_image_wrap">
<img src="/file/811140743/1/VHyp1nJFhwk/b10f5a465ed9a6ddc1" class="blog_side_image"/>
</div>
<p>Unlike most messengers, Telegram can take up nearly zero space on your phone, even if youre using it heavily. When you remove Telegram data from your devices local cache to free up space, we&#39;ll keep it in the cloud for as long as you need, with virtually no limitations.</p>
<p>Today we are introducing new cache management options that make it even easier to maintain Telegrams slender footprint when space is short — without having to sacrifice useful data. The new <strong>Clear Cache</strong> option allows you to quickly delete cached media by type.</p>
<center><div>
<a href="/file/811140208/1/jCy9KMnqq70/052bc21350b9d8733b" target="_blank"><img src="/file/811140208/1/jCy9KMnqq70/052bc21350b9d8733b" title="Android: Keep media" style="max-height: 349px; padding: 10px 5px" /></a>
<a href="/file/811140295/1/Ar9XMqACZmI/1e682c26bda5cc73da" target="_blank"><img src="/file/811140295/1/Ar9XMqACZmI/1e682c26bda5cc73da" title="iOS: Clear cache by type" style="max-height: 349px; padding: 10px 5px" /></a>
<br><br>
</div></center>
<p>Using the <strong>Keep Media</strong> setting, you can control how long unused media stays on your device. If you haven&#39;t accessed a file for the specified time, it is automatically deleted from the cache. Naturally, your data will instantly re-download from the cloud the moment you access it again.</p>
<p>On iOS it is also possible to clear cached files on a <strong>chat-by-chat</strong> basis. On Android, this currently works with supergroups and channels (just tap and hold in the chats list, then Delete from Cache).</p>
<center><div>
<a href="/file/811140986/1/QCyXhGBf3V4/aeb1bb97fd5f792e84" target="_blank"><img src="/file/811140986/1/QCyXhGBf3V4/aeb1bb97fd5f792e84" title="iOS: Clear cache by chat" style="width: 195px; padding: 10px 5px" /></a>
<br><br>
</div></center>
<p>Available on <a href="https://telegram.org/dl/ios">iOS</a> and <a href="https://telegram.org/dl/android">Android</a> (and coming to WindowsPhone soon), these simple settings help ensure that Telegram will only require the least amount of space on your devices.</p>
<h4><a class="anchor" name="reorder-sticker-packs" href="#reorder-sticker-packs"><i class="anchor-icon"></i></a>Reorder Sticker Packs</h4>
<p>We&#39;ve also improved the ordering of sticker packs. You can now manually arrange your sticker packs in the order you prefer, and the order will be synced across your devices. Access sticker settings via the new button, right on the sticker panel.</p>
<center><div>
<a href="/file/811140703/1/Z8pWvtFwpSA/d7f1fb62368a7672b9" target="_blank"><img src="/file/811140703/1/Z8pWvtFwpSA/d7f1fb62368a7672b9" title="Reorder sticker packs" style="width: 195px; padding: 10px 5px" /></a>
<a href="/file/811140741/2/qgJebslNbLI/3c799a4101e16d55ae" target="_blank"><img src="/file/811140741/2/qgJebslNbLI/3c799a4101e16d55ae" title="New sticker panel" style="width: 195px; padding: 10px 5px" /></a>
<br><br>
</div></center>
<p>We&#39;re not done for 2015 yet, so watch out for more updates this year.</p>
<div><br></div>
<p><em>December 8, 2015</em><br><em>The Telegram Team</em></p>
</div>
</div>
<div class="tl_main_share clearfix">
<a href="https://t.me/share/url?url=https%3A%2F%2Ftelegram.org%2Fblog%2Fcache-and-stickers&text=Telegram%20introduces%20cache%20management%3A%20New%20ways%20to%20ensure%20the%20app%20uses%20nearly%20zero%20space%20on%20your%20device" class="tl_telegram_share_btn" id="tl_telegram_share_btn" data-text="Telegram introduces cache management: New ways to ensure the app uses nearly zero space on your device" data-url="https://telegram.org/blog/cache-and-stickers"><i class="tl_telegram_share_icon"></i><span class="tl_telegram_share_label" target="_blank">Forward</span></a>
<a href="https://twitter.com/share" class="tl_twitter_share_btn" id="tl_twitter_share_btn" data-text="Telegram introduces cache management: New ways to ensure the app uses nearly zero space on your device" data-url="https://telegram.org/blog/cache-and-stickers" data-via="Telegram">Tweet <span class="tl_twitter_share_cnt"></span></a>
</div>
</div>
<div class="tl_main_recent_news_wrap tlb_other_news_wrap tl_blog_list_page_wrap">
<h3 class="tl_main_recent_news_header">
<a href="/blog">Other News</a>
</h3>
<div class="tl_main_recent_news_cards clearfix">
<a class="dev_blog_card_link_wrap" href="/blog/reactions-spoilers-translations"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001488/d35b/oNi_rR0In0o.124097/c74f7d759893b78bfb" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Reactions, Spoilers, Translation and QR Codes</h4>
<div class="dev_blog_card_lead">Telegram&#39;s 12th update of the year introduces reactions, message translation, themed QR codes, hidden text (spoilers), and more.</div>
</div>
<div class="dev_blog_card_date">Dec 30, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/protected-content-delete-by-date-and-more"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001572/2/u_lvhH-CjJ0.99595/a7fca60f9c9e6e193c" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Protected Content, Delete by Date, Device Management and More</h4>
<div class="dev_blog_card_lead">Today&#39;s update brings tools to prevent others from saving content from groups and channels, the ability to delete messages for specific…</div>
</div>
<div class="dev_blog_card_date">Dec 7, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/shared-media-scrolling-calendar-join-requests-and-more"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001930/3/yPTwxfusWZg.174275/3f847742c263cdae99" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Hyper-Speed Scrolling and Calendar View for Shared Media, Join Requests, Global Chat Themes on iOS and More</h4>
<div class="dev_blog_card_lead">Today&#39;s update brings new ways to find memories in shared media with accelerated scrolling…</div>
</div>
<div class="dev_blog_card_date">Nov 3, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/chat-themes-interactive-emoji-read-receipts"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001155/2/kLfFr4UDBdo.74223/58bec6bc2a18455c5f" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Chat Themes, Interactive Emoji, Read Receipts in Groups and Live Stream Recording</h4>
<div class="dev_blog_card_lead">Today&#39;s update lets you set different themes for individual chats, share your feelings with…</div>
</div>
<div class="dev_blog_card_date">Sep 19, 2021</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="/faq">About</a></h5>
<ul>
<li><a href="/faq">FAQ</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="/dl/ios">iPhone/iPad</a></li>
<li><a href="/dl/android">Android</a></li>
<li><a href="/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>initScrollVideos(true);
twitterCustomShareInit();
blogSideImageInit();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,297 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Chat Themes, Interactive Emoji, Read Receipts in Groups and Live Stream Recording</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Chat Themes, Interactive Emoji, Read Receipts in Groups and Live Stream Recording">
<meta property="og:image" content="https://telegram.org/file/464001155/2/kLfFr4UDBdo.74223/58bec6bc2a18455c5f">
<meta property="og:site_name" content="Telegram">
<meta property="og:description" content="Today&#39;s update lets you set different themes for individual chats, share your feelings with loved ones using interactive emoji with fullscreen effects, record video and audio from live broadcasts, and see detailed read receipts in groups.">
<meta property="article:published_time" content="2021-09-19T14:56:56+00:00"><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:image" content="https://telegram.org/file/464001155/2/kLfFr4UDBdo.74223/58bec6bc2a18455c5f" />
<meta property="fb:app_id" content="254098051407226">
<meta property="vk:app_id" content="3782569">
<meta name="apple-itunes-app" content="app-id=686449807">
<meta name="telegram:channel" content="@telegram">
<link rel="canonical" href="https://telegram.org/blog/chat-themes-interactive-emoji-read-receipts" />
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="alternate icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div id="fb-root"></div>
<div class="tl_page_wrap">
<div class="tl_page_head navbar navbar-static-top navbar navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right"><li class="dropdown top_lang_select"><a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#"><i class="dev_top_lang_icon"></i> <b class="minicaret"></b></a>
<ul class="dropdown-menu"><li class=""><a href="?setln=en">English</a></li><li class="long "><a href="?setln=id">Bahasa Indonesia</a></li><li class="long "><a href="?setln=ms">Bahasa Melayu</a></li><li class=""><a href="?setln=de">Deutsch</a></li><li class=""><a href="?setln=es">Español</a></li><li class=""><a href="?setln=fr">Français</a></li><li class=""><a href="?setln=it">Italiano</a></li><li class=""><a href="?setln=nl">Nederlands</a></li><li class=""><a href="?setln=uz">Ozbek</a></li><li class=""><a href="?setln=pl">Polski</a></li><li class="long "><a href="?setln=pt-br">Português (Brasil)</a></li><li class=""><a href="?setln=tr">Türkçe</a></li><li class=""><a href="?setln=be">Беларуская</a></li><li class=""><a href="?setln=ru">Русский</a></li><li class=""><a href="?setln=uk">Українська</a></li><li class=""><a href="?setln=ar">العربية</a></li><li class=""><a href="?setln=fa">فارسی</a></li><li class=""><a href="?setln=ko">한국어</a></li></ul></li><li class="navbar-twitter hidden-xs"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i> Twitter</a></li></ul>
<ul class="nav navbar-nav">
<li class=""><a href="/">Home</a></li>
<li class=""><a href="/faq">FAQ</a></li>
<li class=""><a href="/apps">Apps</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/api">API</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/mtproto">Protocol</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix tl_page_container ">
<div class="tl_page">
<div class="tl_contest_page_wrap">
<div class="tl_blog_side_blog"><div class="side_blog_wrap">
<div class="side_blog">
<a href="/blog" class="side_blog_header">Recent News</a>
<div class="side_blog_entries">
<a href="/blog/reactions-spoilers-translations" class="side_blog_entry">
<div class="side_blog_date">Dec 30</div>
<div class="side_blog_title">Reactions, Spoilers, Translation and QR Codes</div>
</a><a href="/blog/protected-content-delete-by-date-and-more" class="side_blog_entry">
<div class="side_blog_date">Dec 7</div>
<div class="side_blog_title">Protected Content, Delete by Date, Device Management and More</div>
</a><a href="/blog/shared-media-scrolling-calendar-join-requests-and-more" class="side_blog_entry">
<div class="side_blog_date">Nov 3</div>
<div class="side_blog_title">Hyper-Speed Scrolling and Calendar View for Shared Media, Join Requests and More</div>
</a><a href="/blog/chat-themes-interactive-emoji-read-receipts" class="side_blog_entry">
<div class="side_blog_date">Sep 19</div>
<div class="side_blog_title">Chat Themes, Interactive Emoji, Read Receipts in Groups</div>
</a><a href="/blog/live-streams-forwarding-next-channel" class="side_blog_entry">
<div class="side_blog_date">Aug 31</div>
<div class="side_blog_title">Live Streams, Flexible Forwarding and More</div>
</a><a href="/blog/video-1000" class="side_blog_entry">
<div class="side_blog_date">Jul 30</div>
<div class="side_blog_title">Video Calls with up to 1000 Viewers, Video Playback Speed and More</div>
</a><a href="/blog/group-video-calls" class="side_blog_entry">
<div class="side_blog_date">Jun 25</div>
<div class="side_blog_title">Group Video Calls</div>
</a>
</div>
</div>
</div></div>
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"></div>
<h1 id="dev_page_title">Chat Themes, Interactive Emoji, Read Receipts in Groups and Live Stream Recording</h1>
<div id="dev_page_content"><div class="blog_side_image_wrap">
<picture class="dev_page_tgsticker blog_side_image js-tgsticker_image" style="width:160px;"><div style="padding-top:100%"></div><source type="application/x-tgsticker" srcset="/file/464001022/3/08zHFWwG288.17246/89bef093fad4bfbd3e"><img src="/file/464001022/4/eSPHTJem5R4.41940.png/6d735736731c5e9770" /></picture>
</div>
<div class="blog_wide_image">
<a href="/file/464001201/3/gtwtSMRXba0.204892/b102dc7205689001f3" target="_blank"><img src="/file/464001155/2/kLfFr4UDBdo.74223/58bec6bc2a18455c5f" srcset="/file/464001201/3/gtwtSMRXba0.204892/b102dc7205689001f3, 1200w" title="Zero-gravity conditions not included with the update." alt="Introducing Chat Themes, Interactive Emoji, Read Receipts in Groups and Live Stream Recording"/></a>
</div>
<p>Today&#39;s update lets you <strong>set different themes for individual chats</strong>, share your feelings with loved ones using <strong>interactive emoji</strong> with fullscreen effects, see <strong>detailed read receipts</strong> in groups and <strong>record video</strong> and audio from live broadcasts.</p>
<h3><a class="anchor" name="chat-themes" href="#chat-themes"><i class="anchor-icon"></i></a>Chat Themes</h3>
<p>Telegram has dozens of features to organize your chats and customize their appearance, from <a href="https://telegram.org/blog/folders">Chat Folders</a> to <a href="https://telegram.org/blog/animated-backgrounds">Animated Backgrounds</a>. In this update, coordination and decoration come together with <strong>new themes for individual chats</strong>.</p>
<p>Our designers created <strong>8 new themes</strong> that you can apply to <strong>specific</strong> private chats. Each of the new themes features colorful <strong>gradient message bubbles</strong>, beautifully <strong>animated backgrounds</strong> and <strong>unique background patterns</strong>.</p>
<div class="blog_video_player_wrap" style="max-width: 400px; margin: 20px auto 20px;">
<video class="blog_video_player tl_blog_vid_autoplay" onclick="videoTogglePlay(this)" autoplay loop controls muted poster="/file/464001886/2/5ugRdJYEz5c.152462/fed96846ba42463c8d" style="max-width: 400px;" title="That chat theme really ties the room together." alt="Chat Themes">
<source src="/file/464001424/4/Lo52Rt9Ay5s.4654350.mp4/1db8d7a8c3f83f8129" type="video/mp4">
</video>
</div>
<p>Both you and your chat partner can choose the theme for <strong>both sides</strong> and make any conversation easy to recognize, even when you can&#39;t find your glasses. This way you can set <strong>different themes</strong> for chats with co-workers and family members, so you won&#39;t accidentally send <a href="https://t.me/MemesTelegram/45">that video</a> to your boss again. </p>
<blockquote>
<p>To set a theme for your chat on <strong>Android</strong>, tap <em>&gt; Change Colors</em>. On <strong>iOS</strong>, tap the <em>Chat Header &gt;&gt; Change Colors</em>. Your chat partner will see the theme if they are using the <strong>latest</strong> version of Telegram.</p>
</blockquote>
<p>Each theme comes with a <strong>day</strong> and <strong>night</strong> version and will follow your app&#39;s <strong>night mode settings</strong> whether you keep it dark all day, or have your chats follow the sun.</p>
<p>These first 8 themes are just the beginning our designers are already working on adding more.</p>
<h3><a class="anchor" name="interactive-emoji" href="#interactive-emoji"><i class="anchor-icon"></i></a>Interactive Emoji</h3>
<p>We love animating emoji, but there are times when even a big red beating heart that makes your phone vibrate with each beat! is simply <em>not enough</em> to express your feelings.</p>
<p>With a little code, a little drawing and a lot of dark magic, we&#39;ve created a new way of <strong>sharing emotion in real time</strong>. Send a single <img class="emoji" src="//telegram.org/img/emoji/40/F09F8E86.png" width="20" height="20" alt="🎆" /> <img class="emoji" src="//telegram.org/img/emoji/40/F09F8E89.png" width="20" height="20" alt="🎉" /> <img class="emoji" src="//telegram.org/img/emoji/40/F09F8E88.png" width="20" height="20" alt="🎈" /> <img class="emoji" src="//telegram.org/img/emoji/40/F09F918D.png" width="20" height="20" alt="👍" /> <img class="emoji" src="//telegram.org/img/emoji/40/F09F92A9.png" width="20" height="20" alt="💩" /> or <img class="emoji" src="//telegram.org/img/emoji/40/E29DA4.png" width="20" height="20" alt="❤️" /> to any private chat, then <strong>tap on the animated emoji</strong> to unleash a <strong>fullscreen effect</strong>.</p>
<p>If both you and your chat partner have the chat open, the <strong>animations</strong> and <strong>vibrations</strong> play <strong>simultaneously</strong> on your devices, so you feel close even when you&#39;re far apart.</p>
<div class="blog_video_player_wrap" style="max-width: 400px; margin: 20px auto 20px;">
<video class="blog_video_player tl_blog_vid_autoplay" onclick="videoTogglePlay(this)" autoplay loop controls muted poster="/file/464001355/3/Mqd3oJbs_zc.227473/e6e7ee131535d28174" style="max-width: 400px;" title="Are you feeling it now, Mr. Krabs?" alt="Interactive emoji with fullscreen effects">
<source src="/file/464001437/3/S8Rzu0giRYU.4592746.mp4/397696d82c442164fd" type="video/mp4">
</video>
</div>
<blockquote>
<p>Your chat partner will only see the effects if they are using the <strong>latest</strong> version of Telegram.</p>
</blockquote>
<p>Our artists are already back in the dungeons, working on new fullscreen effects for more animated emoji.</p>
<h3><a class="anchor" name="read-receipts-in-small-groups" href="#read-receipts-in-small-groups"><i class="anchor-icon"></i></a>Read Receipts in Small Groups</h3>
<p>Both chat themes and interactive emoji currently only work in <strong>private chats</strong>. But this update also includes a big change for <strong>groups</strong>.</p>
<p>Group messages are marked as read <strong>(✓✓)</strong> as soon as one other member sees them. In small groups, you can now also <strong>select a message you sent</strong> to see <strong>which group members</strong> have read it.</p>
<div class="blog_video_player_wrap" style="max-width: 400px; margin: 20px auto 20px;">
<video class="blog_video_player tl_blog_vid_autoplay" onclick="videoTogglePlay(this)" autoplay loop controls muted poster="/file/464001903/2/Lg9g9LFeuuc.92807/e8ecccb14e0dc12498" style="max-width: 400px;" title="I've Seen things you people wouldn't believe. Read receipts on fire off the shoulders of Orion. I watched C-Themes glitter in the dark near the Tannhäuser Gate. All those comments will be lost in time, like tears in rain. Time to reply." alt="Read receipts in small groups">
<source src="/file/464001508/1/Qz-LtLRA-2U.1291847.mp4/df00034163d0fbc08e" type="video/mp4">
</video>
</div>
<blockquote>
<p>To protect users&#39; privacy, read receipts in groups are only stored for <strong>7 days</strong> after the message was sent. It is not Telegram&#39;s business to keep a record of everything you&#39;ve ever seen.</p>
</blockquote>
<h3><a class="anchor" name="record-live-streams-and-video-chats" href="#record-live-streams-and-video-chats"><i class="anchor-icon"></i></a>Record Live Streams and Video Chats</h3>
<p>Telegram hosts <strong>millions of communities</strong> that can create live events for <strong>unlimited viewers</strong>. Whether it&#39;s a once-in-a-lifetime concert or an everyday algebra class, admins can now <strong>record Live Streams</strong> and <strong>Video Chats</strong> to publish them for those who missed the live version.</p>
<!--
<div class="blog_image_wrap blog_medium_image_wrap">
<a href="/file/464001742/1/EJuh0XubzaM.164791/4ed86b84082d7575cc" target="_blank"><img src="/file/464001663/4/gRdyQwE6QvM.304911/e7b3a4b7834123eab0" title="" alt="Record live streams and video chats" srcset="/file/464001742/1/EJuh0XubzaM.164791/4ed86b84082d7575cc , 2x" /></a>
</div>
-->
<div class="blog_video_player_wrap" style="max-width: 400px; margin: 20px auto 20px;">
<video class="blog_video_player tl_blog_vid_autoplay" onclick="videoTogglePlay(this)" autoplay loop controls muted poster="/file/464001879/4/j3_6zSK9ygQ.58015/15a5b98c566cf48b9c" style="max-width: 400px;" title="Lights. Camera. ⋮ . Start Recording!" alt="Record live streams and video chats">
<source src="/file/464001689/6/9ta8YUEJBTE.1912467.mp4/261017e989b5e33989" type="video/mp4">
</video>
</div>
<p>Admins can start a recording right from the Live Stream or Video Chat menu with options to record <strong>Video and Audio</strong> or <strong>Only Audio</strong>. To record video, choose an orientation for the final video file, <strong>Portrait</strong> or <strong>Landscape</strong>. After you finish recording or end the broadcast, the file is <strong>instantly uploaded</strong> to your <strong>Saved Messages</strong>.</p>
<blockquote>
<p>Tap ⋮ or ⋯ to open the broadcast menu and start recording. While recording, a red dot appears next to the title of the broadcast.</p>
</blockquote>
<!--
### Telegram Help
Millions of new users sign up for Telegram each week for many, it may be their first messaging app or even their first time using a smartphone. To help everyone get started and learn more about the app, we've created a [Telegram Help](/) channel with **convenient guides** and **video demos** for both Android and iOS.
This way you can quickly see how to [start a Secret Chat](/) on iOS or show one of your grandparents how to [send a photo](/) on Android. When you're ready for more advanced features, the [Telegram Tips](https://t.me/TelegramTips/233) channel has over **150 posts** that show you how to maximize your messaging experience available in [10 languages](https://t.me/TelegramTips/266).
-->
<p>And that should give you enough things to do until we&#39;re back with the next update. As always, it shouldn&#39;t take us long.</p>
<div><br></div>
<p><em>September 19, 2021<br>The Telegram Team</em></p>
<!--
###Video
<div class="blog_video_player_wrap" style="max-width: 400px; margin: 20px auto 20px;">
<video class="blog_video_player tl_blog_vid_autoplay" onclick="videoTogglePlay(this)" autoplay loop controls muted poster="PHOTO" style="max-width: 400px;" title="TITLE" alt="TITLE">
<source src="VIDEO" type="video/mp4">
</video>
</div>
###Image
<div class="blog_image_wrap blog_medium_image_wrap">
<a href="LARGE" target="_blank"><img src="SMALL" title="TITLE" alt="TITLE" srcset="LARGE , 2x" /></a>
</div>
--></div>
</div>
<div class="tl_main_share clearfix">
<a href="https://t.me/share/url?url=https%3A%2F%2Ftelegram.org%2Fblog%2Fchat-themes-interactive-emoji-read-receipts&text=Introducing%20chat%20themes%2C%20interactive%20emoji%20with%20fullscreen%20effects%2C%20read%20receipts%20in%20small%20groups%20and%20live%20stream%20recording" class="tl_telegram_share_btn" id="tl_telegram_share_btn" data-text="Introducing chat themes, interactive emoji with fullscreen effects, read receipts in small groups and live stream recording" data-url="https://telegram.org/blog/chat-themes-interactive-emoji-read-receipts"><i class="tl_telegram_share_icon"></i><span class="tl_telegram_share_label" target="_blank">Forward</span></a>
<a href="https://twitter.com/share" class="tl_twitter_share_btn" id="tl_twitter_share_btn" data-text="Introducing chat themes, interactive emoji with fullscreen effects, read receipts in small groups and live stream recording" data-url="https://telegram.org/blog/chat-themes-interactive-emoji-read-receipts" data-via="Telegram">Tweet <span class="tl_twitter_share_cnt"></span></a>
</div>
</div>
<div class="tl_main_recent_news_wrap tlb_other_news_wrap tl_blog_list_page_wrap">
<h3 class="tl_main_recent_news_header">
<a href="/blog">Other News</a>
</h3>
<div class="tl_main_recent_news_cards clearfix">
<a class="dev_blog_card_link_wrap" href="/blog/reactions-spoilers-translations"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001488/d35b/oNi_rR0In0o.124097/c74f7d759893b78bfb" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Reactions, Spoilers, Translation and QR Codes</h4>
<div class="dev_blog_card_lead">Telegram&#39;s 12th update of the year introduces reactions, message translation, themed QR codes, hidden text (spoilers), and more.</div>
</div>
<div class="dev_blog_card_date">Dec 30, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/protected-content-delete-by-date-and-more"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001572/2/u_lvhH-CjJ0.99595/a7fca60f9c9e6e193c" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Protected Content, Delete by Date, Device Management and More</h4>
<div class="dev_blog_card_lead">Today&#39;s update brings tools to prevent others from saving content from groups and channels, the ability to delete messages for specific…</div>
</div>
<div class="dev_blog_card_date">Dec 7, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/shared-media-scrolling-calendar-join-requests-and-more"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001930/3/yPTwxfusWZg.174275/3f847742c263cdae99" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Hyper-Speed Scrolling and Calendar View for Shared Media, Join Requests, Global Chat Themes on iOS and More</h4>
<div class="dev_blog_card_lead">Today&#39;s update brings new ways to find memories in shared media with accelerated scrolling…</div>
</div>
<div class="dev_blog_card_date">Nov 3, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/live-streams-forwarding-next-channel"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001784/4/IlXX31YWz5U.92729/eabf233f3635354560" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Live Streams, Flexible Forwarding, Jump to Next Channel, Trending Stickers and More</h4>
<div class="dev_blog_card_lead">Telegram 8.0 brings live streams with unlimited viewers to groups and channels, options to…</div>
</div>
<div class="dev_blog_card_date">Aug 31, 2021</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="/faq">About</a></h5>
<ul>
<li><a href="/faq">FAQ</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="/dl/ios">iPhone/iPad</a></li>
<li><a href="/dl/android">Android</a></li>
<li><a href="/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script src="/js/tgsticker.js?24"></script>
<script>mainInitTgStickers({"maxDeviceRatio":2,"cachingModulo":4});
initScrollVideos(true);
twitterCustomShareInit();
blogSideImageInit();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,232 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>In-App Media Playback and Search in Chats</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="In-App Media Playback and Search in Chats">
<meta property="og:image" content="https://telegram.org/file/811140255/1/BbzDx4qIQ60/7dc14c9f68f8f1ec3e">
<meta property="og:site_name" content="Telegram">
<meta property="og:description" content="New version of Telegram brings in-app media playback and search in chats">
<meta property="article:published_time" content="2015-07-17T18:16:48+00:00"><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:image" content="https://telegram.org/file/811140255/1/BbzDx4qIQ60/7dc14c9f68f8f1ec3e" />
<meta property="fb:app_id" content="254098051407226">
<meta property="vk:app_id" content="3782569">
<meta name="apple-itunes-app" content="app-id=686449807">
<meta name="telegram:channel" content="@telegram">
<link rel="canonical" href="https://telegram.org/blog/search-and-media" />
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="alternate icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div id="fb-root"></div>
<div class="tl_page_wrap">
<div class="tl_page_head navbar navbar-static-top navbar navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right"><li class="dropdown top_lang_select"><a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#"><i class="dev_top_lang_icon"></i> <b class="minicaret"></b></a>
<ul class="dropdown-menu"><li class=""><a href="?setln=en">English</a></li><li class="long "><a href="?setln=id">Bahasa Indonesia</a></li><li class="long "><a href="?setln=ms">Bahasa Melayu</a></li><li class=""><a href="?setln=de">Deutsch</a></li><li class=""><a href="?setln=es">Español</a></li><li class=""><a href="?setln=fr">Français</a></li><li class=""><a href="?setln=it">Italiano</a></li><li class=""><a href="?setln=nl">Nederlands</a></li><li class=""><a href="?setln=uz">Ozbek</a></li><li class=""><a href="?setln=pl">Polski</a></li><li class="long "><a href="?setln=pt-br">Português (Brasil)</a></li><li class=""><a href="?setln=tr">Türkçe</a></li><li class=""><a href="?setln=be">Беларуская</a></li><li class=""><a href="?setln=ru">Русский</a></li><li class=""><a href="?setln=uk">Українська</a></li><li class=""><a href="?setln=ar">العربية</a></li><li class=""><a href="?setln=fa">فارسی</a></li><li class=""><a href="?setln=ko">한국어</a></li></ul></li><li class="navbar-twitter hidden-xs"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i> Twitter</a></li></ul>
<ul class="nav navbar-nav">
<li class=""><a href="/">Home</a></li>
<li class=""><a href="/faq">FAQ</a></li>
<li class=""><a href="/apps">Apps</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/api">API</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/mtproto">Protocol</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix tl_page_container ">
<div class="tl_page">
<div class="tl_contest_page_wrap">
<div class="tl_blog_side_blog"><div class="side_blog_wrap">
<div class="side_blog">
<a href="/blog" class="side_blog_header">Recent News</a>
<div class="side_blog_entries">
<a href="/blog/reactions-spoilers-translations" class="side_blog_entry">
<div class="side_blog_date">Dec 30</div>
<div class="side_blog_title">Reactions, Spoilers, Translation and QR Codes</div>
</a><a href="/blog/protected-content-delete-by-date-and-more" class="side_blog_entry">
<div class="side_blog_date">Dec 7</div>
<div class="side_blog_title">Protected Content, Delete by Date, Device Management and More</div>
</a><a href="/blog/shared-media-scrolling-calendar-join-requests-and-more" class="side_blog_entry">
<div class="side_blog_date">Nov 3</div>
<div class="side_blog_title">Hyper-Speed Scrolling and Calendar View for Shared Media, Join Requests and More</div>
</a><a href="/blog/chat-themes-interactive-emoji-read-receipts" class="side_blog_entry">
<div class="side_blog_date">Sep 19</div>
<div class="side_blog_title">Chat Themes, Interactive Emoji, Read Receipts in Groups</div>
</a><a href="/blog/live-streams-forwarding-next-channel" class="side_blog_entry">
<div class="side_blog_date">Aug 31</div>
<div class="side_blog_title">Live Streams, Flexible Forwarding and More</div>
</a><a href="/blog/video-1000" class="side_blog_entry">
<div class="side_blog_date">Jul 30</div>
<div class="side_blog_title">Video Calls with up to 1000 Viewers, Video Playback Speed and More</div>
</a><a href="/blog/group-video-calls" class="side_blog_entry">
<div class="side_blog_date">Jun 25</div>
<div class="side_blog_title">Group Video Calls</div>
</a>
</div>
</div>
</div></div>
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"></div>
<h1 id="dev_page_title">In-App Media Playback and Search in Chats</h1>
<div id="dev_page_content"><div class="blog_side_image_wrap">
<img src="/file/811140255/1/BbzDx4qIQ60/7dc14c9f68f8f1ec3e" class="blog_side_image"/>
</div>
<p>The new version of Telegram allows you to play media from services like YouTube, Vimeo or SoundCloud directly from Telegram without having to leave the app. Just tap on the preview of a link to an external media to view the video or listen to the audio file (speaking of audio files, they are now beautifully rendered and played in chats).</p>
<center><div>
<a href="/file/811140106/2/mVMXO-QaxKY/334ae516cf90b689ef" target="_blank"><img src="/file/811140106/2/mVMXO-QaxKY/334ae516cf90b689ef" title="In-app YouTube video on iOS" style="max-height: 320px; padding: 10px 5px" /></a>
<a href="/file/811140675/2/wRoIASj9RNI/fcfa783056834a8637" target="_blank"><img src="/file/811140675/2/wRoIASj9RNI/fcfa783056834a8637" title="In-app Soundcloud playback on Android" style="max-height: 320px; padding: 10px 5px" /></a>
<a href="/file/811140379/1/QqGC6AxpGCA/d16e154f800b529ca9" target="_blank"><img src="/file/811140379/1/QqGC6AxpGCA/d16e154f800b529ca9" title="In-app Vimeo video on Android" style="max-height: 320px; padding: 10px 5px" /></a>
<br><br>
</div></center>
<p>The new attachment menu in Android is not only gorgeous and beautifully animated; it also allows you to share contacts, audios and recent photos way easier:</p>
<center><div>
<a href="/file/811140955/3/uL7GVV0tAVo/e3ad6d760787d22d4a" target="_blank"><img src="/file/811140955/3/uL7GVV0tAVo/e3ad6d760787d22d4a" title="The new attachment menu on Android" style="max-height: 320px; padding: 10px 5px" /></a>
<br>
</div></center>
<p>All of your communications in Telegram are already instantly searchable with the <a href="https://telegram.org/blog/shared-files#multisearch">multi-purpose search field</a>, but now you can also search for messages in specific chats. Just tap on the name of the chat in iOS or toggle the Actions menu in Android:</p>
<center><div>
<a href="/file/811140526/1/MGlt5-tetT4/b6cf38717c32f3eb71" target="_blank"><img src="/file/811140526/1/MGlt5-tetT4/b6cf38717c32f3eb71" title="On iOS, tap the header, then 'Search'" style="max-height: 330px; padding: 10px 5px" /></a>
<a href="/file/811140363/1/EHNWdQDBgw4/7c7a2ee0da9dfd0a2c" target="_blank"><img src="/file/811140363/1/EHNWdQDBgw4/7c7a2ee0da9dfd0a2c" title="Use the arrows to navigate between matches" style="max-height: 330px; padding: 10px 5px" /></a>
<a href="/file/811140207/1/_2sA3cqdcXM/ba145a87cf59c6f3b0" target="_blank"><img src="/file/811140207/1/_2sA3cqdcXM/ba145a87cf59c6f3b0" title="Looks pretty much the same on Android" style="max-height: 330px; padding: 10px 5px" /></a>
<br><br>
</div></center>
<p>You will see the number of occurrences of the keyword in the chat and will be able to navigate through them with the up/down arrows. Enjoy!</p>
<div><br></div>
<p><em>The Telegram Team,<br>July 17, 2015</em></p>
</div>
</div>
<div class="tl_main_share clearfix">
<a href="https://t.me/share/url?url=https%3A%2F%2Ftelegram.org%2Fblog%2Fsearch-and-media&text=New%20version%20of%20Telegram%20brings%20in-app%20media%20playback%20and%20search%20in%20chats" class="tl_telegram_share_btn" id="tl_telegram_share_btn" data-text="New version of Telegram brings in-app media playback and search in chats" data-url="https://telegram.org/blog/search-and-media"><i class="tl_telegram_share_icon"></i><span class="tl_telegram_share_label" target="_blank">Forward</span></a>
<a href="https://twitter.com/share" class="tl_twitter_share_btn" id="tl_twitter_share_btn" data-text="New version of Telegram brings in-app media playback and search in chats" data-url="https://telegram.org/blog/search-and-media" data-via="Telegram">Tweet <span class="tl_twitter_share_cnt"></span></a>
</div>
</div>
<div class="tl_main_recent_news_wrap tlb_other_news_wrap tl_blog_list_page_wrap">
<h3 class="tl_main_recent_news_header">
<a href="/blog">Other News</a>
</h3>
<div class="tl_main_recent_news_cards clearfix">
<a class="dev_blog_card_link_wrap" href="/blog/reactions-spoilers-translations"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001488/d35b/oNi_rR0In0o.124097/c74f7d759893b78bfb" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Reactions, Spoilers, Translation and QR Codes</h4>
<div class="dev_blog_card_lead">Telegram&#39;s 12th update of the year introduces reactions, message translation, themed QR codes, hidden text (spoilers), and more.</div>
</div>
<div class="dev_blog_card_date">Dec 30, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/protected-content-delete-by-date-and-more"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001572/2/u_lvhH-CjJ0.99595/a7fca60f9c9e6e193c" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Protected Content, Delete by Date, Device Management and More</h4>
<div class="dev_blog_card_lead">Today&#39;s update brings tools to prevent others from saving content from groups and channels, the ability to delete messages for specific…</div>
</div>
<div class="dev_blog_card_date">Dec 7, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/shared-media-scrolling-calendar-join-requests-and-more"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001930/3/yPTwxfusWZg.174275/3f847742c263cdae99" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Hyper-Speed Scrolling and Calendar View for Shared Media, Join Requests, Global Chat Themes on iOS and More</h4>
<div class="dev_blog_card_lead">Today&#39;s update brings new ways to find memories in shared media with accelerated scrolling…</div>
</div>
<div class="dev_blog_card_date">Nov 3, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/chat-themes-interactive-emoji-read-receipts"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001155/2/kLfFr4UDBdo.74223/58bec6bc2a18455c5f" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Chat Themes, Interactive Emoji, Read Receipts in Groups and Live Stream Recording</h4>
<div class="dev_blog_card_lead">Today&#39;s update lets you set different themes for individual chats, share your feelings with…</div>
</div>
<div class="dev_blog_card_date">Sep 19, 2021</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="/faq">About</a></h5>
<ul>
<li><a href="/faq">FAQ</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="/dl/ios">iPhone/iPad</a></li>
<li><a href="/dl/android">Android</a></li>
<li><a href="/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>initScrollVideos(true);
twitterCustomShareInit();
blogSideImageInit();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,245 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Voice Messages 2.0, Secret Chats 3.0 and...</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Voice Messages 2.0, Secret Chats 3.0 and...">
<meta property="og:image" content="https://telegram.org/file/811140811/4/EkJbMD1YUto/f925a17a623c3a86f9">
<meta property="og:site_name" content="Telegram">
<meta property="og:description" content="Voice Messages 2.0, Secret Chats 3.0, new privacy settings and much more.">
<meta property="article:published_time" content="2016-02-12T17:46:58+00:00"><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:image" content="https://telegram.org/file/811140811/4/EkJbMD1YUto/f925a17a623c3a86f9" />
<meta property="fb:app_id" content="254098051407226">
<meta property="vk:app_id" content="3782569">
<meta name="apple-itunes-app" content="app-id=686449807">
<meta name="telegram:channel" content="@telegram">
<link rel="canonical" href="https://telegram.org/blog/voice-2-secret-3" />
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="alternate icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div id="fb-root"></div>
<div class="tl_page_wrap">
<div class="tl_page_head navbar navbar-static-top navbar navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right"><li class="dropdown top_lang_select"><a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#"><i class="dev_top_lang_icon"></i> <b class="minicaret"></b></a>
<ul class="dropdown-menu"><li class=""><a href="?setln=en">English</a></li><li class="long "><a href="?setln=id">Bahasa Indonesia</a></li><li class="long "><a href="?setln=ms">Bahasa Melayu</a></li><li class=""><a href="?setln=de">Deutsch</a></li><li class=""><a href="?setln=es">Español</a></li><li class=""><a href="?setln=fr">Français</a></li><li class=""><a href="?setln=it">Italiano</a></li><li class=""><a href="?setln=nl">Nederlands</a></li><li class=""><a href="?setln=uz">Ozbek</a></li><li class=""><a href="?setln=pl">Polski</a></li><li class="long "><a href="?setln=pt-br">Português (Brasil)</a></li><li class=""><a href="?setln=tr">Türkçe</a></li><li class=""><a href="?setln=be">Беларуская</a></li><li class=""><a href="?setln=ru">Русский</a></li><li class=""><a href="?setln=uk">Українська</a></li><li class=""><a href="?setln=ar">العربية</a></li><li class=""><a href="?setln=fa">فارسی</a></li><li class=""><a href="?setln=ko">한국어</a></li></ul></li><li class="navbar-twitter hidden-xs"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i> Twitter</a></li></ul>
<ul class="nav navbar-nav">
<li class=""><a href="/">Home</a></li>
<li class=""><a href="/faq">FAQ</a></li>
<li class=""><a href="/apps">Apps</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/api">API</a></li>
<li class="hidden-xs "><a href="//core.telegram.org/mtproto">Protocol</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix tl_page_container ">
<div class="tl_page">
<div class="tl_contest_page_wrap">
<div class="tl_blog_side_blog"><div class="side_blog_wrap">
<div class="side_blog">
<a href="/blog" class="side_blog_header">Recent News</a>
<div class="side_blog_entries">
<a href="/blog/reactions-spoilers-translations" class="side_blog_entry">
<div class="side_blog_date">Dec 30</div>
<div class="side_blog_title">Reactions, Spoilers, Translation and QR Codes</div>
</a><a href="/blog/protected-content-delete-by-date-and-more" class="side_blog_entry">
<div class="side_blog_date">Dec 7</div>
<div class="side_blog_title">Protected Content, Delete by Date, Device Management and More</div>
</a><a href="/blog/shared-media-scrolling-calendar-join-requests-and-more" class="side_blog_entry">
<div class="side_blog_date">Nov 3</div>
<div class="side_blog_title">Hyper-Speed Scrolling and Calendar View for Shared Media, Join Requests and More</div>
</a><a href="/blog/chat-themes-interactive-emoji-read-receipts" class="side_blog_entry">
<div class="side_blog_date">Sep 19</div>
<div class="side_blog_title">Chat Themes, Interactive Emoji, Read Receipts in Groups</div>
</a><a href="/blog/live-streams-forwarding-next-channel" class="side_blog_entry">
<div class="side_blog_date">Aug 31</div>
<div class="side_blog_title">Live Streams, Flexible Forwarding and More</div>
</a><a href="/blog/video-1000" class="side_blog_entry">
<div class="side_blog_date">Jul 30</div>
<div class="side_blog_title">Video Calls with up to 1000 Viewers, Video Playback Speed and More</div>
</a><a href="/blog/group-video-calls" class="side_blog_entry">
<div class="side_blog_date">Jun 25</div>
<div class="side_blog_title">Group Video Calls</div>
</a>
</div>
</div>
</div></div>
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"></div>
<h1 id="dev_page_title">Voice Messages 2.0, Secret Chats 3.0 and...</h1>
<div id="dev_page_content"><div class="blog_side_image_wrap">
<img src="/file/811140811/4/EkJbMD1YUto/f925a17a623c3a86f9" class="blog_side_image"/>
</div>
<p>Voice messages on Telegram just got a completely new interface with waveform visualizations, a brand new player and raise-to-speak functionality. </p>
<p>You can now start listening to a long voice message and switch to other media or chats. The message will continue playing in the background. For who are we to defy the god of multi-tasking?</p>
<div class="blog_image_wrap">
<a href="/file/811140346/2/sEbwNJrB7LY/4d8cd39e8ffd80cf80" target="_blank"><img src="/file/811140346/2/sEbwNJrB7LY/4d8cd39e8ffd80cf80" title="New looks for voice messages" /></a>
<p>New looks for voice messages</p>
</div>
<p>Recording and listening to voice messages got easier with <strong>raise-to-speak</strong> and <strong>raise-to-listen</strong>. When a chat is open, bring your phone to your ear (as if taking a phone call) to listen to new voice messages or record a new one after the signal. </p>
<div class="blog_image_wrap">
<a href="/file/811140355/1/WIZMMGf4N0o/42aafb28995492f57c" target="_blank"><img src="/file/811140355/1/WIZMMGf4N0o/42aafb28995492f57c" title="Audio 2" /></a>
<p>Raise to Speak: Preview before sending</p>
</div>
<p>This feature involves plenty of behind-the-scene magic with proximity sensors, gyroscopes and accelerometers. It works well with most modern devices, but is still experimental. Some phones may require arcane intervention from our devs. </p>
<h4><a class="anchor" name="secret-chats-3-0" href="#secret-chats-3-0"><i class="anchor-icon"></i></a>Secret Chats 3.0</h4>
<p>With their self-destruct timers and end-to-end encryption, secret chats are a great way to pass sensitive information. Today were bringing the best features from cloud chats over to secret chats: <a href="/blog/link-preview">detailed link previews</a>, <a href="/blog/replies-mentions-hashtags">replies</a>, photo and video captions, <a href="/blog/sticker-revolution">sticker sharing</a>, <a href="/blog/inline-bots">inline bots</a> and <a href="/blog/gif-revolution">GIFs</a>. Weve also improved key visualizations to make secret chats immune to potential alien invasions.</p>
<div class="blog_image_wrap">
<a href="/file/811140526/2/5qImsv63rLc/66a1d8be3034bffdce" target="_blank"><img src="/file/811140526/2/5qImsv63rLc/66a1d8be3034bffdce" title="Secret chat full of goodies"/></a>
<p>A Secret Chat full of new goodies</p>
</div>
<h4><a class="anchor" name="and" href="#and"><i class="anchor-icon"></i></a>…and…</h4>
<p><strong>Privacy</strong>. When overly active friends start adding you to random groups or channels, it gets overwhelming quickly. Now you can decide who may add you to groups and channels with granular precision. E.g. “All my contacts. Except those two.”</p>
<p><strong>Supergroups</strong>. Supergroup creators also get more control. They can now change who may add new members to their group: all existing members or only selected admins. Supergroups can have up to <a href="/blog/supergroups">1000 members</a>, and finding a balance between order and chaos is important if you want them to grow.</p>
<p><strong>Sharing extension</strong>. Sharing on iOS devices has become way smoother. You can now share any photo, video, audio, document or location to any Telegram chat or channel straight from default iOS apps like Contacts, Maps, Voice Memos and Photos. It is also possible to share stuff to several chats or channels at once.</p>
<p><strong>Attachment Menu</strong>. Media files will zoom beautifully when you select them in the attachment menu. Note that weve moved Image Search to the Photo or Video section (tap the magnifying glass icon in the top right corner).</p>
<p><strong>Hotkeys</strong>. iPad users with external keyboards get hotkey support. Now you can navigate chats and send messages without ever touching your iPads screen. Saves a lot of time.</p>
<p><strong>Photo Editor</strong>. In the Android corner, were introducing additional photo-editing tools rotate, fade, tint and curves.</p>
<div class="blog_2images_wrap">
<div class="blog_image_wrap">
<a href="/file/811140092/1/A9PTEPtfUeE/b259839e514e7d6789" target="_blank"><img src="/file/811140092/1/A9PTEPtfUeE/b259839e514e7d6789" title="Android: Photo editor"/></a>
<p>Photo editor</p>
</div>
<div class="blog_image_wrap">
<a href="/file/811140287/2/-R_AMaC0QdA/b2d573c19984ecadba" target="_blank"><img src="/file/811140287/2/-R_AMaC0QdA/b2d573c19984ecadba" title="Android: Curves tool" /></a>
<p>Curves tool</p>
</div>
</div>
<p>Were not done with updates this month more features and good news are coming very soon to a Telegram Messenger near you.</p>
<div><br></div>
<p><em>February 12, 2016<br>The Telegram Team</em></p>
</div>
</div>
<div class="tl_main_share clearfix">
<a href="https://t.me/share/url?url=https%3A%2F%2Ftelegram.org%2Fblog%2Fvoice-2-secret-3&text=Voice%20Messages%202.0%2C%20Secret%20Chats%203.0%2C%20new%20privacy%20settings%20and%20much%20more." class="tl_telegram_share_btn" id="tl_telegram_share_btn" data-text="Voice Messages 2.0, Secret Chats 3.0, new privacy settings and much more." data-url="https://telegram.org/blog/voice-2-secret-3"><i class="tl_telegram_share_icon"></i><span class="tl_telegram_share_label" target="_blank">Forward</span></a>
<a href="https://twitter.com/share" class="tl_twitter_share_btn" id="tl_twitter_share_btn" data-text="Voice Messages 2.0, Secret Chats 3.0, new privacy settings and much more." data-url="https://telegram.org/blog/voice-2-secret-3" data-via="Telegram">Tweet <span class="tl_twitter_share_cnt"></span></a>
</div>
</div>
<div class="tl_main_recent_news_wrap tlb_other_news_wrap tl_blog_list_page_wrap">
<h3 class="tl_main_recent_news_header">
<a href="/blog">Other News</a>
</h3>
<div class="tl_main_recent_news_cards clearfix">
<a class="dev_blog_card_link_wrap" href="/blog/reactions-spoilers-translations"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001488/d35b/oNi_rR0In0o.124097/c74f7d759893b78bfb" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Reactions, Spoilers, Translation and QR Codes</h4>
<div class="dev_blog_card_lead">Telegram&#39;s 12th update of the year introduces reactions, message translation, themed QR codes, hidden text (spoilers), and more.</div>
</div>
<div class="dev_blog_card_date">Dec 30, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/protected-content-delete-by-date-and-more"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001572/2/u_lvhH-CjJ0.99595/a7fca60f9c9e6e193c" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Protected Content, Delete by Date, Device Management and More</h4>
<div class="dev_blog_card_lead">Today&#39;s update brings tools to prevent others from saving content from groups and channels, the ability to delete messages for specific…</div>
</div>
<div class="dev_blog_card_date">Dec 7, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/shared-media-scrolling-calendar-join-requests-and-more"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001930/3/yPTwxfusWZg.174275/3f847742c263cdae99" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Hyper-Speed Scrolling and Calendar View for Shared Media, Join Requests, Global Chat Themes on iOS and More</h4>
<div class="dev_blog_card_lead">Today&#39;s update brings new ways to find memories in shared media with accelerated scrolling…</div>
</div>
<div class="dev_blog_card_date">Nov 3, 2021</div>
</div></a><a class="dev_blog_card_link_wrap" href="/blog/chat-themes-interactive-emoji-read-receipts"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001155/2/kLfFr4UDBdo.74223/58bec6bc2a18455c5f" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Chat Themes, Interactive Emoji, Read Receipts in Groups and Live Stream Recording</h4>
<div class="dev_blog_card_lead">Today&#39;s update lets you set different themes for individual chats, share your feelings with…</div>
</div>
<div class="dev_blog_card_date">Sep 19, 2021</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="/faq">About</a></h5>
<ul>
<li><a href="/faq">FAQ</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="/dl/ios">iPhone/iPad</a></li>
<li><a href="/dl/android">Android</a></li>
<li><a href="/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
<script src="/js/main.js?43"></script>
<script>initScrollVideos(true);
twitterCustomShareInit();
blogSideImageInit();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,388 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Translations</title>
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="alternate icon" href="/favicon.ico?4" type="image/x-icon" />
<script>document.cookie="stel_dt="+encodeURIComponent((new Date).getTimezoneOffset())+";path=/;max-age=31536000;samesite=None;secure"</script>
<link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700" rel="stylesheet" type="text/css">
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/bootstrap-extra.css?2" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet">
<link href="/css/translations.css?108" rel="stylesheet">
<link href="/css/jquery-ui.min.css?1" rel="stylesheet">
<link href="/css/health.css?132" rel="stylesheet">
<link href="/css/tchart.min.css?10" rel="stylesheet">
<link href="/css/billboard.css?17" rel="stylesheet">
</head>
<body class="emoji_image no-transition">
<div id="aj_progress" class="progress-bar"></div>
<div id="aj_content"><div class="tr-container">
<header class=" has-search">
<div class="container">
<section class="tr-search">
<div class="tr-search-field-wrap">
<div class="tr-search-filters">
<span class="tr-search-filters-label">Search in:</span><!--
--><span class="tr-search-filter-wrap tr-search-filter-lang"><span class="tr-search-filter dropdown-toggle" data-toggle="dropdown">English</span><span class="dropdown-menu"><ul class="dropdown-menu"><li class="selected"><a class="tr-search-filter-item" data-value="en">English</a></li><li><a class="tr-search-filter-item" data-value="af">Afrikaans</a></li><li><a class="tr-search-filter-item" data-value="sq">Albanian</a></li><li><a class="tr-search-filter-item" data-value="am">Amharic</a></li><li><a class="tr-search-filter-item" data-value="ar">Arabic</a></li><li><a class="tr-search-filter-item" data-value="az">Azerbaijani</a></li><li><a class="tr-search-filter-item" data-value="eu">Basque</a></li><li><a class="tr-search-filter-item" data-value="be">Belarusian</a></li><li><a class="tr-search-filter-item" data-value="bn">Bengali</a></li><li><a class="tr-search-filter-item" data-value="bg">Bulgarian</a></li><li><a class="tr-search-filter-item" data-value="ca">Catalan</a></li><li><a class="tr-search-filter-item" data-value="zh-hans">Chinese (Simplified)</a></li><li><a class="tr-search-filter-item" data-value="zh-hant">Chinese (Traditional)</a></li><li><a class="tr-search-filter-item" data-value="hr">Croatian</a></li><li><a class="tr-search-filter-item" data-value="cs">Czech</a></li><li><a class="tr-search-filter-item" data-value="da">Danish</a></li><li><a class="tr-search-filter-item" data-value="nl">Dutch</a></li><li><a class="tr-search-filter-item" data-value="eo">Esperanto</a></li><li><a class="tr-search-filter-item" data-value="et">Estonian</a></li><li><a class="tr-search-filter-item" data-value="fi">Finnish</a></li><li><a class="tr-search-filter-item" data-value="fr">French</a></li><li><a class="tr-search-filter-item" data-value="gl">Galician</a></li><li><a class="tr-search-filter-item" data-value="de">German</a></li><li><a class="tr-search-filter-item" data-value="el">Greek</a></li><li><a class="tr-search-filter-item" data-value="gu">Gujarati</a></li><li><a class="tr-search-filter-item" data-value="he">Hebrew</a></li><li><a class="tr-search-filter-item" data-value="hi">Hindi</a></li><li><a class="tr-search-filter-item" data-value="hu">Hungarian</a></li><li><a class="tr-search-filter-item" data-value="id">Indonesian</a></li><li><a class="tr-search-filter-item" data-value="ga">Irish</a></li><li><a class="tr-search-filter-item" data-value="it">Italian</a></li><li><a class="tr-search-filter-item" data-value="ja">Japanese</a></li><li><a class="tr-search-filter-item" data-value="kn">Kannada</a></li><li><a class="tr-search-filter-item" data-value="kk">Kazakh</a></li><li><a class="tr-search-filter-item" data-value="km">Khmer</a></li><li><a class="tr-search-filter-item" data-value="ko">Korean</a></li><li><a class="tr-search-filter-item" data-value="lv">Latvian</a></li><li><a class="tr-search-filter-item" data-value="lt">Lithuanian</a></li><li><a class="tr-search-filter-item" data-value="ms">Malay</a></li><li><a class="tr-search-filter-item" data-value="ml">Malayalam</a></li><li><a class="tr-search-filter-item" data-value="mt">Maltese</a></li><li><a class="tr-search-filter-item" data-value="mr">Marathi</a></li><li><a class="tr-search-filter-item" data-value="nb">Norwegian (Bokmål)</a></li><li><a class="tr-search-filter-item" data-value="or">Odia</a></li><li><a class="tr-search-filter-item" data-value="fa">Persian</a></li><li><a class="tr-search-filter-item" data-value="pl">Polish</a></li><li><a class="tr-search-filter-item" data-value="pt-br">Portuguese (Brazil)</a></li><li><a class="tr-search-filter-item" data-value="pt-pt">Portuguese (Portugal)</a></li><li><a class="tr-search-filter-item" data-value="ro">Romanian</a></li><li><a class="tr-search-filter-item" data-value="ru">Russian</a></li><li><a class="tr-search-filter-item" data-value="sr">Serbian</a></li><li><a class="tr-search-filter-item" data-value="sk">Slovak</a></li><li><a class="tr-search-filter-item" data-value="sl">Slovene</a></li><li><a class="tr-search-filter-item" data-value="es">Spanish</a></li><li><a class="tr-search-filter-item" data-value="sw">Swahili</a></li><li><a class="tr-search-filter-item" data-value="sv">Swedish</a></li><li><a class="tr-search-filter-item" data-value="ta">Tamil</a></li><li><a class="tr-search-filter-item" data-value="te">Telugu</a></li><li><a class="tr-search-filter-item" data-value="th">Thai</a></li><li><a class="tr-search-filter-item" data-value="tr">Turkish</a></li><li><a class="tr-search-filter-item" data-value="tk">Turkmen</a></li><li><a class="tr-search-filter-item" data-value="uk">Ukrainian</a></li><li><a class="tr-search-filter-item" data-value="ur">Urdu</a></li><li><a class="tr-search-filter-item" data-value="uz">Uzbek</a></li><li><a class="tr-search-filter-item" data-value="vi">Vietnamese</a></li></ul></span></span><!--
--><span class="tr-search-filter-wrap tr-search-filter-langpack"><span class="tr-search-filter dropdown-toggle" data-toggle="dropdown">TDesktop</span><span class="dropdown-menu"><ul class="dropdown-menu"><li><a class="tr-search-filter-item" data-value="">All Apps</a></li><li><a class="tr-search-filter-item" data-value="android">Android</a></li><li><a class="tr-search-filter-item" data-value="ios">iOS</a></li><li class="selected"><a class="tr-search-filter-item" data-value="tdesktop">TDesktop</a></li><li><a class="tr-search-filter-item" data-value="macos">macOS</a></li><li><a class="tr-search-filter-item" data-value="android_x">Android X</a></li></ul></span></span>
</div>
<div class="tr-search-binding binding"></div>
<div class="tr-search-enter arrow-right"></div>
<div class="tr-search-reset close"></div>
<form class="tr-search-form">
<input class="form-control tr-search-field" placeholder="Search translations and keys" autocomplete="off" value="" />
</form>
</div>
<div class="tr-search-results collapsed"></div>
</section>
<div class="header-wrap">
<div id="header-panel" class="header-panel">
<div class="header-auth">
<div class="header-auth-item"><a class="header-search-btn"></a></div><div class="header-auth-item"><a class="header-auth-link login-link" href="/auth">Login</a></div>
</div>
<div class="header-breadcrumb header-breadcrumb-simple">
<ol id="breadcrumb" class="header-nav breadcrumb"><li><a href="/">Translations</a></li><li><a href="/en/">English</a></li><li class="active">TDesktop</li></ol>
</div>
</div>
</div>
</div>
</header>
<main class="container">
<nav class="tr-menu"><div class="tr-menu-section tr-menu-has-selected" data-menu-section-id="0">
<div class="tr-menu-header">
<span class="tr-menu-header-collapse"></span>
<div class="tr-menu-header-label">Languages</div>
<div class="tr-menu-selected">
<div class="tr-menu-item tr-menu-item-default">
<span class="nav-label">English</span>
</div>
</div>
</div>
<ul class="tr-menu-items" id="tr-menu-language-items"><li class="active">
<a class="tr-menu-item" href="/en/">
<span class="nav-label">English</span>
</a>
</li><li class="languages-link">
<a class="tr-menu-item">
<span class="nav-label">Other languages...</span>
</a>
</li></ul>
</div><div class="tr-menu-section tr-menu-has-selected" data-menu-section-id="1">
<div class="tr-menu-header">
<span class="tr-menu-header-collapse"></span>
<div class="tr-menu-header-label">Apps</div>
<div class="tr-menu-selected">
<div class="tr-menu-item">
<span class="nav-label">TDesktop</span>
</div>
</div>
</div>
<ul class="tr-menu-items"><li>
<a class="tr-menu-item" href="/en/android/">
<span class="nav-label">Android</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/ios/">
<span class="nav-label">iOS</span>
</a>
</li><li class="active">
<a class="tr-menu-item" href="/en/tdesktop/">
<span class="nav-label">TDesktop</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/macos/">
<span class="nav-label">macOS</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/android_x/">
<span class="nav-label">Android X</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/emoji">
<span class="nav-label">Emoji</span>
</a>
</li></ul>
</div><div class="tr-menu-section tr-menu-has-selected" data-menu-section-id="2">
<div class="tr-menu-header">
<span class="tr-menu-header-collapse"></span>
<div class="tr-menu-header-label">Sections</div>
<div class="tr-menu-selected">
<div class="tr-menu-item">
<span class="nav-label">All Sections</span>
</div>
</div>
</div>
<ul class="tr-menu-items"><li class="active">
<a class="tr-menu-item" href="/en/tdesktop/">
<span class="nav-label">All Sections</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/login/">
<span class="nav-label">Log In</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/chat_list/">
<span class="nav-label">Chat List</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/private_chats/">
<span class="nav-label">Private chats</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/groups_and_channels/">
<span class="nav-label">Groups And Channels</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/profile/">
<span class="nav-label">Profile</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/settings/">
<span class="nav-label">Settings</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/camera_and_media/">
<span class="nav-label">Camera And Media</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/bots_and_payments/">
<span class="nav-label">Bots And Payments</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/passport/">
<span class="nav-label">Passport</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/general/">
<span class="nav-label">General</span>
</a>
</li><li>
<a class="tr-menu-item" href="/en/tdesktop/unsorted/">
<span class="nav-label">Unsorted</span>
</a>
</li></ul>
</div></nav>
<section class="content clearfix">
<section class="tr-content"><h3 class="tr-header">
<a href="/en/" class="tr-back"></a>TDesktop<span class="tr-header-counter">2893</span>
<div class="tr-header-tabs"><span class="tr-header-tab"><a href="/en/tdesktop/recent/translations">Translations</a></span><span class="tr-header-tab"><a href="/en/tdesktop/recent/suggestions">Suggestions</a></span><span class="tr-header-tab"><a href="/en/tdesktop/recent/comments">Comments</a></span></div>
</h3>
<section class="tr-sections clearfix">
<div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/login/" class="tr-section">
<div class="tr-section-cover cover2"></div>
<div class="tr-section-caption">Log In (88)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/chat_list/" class="tr-section">
<div class="tr-section-cover cover3"></div>
<div class="tr-section-caption">Chat List (78)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/private_chats/" class="tr-section">
<div class="tr-section-cover cover4"></div>
<div class="tr-section-caption">Private chats (489)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/groups_and_channels/" class="tr-section">
<div class="tr-section-cover cover8"></div>
<div class="tr-section-caption">Groups And Channels (680)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/profile/" class="tr-section">
<div class="tr-section-cover cover5"></div>
<div class="tr-section-caption">Profile (35)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/settings/" class="tr-section">
<div class="tr-section-cover cover7"></div>
<div class="tr-section-caption">Settings (694)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/camera_and_media/" class="tr-section">
<div class="tr-section-cover cover6"></div>
<div class="tr-section-caption">Camera And Media (88)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/bots_and_payments/" class="tr-section">
<div class="tr-section-cover cover9"></div>
<div class="tr-section-caption">Bots And Payments (87)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/passport/" class="tr-section">
<div class="tr-section-cover cover10"></div>
<div class="tr-section-caption">Passport (160)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/general/" class="tr-section">
<div class="tr-section-cover cover1"></div>
<div class="tr-section-caption">General (578)</div>
</a></div>
</div><div class="tr-section-col col-lg-4 col-xs-6">
<div class="tr-section-wrap"><a href="/en/tdesktop/unsorted/" class="tr-section">
<div class="tr-section-cover cover0"></div>
<div class="tr-section-caption">Unsorted (201)</div>
</a></div>
</div>
</section></section>
</section>
</main>
</div><div class="popup-container login-popup-container hide" id="login-popup-container">
<div class="popup">
<div class="popup-body">
<section>
<h2>Log In</h2>
<p>Log in here to translate Telegram apps. Please enter your <b>phone number</b> in the <a target="_blank" rel="noopener" href="https://telegram.org/faq#login-and-sms">international format</a> and we will send a confirmation message to your account via Telegram.</p>
<form id="send-form" class="login-form">
<div class="form-group">
<input type="tel" class="form-control tr-form-control input-lg" id="phone-number" placeholder="+12223334455" autocomplete="off"/>
</div>
<div class="popup-buttons">
<a class="btn btn-link btn-lg login-cancel-btn">Cancel</a><button type="submit" class="btn btn-link btn-lg">Next</button>
</div>
</form>
<div id="login-form" class="hide">
<div class="form-group">
<span class="form-control tr-form-control input input-lg input-disabled"><strong id="phone-number-field"></strong> (<a class="login-back" href="/auth">Incorrect?</a>)</span>
<p class="help-block dots-animated">We&#39;ve just sent you a message.<br/>Please confirm access via Telegram</p>
</div>
<div class="popup-buttons">
<a class="btn btn-link btn-lg login-cancel-btn">Cancel</a><a class="btn btn-link btn-lg login-back">Back</a>
</div>
</div>
</section>
</div>
</div>
</div><div class="popup-container languages-popup-container hide" id="languages-popup-container">
<div class="popup">
<div class="popup-body popup-has-footer">
<h4>Languages</h4>
<form class="tr-popup-search-form tr-languages-search-form">
<input class="form-control tr-popup-search-field tr-languages-search-field" placeholder="Search languages" autocomplete="off" value="">
</form>
<div class="tr-popup-search-results-wrap tr-languages-results-wrap">
<div class="tr-popup-search-results tr-languages-results"></div>
</div>
<div class="tr-languages-add"><a href="/lang/new" data-layer class="need-auth">Add a new language</a></div>
</div>
</div>
</div></div>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/main-aj.js?56"></script>
<script src="/js/translations.js?96"></script>
<script src="/js/jquery-ui.min.js?1"></script>
<script src="/js/tesseract.js?1"></script>
<script src="/js/main.js?43"></script>
<script src="/js/tchart.min.js?18"></script>
<script src="/js/billboard.min.js?1"></script>
<script src="/js/stats.js?17"></script>
<script>ajInit({"version":722,"apiUrl":"\/api?hash=telegram-crawler","unauth":true,"state":{"searchLang":"en","searchLangpack":"tdesktop","langNames":{"en":"English","af":"Afrikaans","sq":"Albanian","am":"Amharic","ar":"Arabic","az":"Azerbaijani","eu":"Basque","be":"Belarusian","bn":"Bengali","bg":"Bulgarian","ca":"Catalan","zh-hans":"Chinese (Simplified)","zh-hant":"Chinese (Traditional)","hr":"Croatian","cs":"Czech","da":"Danish","nl":"Dutch","eo":"Esperanto","et":"Estonian","fi":"Finnish","fr":"French","gl":"Galician","de":"German","el":"Greek","gu":"Gujarati","he":"Hebrew","hi":"Hindi","hu":"Hungarian","id":"Indonesian","ga":"Irish","it":"Italian","ja":"Japanese","kn":"Kannada","kk":"Kazakh","km":"Khmer","ko":"Korean","lv":"Latvian","lt":"Lithuanian","ms":"Malay","ml":"Malayalam","mt":"Maltese","mr":"Marathi","nb":"Norwegian (Bokmål)","or":"Odia","fa":"Persian","pl":"Polish","pt-br":"Portuguese (Brazil)","pt-pt":"Portuguese (Portugal)","ro":"Romanian","ru":"Russian","sr":"Serbian","sk":"Slovak","sl":"Slovene","es":"Spanish","sw":"Swahili","sv":"Swedish","ta":"Tamil","te":"Telugu","th":"Thai","tr":"Turkish","tk":"Turkmen","uk":"Ukrainian","ur":"Urdu","uz":"Uzbek","vi":"Vietnamese"},"langpackList":[],"langpackNames":{"":"All Apps","android":"Android","ios":"iOS","tdesktop":"TDesktop","macos":"macOS","android_x":"Android X"},"langList":["en","af","sq","am","ar","az","eu","be","bn","bg","ca","zh-hans","zh-hant","hr","cs","da","nl","eo","et","fi","fr","gl","de","el","gu","he","hi","hu","id","ga","it","ja","kn","kk","km","ko","lv","lt","ms","ml","mt","mr","nb","or","fa","pl","pt-br","pt-pt","ro","ru","sr","sk","sl","es","sw","sv","ta","te","th","tr","tk","uk","ur","uz","vi"],"curLang":"en","curLangpack":"tdesktop"}});</script>
<script id="aj_script">l.add({"WEB_PLURALIZED_LABEL_0":"Zero","WEB_PLURALIZED_LABEL_1":"One","WEB_PLURALIZED_LABEL_2":"Two","WEB_PLURALIZED_LABEL_3":"Few","WEB_PLURALIZED_LABEL_4":"Many","WEB_PLURALIZED_LABEL_5":"Other","WEB_NO_TRANSLATIONS_FOUND":"No translations found","WEB_TRANSLATIONS_LOADING":"Loading","WEB_ACTIVATE_LANGPACK_CONFIRM_TEXT":"Do you want to begin translating <b>{lang_pack}<\/b> to <b>{lang}<\/b>?","WEB_ACTIVATE_LANGPACK_CONFIRM_BUTTON":"Start Translating","WEB_LOADING":"Loading","WEB_NO_LANGUAGES_FOUND":"No languages found"});
Search.init();
Header.init();
Nav.init();
Aj.onLoad(function(state) {
function requestConfirmation(event) {
event && event.preventDefault();
var phone = $('#phone-number').val();
$.ajax({
type: 'POST',
url: '/auth/request',
data: {
phone: phone
},
success: function(result) {
$('#phone-number-field').text(phone);
$('#send-form').addClass('hide');
$('#login-form').removeClass('hide');
checkAuth(result.temp_session);
},
error: function(xhr) {
showAlert(xhr.responseText || 'Server error');
},
dataType: 'json'
});
return false;
}
function cancelConfirmation(event) {
event && event.preventDefault();
$('#phone-number-field').text('');
$('#send-form').removeClass('hide');
$('#login-form').addClass('hide');
$('#phone-number').focus();
clearTimeout(window.authTimeout);
return false;
}
function checkAuth(temp_session) {
clearTimeout(window.authTimeout);
window.authTimeout = setTimeout(function doCheckAuth() {
$.ajax({
type: 'POST',
url: '/auth/login',
data: {
temp_session: temp_session
},
success: function(result) {
if (result) {
location.reload();
} else {
checkAuth(temp_session);
}
},
error: function (xhr) {
showAlert(xhr.responseText || 'Server error');
},
dataType: 'json'
});
}, 700);
}
$('#login-popup-container').on('popup:open', function() {
$('#phone-number').focus();
});
$('#login-popup-container').on('popup:close', function() {
cancelConfirmation();
if (location.pathname == '/auth') {
window.history && history.replaceState(null, null, '/');
}
});
$('#login-popup-container #send-form').on('submit', requestConfirmation);
$('#login-popup-container .login-cancel-btn').on('click', function(e) {
e.preventDefault();
closePopup('#login-popup-container');
});
$('#login-popup-container .login-back').on('click', cancelConfirmation);
$('.login-link').on('click', function(e) {
e.stopImmediatePropagation();
e.preventDefault();
openPopup('#login-popup-container');
});
});
Aj.onUnload(function(state) {
$('#login-popup-container').off('popup:open');
$('#login-popup-container').off('popup:close');
$('#login-popup-container #send-form').off('submit');
$('#login-popup-container .login-cancel-btn').off('click');
$('#login-popup-container .login-back').off('click');
$('.login-link').off('click');
});
</script>
<script>Aj.pageLoaded();</script>
</body>
</html>