24 changed files with 81157 additions and 546 deletions
@ -1,92 +0,0 @@ |
|||||||
CACHE MANIFEST |
|
||||||
# Time: Sun Jun 12 2016 22:29:17 GMT+0300 (MSK) |
|
||||||
|
|
||||||
|
|
||||||
CACHE: |
|
||||||
favicon.ico |
|
||||||
favicon_unread.ico |
|
||||||
css/app.css |
|
||||||
css/desktop.css |
|
||||||
css/mobile.css |
|
||||||
img/Manytabs.png |
|
||||||
img/Manytabs_2x.png |
|
||||||
img/Telegram.png |
|
||||||
img/Telegram.svg |
|
||||||
img/Telegram72.png |
|
||||||
img/Telegram72_2x.png |
|
||||||
img/Telegram_2x.png |
|
||||||
img/blank.gif |
|
||||||
img/emojisprite_0.png |
|
||||||
img/emojisprite_1.png |
|
||||||
img/emojisprite_2.png |
|
||||||
img/emojisprite_3.png |
|
||||||
img/emojisprite_4.png |
|
||||||
img/iphone_home120.png |
|
||||||
img/iphone_startup.png |
|
||||||
img/logo_share.png |
|
||||||
img/sound_a.mp3 |
|
||||||
js/app.js |
|
||||||
nacl/mtproto_crypto.nmf |
|
||||||
nacl/mtproto_crypto.pexe |
|
||||||
img/changelog/card_wecandoit.png |
|
||||||
img/icons/AboutLogos.png |
|
||||||
img/icons/AboutLogos_2x.png |
|
||||||
img/icons/General.png |
|
||||||
img/icons/General_2x.png |
|
||||||
img/icons/IconsetSmiles.png |
|
||||||
img/icons/IconsetSmiles_2x.png |
|
||||||
img/icons/IconsetW.png |
|
||||||
img/icons/IconsetW_2x.png |
|
||||||
img/icons/Major.png |
|
||||||
img/icons/Major_2x.png |
|
||||||
img/icons/MobileIcons.png |
|
||||||
img/icons/MobileIcons_2x.png |
|
||||||
img/icons/PhotoIcons.png |
|
||||||
img/icons/PhotoIcons_2x.png |
|
||||||
img/icons/ProfileIcons.png |
|
||||||
img/icons/ProfileIcons_2x.png |
|
||||||
img/placeholders/DialogListAvatarSystem@2x.png |
|
||||||
img/placeholders/GroupAvatar1@2x.png |
|
||||||
img/placeholders/GroupAvatar2@2x.png |
|
||||||
img/placeholders/GroupAvatar3@2x.png |
|
||||||
img/placeholders/GroupAvatar4@2x.png |
|
||||||
img/placeholders/PhotoThumbConversation.gif |
|
||||||
img/placeholders/PhotoThumbModal.gif |
|
||||||
img/placeholders/UserAvatar1@2x.png |
|
||||||
img/placeholders/UserAvatar2@2x.png |
|
||||||
img/placeholders/UserAvatar3@2x.png |
|
||||||
img/placeholders/UserAvatar4@2x.png |
|
||||||
img/placeholders/UserAvatar5@2x.png |
|
||||||
img/placeholders/UserAvatar6@2x.png |
|
||||||
img/placeholders/UserAvatar7@2x.png |
|
||||||
img/placeholders/UserAvatar8@2x.png |
|
||||||
img/placeholders/VideoThumbConversation.gif |
|
||||||
img/placeholders/VideoThumbModal.gif |
|
||||||
js/lib/bin_utils.js |
|
||||||
js/lib/crypto_worker.js |
|
||||||
js/lib/polyfill.js |
|
||||||
js/locales/de-de.json |
|
||||||
js/locales/en-us.json |
|
||||||
js/locales/es-es.json |
|
||||||
js/locales/it-it.json |
|
||||||
js/locales/nl-nl.json |
|
||||||
js/locales/pt-br.json |
|
||||||
js/locales/ru-ru.json |
|
||||||
vendor/closure/long.js |
|
||||||
vendor/cryptoJS/crypto.js |
|
||||||
vendor/jsbn/jsbn_combined.js |
|
||||||
vendor/leemon_bigint/bigint.js |
|
||||||
vendor/rusha/rusha.js |
|
||||||
vendor/angular/i18n/angular-locale_de-de.js |
|
||||||
vendor/angular/i18n/angular-locale_en-us.js |
|
||||||
vendor/angular/i18n/angular-locale_es-es.js |
|
||||||
vendor/angular/i18n/angular-locale_it-it.js |
|
||||||
vendor/angular/i18n/angular-locale_nl-nl.js |
|
||||||
vendor/angular/i18n/angular-locale_pt-br.js |
|
||||||
vendor/angular/i18n/angular-locale_ru-ru.js |
|
||||||
|
|
||||||
|
|
||||||
NETWORK: |
|
||||||
http://* |
|
||||||
https://* |
|
||||||
* |
|
@ -0,0 +1 @@ |
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns=http://www.w3.org/1999/xhtml xml:lang=en lang=en style="display:block; overflow: auto; background: #f8f8f8;"><head><meta charset=utf-8><meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"><title>Telegram Web</title><link rel=stylesheet href=css/badbrowser.css><link rel=icon href=favicon.ico type=image/x-icon></head><body class="non_osx is_1x"><div class=welcome_form style="padding-bottom: 50px; clear: both;"><div class=bad_browser_wrap><h2>Your browser is outdated!</h2><div class=bad_browser_text><p>Don't take this personally, but your browser is too old to run <strong>Telegram Web</strong>.<br>We require HTML5 support for the MTProto secure messaging protocol to work.</p><p>Unfortunately, your current browser doesn't support HTML5.<br>Please download a modern browser and come back soon!</p></div><a class="btn btn-primary btn-lg pull-right" href=//firefox.com target=_blank>Download Mozilla Firefox</a> <a class="btn btn-primary btn-lg" href=//google.com/chrome target=_blank>Download Google Chrome</a></div></div></body></html> |
@ -1,5 +1 @@ |
|||||||
<!doctype html><html lang=en manifest=webogram.appcache ng-csp xmlns:ng=http://angularjs.org id=ng-app><head><meta charset=utf-8><meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"><title>Telegram Web</title><link rel=stylesheet href=css/app.css><style> |
<!doctype html><html lang=en manifest=webogram.appcache ng-csp xmlns:ng=http://angularjs.org id=ng-app style="display: none;"><head><meta charset=utf-8><meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"><title>Telegram Web</title><link rel=stylesheet href=css/app.css><link rel=manifest href=manifest.json><link rel=icon href=favicon.ico type=image/x-icon><link rel=apple-touch-icon href=img/iphone_home120.png><link rel=apple-touch-icon sizes=120x120 href=img/iphone_home120.png><link rel=apple-touch-startup-image media="(device-width: 320px)" href=img/iphone_startup.png><meta name=apple-mobile-web-app-title content="Telegram Web"><meta name=mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=black-translucent><meta name=theme-color content=#497495><meta name=google content=notranslate><meta property=og:title content="Telegram Web"><meta property=og:url content="https://web.telegram.org/"><meta property=og:image content=https://web.telegram.org/img/logo_share.png><meta property=og:site_name content="Telegram Web"><meta property=og:description content="Welcome to the Web application of Telegram messenger. See https://github.com/zhukov/webogram for more info."></head><body><div class=page_wrap ng-view></div><div id=notify_sound></div><script src=js/app.js></script></body></html> |
||||||
html { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
</style><link rel=icon href=favicon.ico type=image/x-icon><link rel=apple-touch-icon href=img/iphone_home120.png><link rel=apple-touch-icon sizes=120x120 href=img/iphone_home120.png><link rel=apple-touch-startup-image media="(device-width: 320px)" href=img/iphone_startup.png><meta name=apple-mobile-web-app-title content="Telegram Web"><meta name=mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=black-translucent><meta name=theme-color content=#497495><meta name=google content=notranslate><meta property=og:title content="Telegram Web"><meta property=og:url content="https://web.telegram.org/"><meta property=og:image content=https://web.telegram.org/img/logo_share.png><meta property=og:site_name content="Telegram Web"><meta property=og:description content="Welcome to the Web application of Telegram messenger. See https://github.com/zhukov/webogram for more info."></head><body><div class=page_wrap ng-view></div><div id=notify_sound></div><script src=js/app.js></script></body></html> |
|
File diff suppressed because one or more lines are too long
@ -1,135 +1,136 @@ |
|||||||
// Console-polyfill. MIT license.
|
// Console-polyfill. MIT license.
|
||||||
// https://github.com/paulmillr/console-polyfill
|
// https://github.com/paulmillr/console-polyfill
|
||||||
// Make it safe to do console.log() always.
|
// Make it safe to do console.log() always.
|
||||||
(function(global) { |
;(function (global) { |
||||||
'use strict'; |
'use strict' |
||||||
global.console = global.console || {}; |
global.console = global.console || {} |
||||||
var con = global.console; |
var con = global.console |
||||||
var prop, method; |
var prop |
||||||
var empty = {}; |
var method |
||||||
var dummy = function() {}; |
var empty = {} |
||||||
var properties = 'memory'.split(','); |
var dummy = function () {} |
||||||
|
var properties = 'memory'.split(',') |
||||||
var methods = ('assert,clear,count,debug,dir,dirxml,error,exception,group,' + |
var methods = ('assert,clear,count,debug,dir,dirxml,error,exception,group,' + |
||||||
'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' + |
'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' + |
||||||
'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(','); |
'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(',') |
||||||
while (prop = properties.pop()) if (!con[prop]) con[prop] = empty; |
while (prop = properties.pop()) if (!con[prop]) con[prop] = empty |
||||||
while (method = methods.pop()) if (!con[method]) con[method] = dummy; |
while (method = methods.pop()) if (!con[method]) con[method] = dummy |
||||||
})(typeof window === 'undefined' ? this : window); |
})(typeof window === 'undefined' ? this : window) |
||||||
// Using `this` for web workers while maintaining compatibility with browser
|
// Using `this` for web workers while maintaining compatibility with browser
|
||||||
// targeted script loaders such as Browserify or Webpack where the only way to
|
// targeted script loaders such as Browserify or Webpack where the only way to
|
||||||
// get to the global object is via `window`.
|
// get to the global object is via `window`.
|
||||||
|
|
||||||
/* Array.indexOf polyfill */ |
/* Array.indexOf polyfill */ |
||||||
if (!Array.prototype.indexOf) { |
if (!Array.prototype.indexOf) { |
||||||
Array.prototype.indexOf = function(searchElement, fromIndex) { |
Array.prototype.indexOf = function (searchElement, fromIndex) { |
||||||
var k; |
var k |
||||||
if (this == null) { |
if (this == null) { |
||||||
throw new TypeError('"this" is null or not defined'); |
throw new TypeError('"this" is null or not defined') |
||||||
} |
} |
||||||
|
|
||||||
var O = Object(this); |
var O = Object(this) |
||||||
var len = O.length >>> 0; |
var len = O.length >>> 0 |
||||||
if (len === 0) { |
if (len === 0) { |
||||||
return -1; |
return -1 |
||||||
} |
} |
||||||
var n = +fromIndex || 0; |
var n = +fromIndex || 0 |
||||||
|
|
||||||
if (Math.abs(n) === Infinity) { |
if (Math.abs(n) === Infinity) { |
||||||
n = 0; |
n = 0 |
||||||
} |
} |
||||||
if (n >= len) { |
if (n >= len) { |
||||||
return -1; |
return -1 |
||||||
} |
} |
||||||
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); |
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0) |
||||||
while (k < len) { |
while (k < len) { |
||||||
if (k in O && O[k] === searchElement) { |
if (k in O && O[k] === searchElement) { |
||||||
return k; |
return k |
||||||
} |
} |
||||||
k++; |
k++ |
||||||
|
} |
||||||
|
return -1 |
||||||
} |
} |
||||||
return -1; |
|
||||||
}; |
|
||||||
} |
} |
||||||
|
|
||||||
/* Array.isArray polyfill */ |
/* Array.isArray polyfill */ |
||||||
if (!Array.isArray) { |
if (!Array.isArray) { |
||||||
Array.isArray = function(arg) { |
Array.isArray = function (arg) { |
||||||
return Object.prototype.toString.call(arg) === '[object Array]'; |
return Object.prototype.toString.call(arg) === '[object Array]' |
||||||
}; |
} |
||||||
} |
} |
||||||
|
|
||||||
/* Object.create polyfill */ |
/* Object.create polyfill */ |
||||||
if (typeof Object.create != 'function') { |
if (typeof Object.create != 'function') { |
||||||
Object.create = (function() { |
Object.create = (function () { |
||||||
var Object = function() {}; |
var Object = function () {} |
||||||
return function (prototype) { |
return function (prototype) { |
||||||
if (arguments.length > 1) { |
if (arguments.length > 1) { |
||||||
throw Error('Second argument not supported'); |
throw Error('Second argument not supported') |
||||||
} |
} |
||||||
if (typeof prototype != 'object') { |
if (typeof prototype != 'object') { |
||||||
throw TypeError('Argument must be an object'); |
throw TypeError('Argument must be an object') |
||||||
} |
} |
||||||
Object.prototype = prototype; |
Object.prototype = prototype |
||||||
var result = new Object(); |
var result = { } |
||||||
Object.prototype = null; |
Object.prototype = null |
||||||
return result; |
return result |
||||||
}; |
} |
||||||
})(); |
})() |
||||||
} |
} |
||||||
|
|
||||||
/* Function.bind polyfill */ |
/* Function.bind polyfill */ |
||||||
if (!Function.prototype.bind) { |
if (!Function.prototype.bind) { |
||||||
Function.prototype.bind = function (oThis) { |
Function.prototype.bind = function (oThis) { |
||||||
if (typeof this !== "function") { |
if (typeof this !== 'function') { |
||||||
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); |
throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable') |
||||||
} |
} |
||||||
|
|
||||||
var aArgs = Array.prototype.slice.call(arguments, 1), |
var aArgs = Array.prototype.slice.call(arguments, 1) |
||||||
fToBind = this, |
var fToBind = this |
||||||
fNOP = function () {}, |
var fNOP = function () {} |
||||||
fBound = function () { |
var fBound = function () { |
||||||
return fToBind.apply(this instanceof fNOP && oThis |
return fToBind.apply(this instanceof fNOP && oThis |
||||||
? this |
? this |
||||||
: oThis, |
: oThis, |
||||||
aArgs.concat(Array.prototype.slice.call(arguments))); |
aArgs.concat(Array.prototype.slice.call(arguments))) |
||||||
}; |
} |
||||||
|
|
||||||
fNOP.prototype = this.prototype; |
fNOP.prototype = this.prototype |
||||||
fBound.prototype = new fNOP(); |
fBound.prototype = new fNOP() |
||||||
|
|
||||||
return fBound; |
return fBound |
||||||
}; |
} |
||||||
} |
} |
||||||
|
|
||||||
/* setZeroTimeout polyfill, from http://dbaron.org/log/20100309-faster-timeouts */ |
/* setZeroTimeout polyfill, from http://dbaron.org/log/20100309-faster-timeouts */ |
||||||
(function(global) { |
(function (global) { |
||||||
var timeouts = []; |
var timeouts = [] |
||||||
var messageName = 'zero-timeout-message'; |
var messageName = 'zero-timeout-message' |
||||||
|
|
||||||
function setZeroTimeout(fn) { |
function setZeroTimeout (fn) { |
||||||
timeouts.push(fn); |
timeouts.push(fn) |
||||||
global.postMessage(messageName, '*'); |
global.postMessage(messageName, '*') |
||||||
} |
} |
||||||
|
|
||||||
function handleMessage(event) { |
function handleMessage (event) { |
||||||
if (event.source == global && event.data == messageName) { |
if (event.source == global && event.data == messageName) { |
||||||
event.stopPropagation(); |
event.stopPropagation() |
||||||
if (timeouts.length > 0) { |
if (timeouts.length > 0) { |
||||||
var fn = timeouts.shift(); |
var fn = timeouts.shift() |
||||||
fn(); |
fn() |
||||||
} |
} |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
global.addEventListener('message', handleMessage, true); |
global.addEventListener('message', handleMessage, true) |
||||||
|
|
||||||
var originalSetTimeout = global.setTimeout; |
var originalSetTimeout = global.setTimeout |
||||||
global.setTimeout = function (callback, delay) { |
global.setTimeout = function (callback, delay) { |
||||||
if (!delay || delay <= 5) { |
if (!delay || delay <= 5) { |
||||||
return setZeroTimeout(callback); |
return setZeroTimeout(callback) |
||||||
|
} |
||||||
|
return originalSetTimeout(callback, delay) |
||||||
} |
} |
||||||
return originalSetTimeout(callback, delay); |
|
||||||
}; |
|
||||||
|
|
||||||
global.setZeroTimeout = setZeroTimeout; |
global.setZeroTimeout = setZeroTimeout |
||||||
})(this); |
})(this) |
||||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue