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> |
||||
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> |
||||
<!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> |
File diff suppressed because one or more lines are too long
@ -1,135 +1,136 @@
|
||||
// Console-polyfill. MIT license.
|
||||
// https://github.com/paulmillr/console-polyfill
|
||||
// Make it safe to do console.log() always.
|
||||
(function(global) { |
||||
'use strict'; |
||||
global.console = global.console || {}; |
||||
var con = global.console; |
||||
var prop, method; |
||||
var empty = {}; |
||||
var dummy = function() {}; |
||||
var properties = 'memory'.split(','); |
||||
;(function (global) { |
||||
'use strict' |
||||
global.console = global.console || {} |
||||
var con = global.console |
||||
var prop |
||||
var method |
||||
var empty = {} |
||||
var dummy = function () {} |
||||
var properties = 'memory'.split(',') |
||||
var methods = ('assert,clear,count,debug,dir,dirxml,error,exception,group,' + |
||||
'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' + |
||||
'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(','); |
||||
while (prop = properties.pop()) if (!con[prop]) con[prop] = empty; |
||||
while (method = methods.pop()) if (!con[method]) con[method] = dummy; |
||||
})(typeof window === 'undefined' ? this : window); |
||||
'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' + |
||||
'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(',') |
||||
while (prop = properties.pop()) if (!con[prop]) con[prop] = empty |
||||
while (method = methods.pop()) if (!con[method]) con[method] = dummy |
||||
})(typeof window === 'undefined' ? this : window) |
||||
// Using `this` for web workers while maintaining compatibility with browser
|
||||
// targeted script loaders such as Browserify or Webpack where the only way to
|
||||
// get to the global object is via `window`.
|
||||
|
||||
/* Array.indexOf polyfill */ |
||||
if (!Array.prototype.indexOf) { |
||||
Array.prototype.indexOf = function(searchElement, fromIndex) { |
||||
var k; |
||||
Array.prototype.indexOf = function (searchElement, fromIndex) { |
||||
var k |
||||
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 len = O.length >>> 0; |
||||
var O = Object(this) |
||||
var len = O.length >>> 0 |
||||
if (len === 0) { |
||||
return -1; |
||||
return -1 |
||||
} |
||||
var n = +fromIndex || 0; |
||||
var n = +fromIndex || 0 |
||||
|
||||
if (Math.abs(n) === Infinity) { |
||||
n = 0; |
||||
n = 0 |
||||
} |
||||
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) { |
||||
if (k in O && O[k] === searchElement) { |
||||
return k; |
||||
return k |
||||
} |
||||
k++; |
||||
k++ |
||||
} |
||||
return -1; |
||||
}; |
||||
return -1 |
||||
} |
||||
} |
||||
|
||||
/* Array.isArray polyfill */ |
||||
if (!Array.isArray) { |
||||
Array.isArray = function(arg) { |
||||
return Object.prototype.toString.call(arg) === '[object Array]'; |
||||
}; |
||||
Array.isArray = function (arg) { |
||||
return Object.prototype.toString.call(arg) === '[object Array]' |
||||
} |
||||
} |
||||
|
||||
/* Object.create polyfill */ |
||||
if (typeof Object.create != 'function') { |
||||
Object.create = (function() { |
||||
var Object = function() {}; |
||||
Object.create = (function () { |
||||
var Object = function () {} |
||||
return function (prototype) { |
||||
if (arguments.length > 1) { |
||||
throw Error('Second argument not supported'); |
||||
throw Error('Second argument not supported') |
||||
} |
||||
if (typeof prototype != 'object') { |
||||
throw TypeError('Argument must be an object'); |
||||
throw TypeError('Argument must be an object') |
||||
} |
||||
Object.prototype = prototype; |
||||
var result = new Object(); |
||||
Object.prototype = null; |
||||
return result; |
||||
}; |
||||
})(); |
||||
Object.prototype = prototype |
||||
var result = { } |
||||
Object.prototype = null |
||||
return result |
||||
} |
||||
})() |
||||
} |
||||
|
||||
/* Function.bind polyfill */ |
||||
if (!Function.prototype.bind) { |
||||
Function.prototype.bind = function (oThis) { |
||||
if (typeof this !== "function") { |
||||
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); |
||||
if (typeof this !== 'function') { |
||||
throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable') |
||||
} |
||||
|
||||
var aArgs = Array.prototype.slice.call(arguments, 1), |
||||
fToBind = this, |
||||
fNOP = function () {}, |
||||
fBound = function () { |
||||
return fToBind.apply(this instanceof fNOP && oThis |
||||
? this |
||||
: oThis, |
||||
aArgs.concat(Array.prototype.slice.call(arguments))); |
||||
}; |
||||
var aArgs = Array.prototype.slice.call(arguments, 1) |
||||
var fToBind = this |
||||
var fNOP = function () {} |
||||
var fBound = function () { |
||||
return fToBind.apply(this instanceof fNOP && oThis |
||||
? this |
||||
: oThis, |
||||
aArgs.concat(Array.prototype.slice.call(arguments))) |
||||
} |
||||
|
||||
fNOP.prototype = this.prototype; |
||||
fBound.prototype = new fNOP(); |
||||
fNOP.prototype = this.prototype |
||||
fBound.prototype = new fNOP() |
||||
|
||||
return fBound; |
||||
}; |
||||
return fBound |
||||
} |
||||
} |
||||
|
||||
/* setZeroTimeout polyfill, from http://dbaron.org/log/20100309-faster-timeouts */ |
||||
(function(global) { |
||||
var timeouts = []; |
||||
var messageName = 'zero-timeout-message'; |
||||
(function (global) { |
||||
var timeouts = [] |
||||
var messageName = 'zero-timeout-message' |
||||
|
||||
function setZeroTimeout(fn) { |
||||
timeouts.push(fn); |
||||
global.postMessage(messageName, '*'); |
||||
function setZeroTimeout (fn) { |
||||
timeouts.push(fn) |
||||
global.postMessage(messageName, '*') |
||||
} |
||||
|
||||
function handleMessage(event) { |
||||
function handleMessage (event) { |
||||
if (event.source == global && event.data == messageName) { |
||||
event.stopPropagation(); |
||||
event.stopPropagation() |
||||
if (timeouts.length > 0) { |
||||
var fn = timeouts.shift(); |
||||
fn(); |
||||
var fn = timeouts.shift() |
||||
fn() |
||||
} |
||||
} |
||||
} |
||||
|
||||
global.addEventListener('message', handleMessage, true); |
||||
global.addEventListener('message', handleMessage, true) |
||||
|
||||
var originalSetTimeout = global.setTimeout; |
||||
var originalSetTimeout = global.setTimeout |
||||
global.setTimeout = function (callback, delay) { |
||||
if (!delay || delay <= 5) { |
||||
return setZeroTimeout(callback); |
||||
return setZeroTimeout(callback) |
||||
} |
||||
return originalSetTimeout(callback, delay); |
||||
}; |
||||
return originalSetTimeout(callback, delay) |
||||
} |
||||
|
||||
global.setZeroTimeout = setZeroTimeout; |
||||
})(this); |
||||
global.setZeroTimeout = setZeroTimeout |
||||
})(this) |
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue