Update content of files

This commit is contained in:
GitHub Action 2022-02-07 12:37:51 +00:00
parent 060dff06b6
commit 25e8dc0536
18 changed files with 2320 additions and 98509 deletions

View file

@ -10,7 +10,7 @@
<link href="/css/bootstrap-extra.css?2" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet">
<link href="/css/codemirror.css?1" rel="stylesheet">
<link href="/css/instantview.css?114" rel="stylesheet">
<link href="/css/instantview.css?115" rel="stylesheet">
</head>
<body class="no-transition">
@ -203,7 +203,7 @@
<script src="/js/codemirror/simple.js?1"></script>
<script src="/js/codemirror/runmode.js?1"></script>
<script src="/js/codemirror-instantview.js?21"></script>
<script src="/js/instantview.js?71"></script>
<script src="/js/instantview.js?72"></script>
<script>window.initDevPageNav&&initDevPageNav();
$(window).resize(updateNavBar);updateNavBar();

View file

@ -10,7 +10,7 @@
<link href="/css/bootstrap-extra.css?2" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet">
<link href="/css/codemirror.css?1" rel="stylesheet">
<link href="/css/instantview.css?114" rel="stylesheet">
<link href="/css/instantview.css?115" rel="stylesheet">
</head>
<body class="no-transition">
@ -203,7 +203,7 @@
<script src="/js/codemirror/simple.js?1"></script>
<script src="/js/codemirror/runmode.js?1"></script>
<script src="/js/codemirror-instantview.js?21"></script>
<script src="/js/instantview.js?71"></script>
<script src="/js/instantview.js?72"></script>
<script>openPopup('#login-popup-container');
window.initDevPageNav&&initDevPageNav();

View file

@ -14,7 +14,7 @@ For…">
<link href="/css/bootstrap-extra.css?2" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet">
<link href="/css/codemirror.css?1" rel="stylesheet">
<link href="/css/instantview.css?114" rel="stylesheet">
<link href="/css/instantview.css?115" rel="stylesheet">
</head>
<body class="no-transition">
@ -534,7 +534,7 @@ For…">
<script src="/js/codemirror/simple.js?1"></script>
<script src="/js/codemirror/runmode.js?1"></script>
<script src="/js/codemirror-instantview.js?21"></script>
<script src="/js/instantview.js?71"></script>
<script src="/js/instantview.js?72"></script>
<script>$(window).resize(updateNavBar);updateNavBar();
window.initDevPageNav&&initDevPageNav();

View file

@ -2373,6 +2373,96 @@ a.th-sort.th-sort-left.active:after {
display: none;
}
.sort-marker {
display: inline-block;
position: relative;
width: 8px;
height: 11px;
margin: 4px 0 3px 5px;
vertical-align: top;
}
.sort-marker:before,
.sort-marker:after {
position: absolute;
border: 4px solid transparent;
transition: transform .15s ease;
left: 0;
content: '';
}
.sort-marker:before {
border-top-width: 0;
border-bottom-color: #999;
transform-origin: top center;
top: 0;
}
.cell-sort[data-sort-by="stat_ok"] .sort-marker:before {
border-bottom-color: #5cb85c;
}
.cell-sort[data-sort-by="stat_no"] .sort-marker:before {
border-bottom-color: #f0ad4e;
}
.cell-sort[data-sort-by="stat_fail"] .sort-marker:before {
border-bottom-color: #d9534f;
}
.cell-sort[data-sort-by="stat_ok"] .sort-marker:after {
border-top-color: #5cb85c;
}
.cell-sort[data-sort-by="stat_no"] .sort-marker:after {
border-top-color: #f0ad4e;
}
.cell-sort[data-sort-by="stat_fail"] .sort-marker:after {
border-top-color: #d9534f;
}
.sort-marker:after {
border-bottom-width: 0;
border-top-color: #999;
transform-origin: bottom center;
top: 7px;
}
.cell-sort {
display: inline-block;
cursor: pointer;
}
.cell-sort.sort-active.sort-asc .sort-marker:before {
transform: scale(1.25) translateY(2px);
}
.cell-sort.sort-active .sort-marker:after {
transform: scale(1.25) translateY(-2px);
}
.cell-sort.sort-active.sort-asc .sort-marker:after,
.cell-sort.sort-active .sort-marker:before {
transform: scale(0);
}
.cell-empty,
.cell-empty-full {
font-weight: normal;
text-align: center;
color: #999;
}
.cell-empty-full {
padding-top: 24px;
padding-bottom: 24px;
}
.table-contest td .templates-filter-form {
margin: -15px -7px;
}
.table-contest td .templates-filter-input,
.templates-filter-wrap .templates-filter-input {
padding: 15px 7px;
height: auto;
border: none;
}
.templates-filter-wrap .templates-filter-input {
font-size: 14px;
border-bottom: 1px solid #ededed;
}
.table-contest-row svg.stat {
width: 100px;
height: 35px;
}
.value_good,
.value_good:hover,
.value_good:focus,

View file

@ -10,7 +10,7 @@
<link href="/css/bootstrap-extra.css?2" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet">
<link href="/css/codemirror.css?1" rel="stylesheet">
<link href="/css/instantview.css?114" rel="stylesheet">
<link href="/css/instantview.css?115" rel="stylesheet">
</head>
<body class="no-transition">
@ -1427,7 +1427,7 @@ $image: //div[has-class(&quot;image&quot;)]
<script src="/js/codemirror/simple.js?1"></script>
<script src="/js/codemirror/runmode.js?1"></script>
<script src="/js/codemirror-instantview.js?21"></script>
<script src="/js/instantview.js?71"></script>
<script src="/js/instantview.js?72"></script>
<script>$(window).resize(updateNavBar);updateNavBar();
window.initDevPageNav&&initDevPageNav();

View file

@ -254,7 +254,7 @@ function updateOriginalFrame() {
function updateOriginalLabels() {
var time_label = $original_loaded_label.attr('data-time') || '';
var date_label = $original_loaded_label.attr('data-date') || '';
var label = formatDate(App.state.loaded_date, time_label, date_label);
var label = formatTplDate(App.state.loaded_date, time_label, date_label);
$original_loaded_label.text(label);
$original_section.removeClass('original-loading');
@ -580,7 +580,7 @@ function duplicate() {
}
};
function formatDate(timestamp, time_format, date_format) {
function formatTplDate(timestamp, time_format, date_format) {
if (!timestamp) return '';
var cur = new Date();
var date = new Date(timestamp * 1000);
@ -603,6 +603,86 @@ function formatDate(timestamp, time_format, date_format) {
.replace(/\s+$/, '');
}
function ivFormatDate(date) {
var date = new Date(date * 1000);
var cur_date = new Date();
var j = date.getDate();
var M = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][date.getMonth()];
var Y = date.getFullYear();
if (cur_date.getFullYear() != Y) {
return M + ' ' + j + ', ' + Y;
}
var hours = date.getHours();
var g = (hours % 12) || 12;
var i = date.getMinutes();
if (i < 10) i = '0' + i;
return M + ' ' + j + ' at ' + g + ':' + i + ' ' + (hours < 12 ? 'AM' : 'PM');
}
function svgStat(stat) {
var values_count = 3;
var colors = ['#5cb85c', '#f0ad4e', '#d9534f'];
var col_width = 10;
if (!stat.length) {
return '';
}
stat_window = 7;
if (stat_window > 0) {
var new_stat = [];
for (var i = 0, k = 0; i < stat.length; i += values_count, k++) {
for (var j = values_count - 1; j >= 0; j--) {
var w_sum = 0, w_size = 0;
for (var w = Math.min(k, stat_window - 1); w >= 0; w--) {
w_sum += stat[(k - w) * values_count + j];
w_size++;
}
new_stat[k * values_count + j] = w_size ? w_sum / w_size : 0;
}
}
stat = new_stat;
}
var paths = [];
var rpaths = [];
for (var j = values_count - 1; j >= 0; j--) {
paths[j] = '';
rpaths[j] = '';
}
var x = 0, first = true;
for (var i = 0; i < stat.length; i += values_count) {
var values = stat.slice(i, i + values_count);
var sum = 0;
for (var j = values_count - 1; j >= 0; j--) {
sum += values[j];
}
var y = sum > 0 ? 0 : 100;
for (var j = values_count - 1; j >= 0; j--) {
if (first) {
paths[j] += 'M' + x + ' ' + (j ? y : 100) + ' ';
}
rpaths[j] = 'L' + x + ' ' + (j ? y : 100) + ' ' + rpaths[j];
if (j > 0) {
y += sum > 0 ? Math.round(values[j] / sum * 100) : 0;
}
paths[j] += 'L' + x + ' ' + y + ' ';
}
first = false;
x += col_width;
}
x -= col_width;
for (var j = values_count - 1; j >= 0; j--) {
paths[j] += rpaths[j];
}
var width = (stat.length / 3 - 1) * col_width;
var height = 100;
var html = '';
for (var k = 0; k < paths.length; k++) {
html += '<path d="' + paths[k] + '" fill="' + colors[k] + '" />';
}
html = '<svg class="stat" width="' + width + '" height="' + height + '" viewBox="0 0 ' + width + ' ' + height + '" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">' + html + '</svg>';
return html;
}
function initWorkspace(url, url_data) {
App.state = {
result_url: url,
@ -1227,6 +1307,125 @@ function updateDeadlines() {
setTimeout(updateDeadlines, 100);
}
function versionString(ver) {
if (!ver) return '';
var major = parseInt(ver);
var minor = Math.round(ver * 100) % 100;
return major + '.' + minor;
}
function initTemplatesList(options, search_opts) {
var $searchField = $('.templates-filter-input');
var $results = $('.templates-list');
var templatesListSortBy = 'domain';
var templatesListSortAsc = true;
$('.cell-sort').on('click', function(e) {
var sortEl = $(this);
var sortBy = sortEl.attr('data-sort-by');
var sortAsc = sortEl.hasClass('sort-asc');
if (sortBy == templatesListSortBy) {
templatesListSortAsc = !sortAsc;
} else {
templatesListSortBy = sortBy;
templatesListSortAsc = false;
}
updateTemplatesList();
$searchField.trigger('datachange');
});
var updateTemplatesList = function() {
if (App.templatesList) {
var sortBy = templatesListSortBy;
var sortAsc = templatesListSortAsc;
$('.cell-sort').each(function() {
var sortEl = $(this);
var curSortBy = sortEl.attr('data-sort-by');
sortEl.toggleClass('sort-active', sortBy == curSortBy);
sortEl.toggleClass('sort-asc', sortAsc && sortBy == curSortBy);
});
App.templatesList.sort(function(ad1, ad2) {
var v1 = sortAsc ? ad1 : ad2;
var v2 = sortAsc ? ad2 : ad1;
if (typeof v1[sortBy + '_asc'] !== 'undefined') {
return (v1[sortBy] - v2[sortBy]) || (v1[sortBy + '_asc'] - v2[sortBy + '_asc']) || (v1.date - v2.date);
}
if (v1[sortBy] && v1[sortBy].localeCompare) {
return v1[sortBy].localeCompare(v2[sortBy]) || (v1.date - v2.date);
}
return (v1[sortBy] - v2[sortBy]) || (v1.date - v2.date);
});
}
};
var loadTemplatesList = function(opts) {
opts = opts || {};
apiRequest('getProductionTemplatesList', {
offset_id: opts.offset
}, function(result) {
if (result.error) {
if (!opts.retry) opts.retry = 1;
else opts.retry++;
setTimeout(function(){ loadTemplatesList(opts); }, opts.retry * 1000);
} else {
if (opts.retry) {
opts.retry = 0;
}
processTemplatesList(result, opts);
}
});
};
var getTemplatesList = function() {
var _data = App.templatesList;
if (_data === false) {
return false;
} else if (_data) {
return _data;
}
App.templatesList = false;
App.templatesListIsLoading = true;
if (options.init_items) {
setTimeout(function() {
processTemplatesList(options.init_items);
}, 10);
} else {
loadTemplatesList({offset: 0});
}
return false;
};
var processTemplatesList = function(result, opts) {
opts = opts || {};
if (result.items) {
if (!App.templatesList) {
App.templatesList = [];
}
for (var i = 0; i < result.items.length; i++) {
var item = result.items[i];
item._values = [
item.domain.toLowerCase(),
];
if (options.prepareItem) {
options.prepareItem(item);
}
App.templatesList.push(item);
}
updateTemplatesList();
$searchField.trigger('contentchange');
}
if (result.next_offset) {
opts.offset = result.next_offset;
loadTemplatesList(opts);
} else {
App.templatesListIsLoading = false;
$searchField.trigger('dataready');
}
}
$searchField.initSearch($.extend({
$results: $results,
emptyQueryEnabled: true,
updateOnInit: true,
resultsNotScrollable: true,
getData: getTemplatesList
}, search_opts));
}
$('body').removeClass('no-transition');
/*!

File diff suppressed because it is too large Load diff

View file

@ -10,7 +10,7 @@
<link href="/css/bootstrap-extra.css?2" rel="stylesheet">
<link href="/css/telegram.css?215" rel="stylesheet">
<link href="/css/codemirror.css?1" rel="stylesheet">
<link href="/css/instantview.css?114" rel="stylesheet">
<link href="/css/instantview.css?115" rel="stylesheet">
</head>
<body class="no-transition">
@ -161,7 +161,7 @@
<script src="/js/codemirror/simple.js?1"></script>
<script src="/js/codemirror/runmode.js?1"></script>
<script src="/js/codemirror-instantview.js?21"></script>
<script src="/js/instantview.js?71"></script>
<script src="/js/instantview.js?72"></script>
<script>$(window).resize(updateNavBar);updateNavBar();
window.initDevPageNav&&initDevPageNav();

View file

@ -9,7 +9,7 @@
<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/instantview.css?114" rel="stylesheet">
<link href="/css/instantview.css?115" rel="stylesheet">
</head>
<body class="no-transition">
@ -305,7 +305,7 @@
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/instantview.js?71"></script>
<script src="/js/instantview.js?72"></script>
<script>App={"baseUrl":"\/api\/samples?hash=telegram-crawler","frameOrigin":"https:\/\/ivwebcontent.telegram.org","lang":{"delete_url_confirmation":"Are you sure you want to stop tracking this URL?","delete_url_confirm_button":"Delete","not_ready_for_contest_alert":"Sorry, this template covers too few article URLs that generate <b>valid Instant View pages<\/b> to enter the contest.<br\/><br\/>Please add at least <b>10 different URLs<\/b> from this website to your template and press <b>Track Changes<\/b> on each of them to make sure they are <a href=\"https:\/\/instantview.telegram.org\/checklist\">processed correctly<\/a> and generate valid pages.","submit_for_contest_confirmation":"Are you sure you want to submit this template for the contest?<br\/><br\/><b>NEW&#33;<\/b> Check out the <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/instantview.telegram.org\/contest\/\/links\">list of potentially problematic links<\/a> for <b><\/b> and make sure that your template satisfies all the criteria for a <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/instantview.telegram.org\/checklist\">perfect template<\/a>.<br\/><br\/>You can resubmit a fixed version later, but it will lose its place at the top of the list. All resubmissions will be considered new templates for the purposes of determining the winner.","submit_for_contest_confirm_button":"Confirm","submit_template_confirmation":"Are you sure you want to submit this template? <br\/>Make sure that your template satisfies all the criteria for a <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/instantview.telegram.org\/checklist\">perfect template<\/a>.<br\/><br\/>Note that it will <b>not<\/b> participate in contest.","submit_template_confirm_button":"Confirm","revoke_from_contest_confirmation":"Are you sure you want to revoke this template from the contest? You can resubmit a new version later, but your template will lose its place at the top of the list.","revoke_from_contest_confirm_button":"Revoke","revoke_template_confirmation":"Are you sure you want to revoke this template?<br\/><br\/>Note that it does <b>not<\/b> participate in contest.","revoke_template_confirm_button":"Revoke","resubmit_for_contest_confirmation":"Are you sure you want to resubmit this template for the contest? Your previous template will lose its place at the top of the list. <br\/><br\/><b>NEW&#33;<\/b> Check out the <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/instantview.telegram.org\/contest\/\/links\">list of potentially problematic links<\/a> for <b><\/b> and make sure that your new version satisfies all the criteria for a <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/instantview.telegram.org\/checklist\">perfect template<\/a>.","resubmit_for_contest_confirm_button":"Confirm","resubmit_template_confirmation":"Are you sure you want to resubmit this template? <br\/>Make sure that your template satisfies all the criteria for a <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/instantview.telegram.org\/checklist\">perfect template<\/a>.<br\/><br\/>Note that it will <b>not<\/b> participate in contest.","resubmit_template_confirm_button":"Confirm"}};
$(window).resize(updateNavBar);updateNavBar();

File diff suppressed because one or more lines are too long

View file

@ -105,11 +105,11 @@
<script src="/js/widget-frame.js?56"></script>
<script src="/js/promote.js?49"></script>
<script src="/js/jquery-ui.min.js?1"></script>
<script src="/js/jquery-ex.js?8"></script>
<script src="/js/jquery-ex.js?9"></script>
<script src="/js/tchart.min.js?18"></script>
<script src="/js/health.js?16"></script>
<script>ajInit({"version":548,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script>ajInit({"version":549,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script id="aj_script">l.add({"WEB_AB_WARNING_HEADER":"Turn off ad blocker","WEB_POPUP_CLOSE_BTN":"Close","WEB_AB_WARNING_TEXT":"You appear to be using an ad blocker that may prevent pages on the Telegram Ad Platform from working as expected.<br\/><br\/>Please turn off your ad blocker or add <a href=\"http:\/\/promote.telegram.org\/\">promote.telegram.org<\/a> as an exception to manage your promoted messages."});
window.enableInlineVideo&&$('video').each(function(){enableInlineVideo(this)});
Ads.init();

View file

@ -105,11 +105,11 @@
<script src="/js/widget-frame.js?56"></script>
<script src="/js/promote.js?49"></script>
<script src="/js/jquery-ui.min.js?1"></script>
<script src="/js/jquery-ex.js?8"></script>
<script src="/js/jquery-ex.js?9"></script>
<script src="/js/tchart.min.js?18"></script>
<script src="/js/health.js?16"></script>
<script>ajInit({"version":548,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script>ajInit({"version":549,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script id="aj_script">l.add({"WEB_AB_WARNING_HEADER":"Turn off ad blocker","WEB_POPUP_CLOSE_BTN":"Close","WEB_AB_WARNING_TEXT":"You appear to be using an ad blocker that may prevent pages on the Telegram Ad Platform from working as expected.<br\/><br\/>Please turn off your ad blocker or add <a href=\"http:\/\/promote.telegram.org\/\">promote.telegram.org<\/a> as an exception to manage your promoted messages."});
openPopup('#login-popup-container');
window.enableInlineVideo&&$('video').each(function(){enableInlineVideo(this)});

View file

@ -105,11 +105,11 @@
<script src="/js/widget-frame.js?56"></script>
<script src="/js/promote.js?49"></script>
<script src="/js/jquery-ui.min.js?1"></script>
<script src="/js/jquery-ex.js?8"></script>
<script src="/js/jquery-ex.js?9"></script>
<script src="/js/tchart.min.js?18"></script>
<script src="/js/health.js?16"></script>
<script>ajInit({"version":548,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script>ajInit({"version":549,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script id="aj_script">l.add({"WEB_AB_WARNING_HEADER":"Turn off ad blocker","WEB_POPUP_CLOSE_BTN":"Close","WEB_AB_WARNING_TEXT":"You appear to be using an ad blocker that may prevent pages on the Telegram Ad Platform from working as expected.<br\/><br\/>Please turn off your ad blocker or add <a href=\"http:\/\/promote.telegram.org\/\">promote.telegram.org<\/a> as an exception to manage your promoted messages."});
window.enableInlineVideo&&$('video').each(function(){enableInlineVideo(this)});
Ads.init();

View file

@ -221,11 +221,11 @@
<script src="/js/widget-frame.js?56"></script>
<script src="/js/promote.js?49"></script>
<script src="/js/jquery-ui.min.js?1"></script>
<script src="/js/jquery-ex.js?8"></script>
<script src="/js/jquery-ex.js?9"></script>
<script src="/js/tchart.min.js?18"></script>
<script src="/js/health.js?16"></script>
<script>ajInit({"version":548,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script>ajInit({"version":549,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script id="aj_script">l.add({"WEB_AB_WARNING_HEADER":"Turn off ad blocker","WEB_POPUP_CLOSE_BTN":"Close","WEB_AB_WARNING_TEXT":"You appear to be using an ad blocker that may prevent pages on the Telegram Ad Platform from working as expected.<br\/><br\/>Please turn off your ad blocker or add <a href=\"http:\/\/promote.telegram.org\/\">promote.telegram.org<\/a> as an exception to manage your promoted messages."});
window.enableInlineVideo&&$('video').each(function(){enableInlineVideo(this)});
Ads.init();

View file

@ -213,11 +213,11 @@
<script src="/js/widget-frame.js?56"></script>
<script src="/js/promote.js?49"></script>
<script src="/js/jquery-ui.min.js?1"></script>
<script src="/js/jquery-ex.js?8"></script>
<script src="/js/jquery-ex.js?9"></script>
<script src="/js/tchart.min.js?18"></script>
<script src="/js/health.js?16"></script>
<script>ajInit({"version":548,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script>ajInit({"version":549,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script id="aj_script">l.add({"WEB_AB_WARNING_HEADER":"Turn off ad blocker","WEB_POPUP_CLOSE_BTN":"Close","WEB_AB_WARNING_TEXT":"You appear to be using an ad blocker that may prevent pages on the Telegram Ad Platform from working as expected.<br\/><br\/>Please turn off your ad blocker or add <a href=\"http:\/\/promote.telegram.org\/\">promote.telegram.org<\/a> as an exception to manage your promoted messages."});
window.enableInlineVideo&&$('video').each(function(){enableInlineVideo(this)});
Ads.init();

View file

@ -1727,6 +1727,20 @@ function preventDefault(e) {
e.preventDefault();
}
var Keys = {
BACKSPACE: 8,
ESC: 27,
TAB: 9,
RETURN: 13,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
on: function(key, callback) {
return function(e){ if(e.which == key) callback.apply(this, Array.prototype.slice.apply(arguments)); };
}
};
/*!
Autosize 3.0.20
license: MIT

View file

@ -153,11 +153,11 @@
<script src="/js/widget-frame.js?56"></script>
<script src="/js/promote.js?49"></script>
<script src="/js/jquery-ui.min.js?1"></script>
<script src="/js/jquery-ex.js?8"></script>
<script src="/js/jquery-ex.js?9"></script>
<script src="/js/tchart.min.js?18"></script>
<script src="/js/health.js?16"></script>
<script>ajInit({"version":548,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script>ajInit({"version":549,"apiUrl":"\/api?hash=telegram-crawler","unauth":true});</script>
<script id="aj_script">l.add({"WEB_AB_WARNING_HEADER":"Turn off ad blocker","WEB_POPUP_CLOSE_BTN":"Close","WEB_AB_WARNING_TEXT":"You appear to be using an ad blocker that may prevent pages on the Telegram Ad Platform from working as expected.<br\/><br\/>Please turn off your ad blocker or add <a href=\"http:\/\/promote.telegram.org\/\">promote.telegram.org<\/a> as an exception to manage your promoted messages."});
window.enableInlineVideo&&$('video').each(function(){enableInlineVideo(this)});
Ads.init();

View file

@ -1,283 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Telegram Messenger</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Telegram a new era of messaging">
<meta property="og:image" content="https://telegram.org/img/t_logo.png">
<meta property="og:site_name" content="Telegram">
<meta property="og:description" content="Fast. Secure. Powerful.">
<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="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 tl_main_page_container">
<div class="tl_page">
<div class="tl_main_wrap">
<div class="tl_main_head">
<div class="tl_main_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/video-stickers-better-reactions" class="side_blog_entry">
<div class="side_blog_date">Jan 31</div>
<div class="side_blog_title">Video Stickers, Better Reactions and More</div>
</a><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>
</div>
</div>
</div></div>
<div class="tl_main_logo_wrap">
<a href="/" class="tl_main_logo">
<svg width="128" height="128" class="tl_main_logo">
<image class="tl_main_logo" xlink:href="/img/t_logo.svg?1" src="/img/t_logo.png?1" srcset="/img/t_logo_2x.png?1 2x, /img/t_logo.png?1 1x" alt="Telegram logo" width="128" height="128" />
</svg>
<div class="tl_main_logo_title_image" alt="Telegram"></div>
</a>
<p class="tl_main_logo_lead">a new era of messaging</p>
</div>
</div>
<div class="tl_main_download_mobile clearfix">
<a href="/android" class="tl_main_download_link tl_main_download_link_android" data-track="AppDownload/Android" onclick="trackDlClick(this, event)" onmouseover="mainDemoVideoHover(this, 1)" onmouseout="mainDemoVideoHover(this, 0)">
<i class="icon icon-android "></i>Telegram for <b>Android</b>
<div class="tl_main_download_image__android"></div>
<video class="tl_main_video_player tl_main_video_player__android video__init_retina" muted="" vindex="1" preload="none" data-sources="/img/t_main_Android_demo.mp4,/img/t_main_Android_demo_2x.mp4"></video>
</a><a href="/dl/ios" class="tl_main_download_link tl_main_download_link_ios" target="_blank" data-track="AppDownload/iOS" onclick="trackDlClick(this, event)" onmouseover="mainDemoVideoHover(this, 1)" onmouseout="mainDemoVideoHover(this, 0)">
<i class="icon icon-ios "></i>Telegram for <b>iPhone</b> / <b>iPad</b>
<div class="tl_main_download_image__ios"></div>
<video class="tl_main_video_player tl_main_video_player__ios video__init_retina" muted="" vindex="1" preload="none" data-sources="/img/t_main_iOS_demo.mp4,/img/t_main_iOS_demo_2x.mp4"></video>
</a>
<a href="//desktop.telegram.org/" class="tl_main_download_link tl_main_download_link_tdesktop" data-track="AppDownload/TDesktop" onclick="trackDlClick(this, event)">
Telegram for <b>Windows / Mac / Linux</b>
</a>
<a class="tl_main_download_more_btn" href="/apps">Browse more Telegram apps<i class="icon icon-arrow-more"></i></a>
</div>
<div class="tl_main_download_desktop_section">
<h3 class="tl_main_download_desktop_header"></h3>
<div class="tl_main_download_desktop_wrap1">
<div class="tl_main_download_desktop_wrap">
<div class="tl_main_download_desktop clearfix">
<div class="tl_main_download_desktop_links clearfix">
<a href="//desktop.telegram.org/" class="tl_main_download_desktop_link tl_main_download_link_td" data-track="DesktopDownload/TDesktop" onclick="trackDlClick(this, event)">
Telegram&nbsp;for <b>PC / Linux</b>
</a><a href="//macos.telegram.org/" class="tl_main_download_desktop_link tl_main_download_link_osx" data-track="DesktopDownload/OSX" onclick="trackDlClick(this, event)">
Telegram&nbsp;for <b>macOS</b>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="tl_main_recent_news_wrap tl_blog_list_page_wrap">
<h3 class="tl_main_recent_news_header">
<a href="/blog">Recent News</a>
</h3>
<div class="tl_main_recent_news_cards clearfix">
<a class="dev_blog_card_link_wrap" href="/blog/video-stickers-better-reactions"><div class="dev_blog_card_wrap">
<img class="dev_blog_card_image" src="https://telegram.org/file/464001234/e805/Z0pNrCJET-E.104373/a38ce74977bc53b064" />
<div class="dev_blog_card_alltext_wrap">
<h4 class="dev_blog_card_title">Video Stickers, Better Reactions and More</h4>
<div class="dev_blog_card_lead">This update brings easy-to-make video stickers, better reactions with more compact animations and extra emoji, a button to review unseen…</div>
</div>
<div class="dev_blog_card_date">Jan 31, 2022</div>
</div></a><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>
</div>
</div>
<div class="tl_main_body tl_main_cards_animated_wrap">
<a name="what-can-you-do-with-Telegram"></a>
<h3 class="tl_main_body_header">Why Telegram?</h3>
<div class="tl_main_cards">
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001484/1/bzi7gr7XRGU.10147/815df2ef527132dd23"><img src="/file/464001897/3/f0Go0rLpEwk.11343.png/dd4eeb46cc5efc0688" /></picture>
<h3 class="tl_main_card_header">Simple</h3>
<div class="tl_main_card_lead"><b>Telegram</b> is so simple you already know how to use it.</div>
</div>
</div>
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001418/1/fabnJFzygPY.17422/bc9dec9fd8bd26e00e"><img src="/file/464001737/4/Fn57W9l3xI0.15286.png/d4b936ecc2c939f4fa" /></picture>
<h3 class="tl_main_card_header">Private</h3>
<div class="tl_main_card_lead"><b>Telegram</b> messages are heavily encrypted and can self-destruct.</div>
</div>
</div>
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001560/1/zLlKYgeDLoA.14496/62085b07461f2d87e4"><img src="/file/464001560/2/n7EACfx4FPY.16465.png/7318c11715aa2ec45b" /></picture>
<h3 class="tl_main_card_header">Synced</h3>
<div class="tl_main_card_lead"><b>Telegram</b> lets you access your chats from multiple devices.</div>
</div>
</div>
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001493/2/hV6uPcaHk_E.17388/dcccb066a7b4fe44ee"><img src="/file/464001132/3/-1qvqKPZsQQ.17975.png/7d57d7159cf4fbe9b2" /></picture>
<h3 class="tl_main_card_header">Fast</h3>
<div class="tl_main_card_lead"><b>Telegram</b> delivers messages faster than any other application.</div>
</div>
</div>
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001803/1/cnqy4KrA5bE.12755/b97780ca9da88b4f84"><img src="/file/464001871/3/Uyg3R7LmX1I.17628.png/911807f65dfb4f8f20" /></picture>
<h3 class="tl_main_card_header">Powerful</h3>
<div class="tl_main_card_lead"><b>Telegram</b> has no limits on the size of your media and chats.</div>
</div>
</div>
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001880/2/VGTLBN3QuYM.10959/8940838e7dddc787d8"><img src="/file/464001880/3/xOpm7ohoHQ0.12690.png/feb1e161b1d3608613" /></picture>
<h3 class="tl_main_card_header">Open</h3>
<div class="tl_main_card_lead"><b>Telegram</b> has an open <a href="https://core.telegram.org/api">API</a> and source code free for everyone.</div>
</div>
</div>
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001453/2/eW_MzRhUGoM.10926/fe1f3bc3dd08367c0a"><img src="/file/464001453/3/mNzXWC3RX0c.15740.png/9ce5fa5f3fb74460b4" /></picture>
<h3 class="tl_main_card_header">Secure</h3>
<div class="tl_main_card_lead"><b>Telegram</b> keeps your messages safe from hacker attacks.</div>
</div>
</div>
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001812/2/kLAK2TPyvUU.12545/f68c1caf735a2ea3db"><img src="/file/464001402/5/eOMSj3GzJXo.13579.png/f3cec6c451d023c109" /></picture>
<h3 class="tl_main_card_header">Social</h3>
<div class="tl_main_card_lead"><b>Telegram</b> groups can hold up to 200,000 members.</div>
</div>
</div>
<div class="tl_main_card_cell">
<div class="tl_main_card_wrap">
<picture class="dev_page_tgsticker tl_main_card_animated js-tgsticker_image"><div></div><source type="application/x-tgsticker" srcset="/file/464001166/1/01aTJ2ISKeU.21801/24028c7b6d07639794"><img src="/file/464001166/2/FzTl8_M5mQA.19325.png/b6c5dbc0e4f6553805" /></picture>
<h3 class="tl_main_card_header">Expressive</h3>
<div class="tl_main_card_lead"><b>Telegram</b> lets you completely customize your messenger.</div>
</div>
</div>
</div>
<div class="tl_main_noshare clearfix"></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>mainInitRetinaVideos();
mainInitTgStickers({"maxDeviceRatio":2,"cachingModulo":3,"unsupportedURL":"\/?notgs=1"});
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>