Telegram Web, preconfigured for usage in I2P.
http://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
4.8 KiB
130 lines
4.8 KiB
<!doctype html> |
|
<html lang="en" ng-app="myApp" manifest="app.manifest"><!-- ng-csp="" --> |
|
<head> |
|
<meta charset="utf-8"> |
|
<meta name="viewport" content="width=device-width, user-scalable=no"> |
|
<title>Webogram</title> |
|
|
|
<!-- build:css css/app.css --> |
|
<link rel="stylesheet" href="vendor/angular/angular-csp.css"/> |
|
<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.css"/> |
|
<link rel="stylesheet" href="vendor/jquery.nanoscroller/nanoscroller.css"/> |
|
<link rel="stylesheet" href="css/app.css"/> |
|
<!-- endbuild --> |
|
|
|
<link rel="icon" href="favicon.ico" type="image/x-icon" /> |
|
|
|
<meta property="og:title" content="Webogram"> |
|
<meta property="og:url" content="http://zhukov.github.io/webogram/"> |
|
<meta property="og:image" content="http://zhukov.github.io/webogram/img/logo_share.png"> |
|
<meta property="og:site_name" content="Webogram"> |
|
<meta property="og:description" content="Welcome to an experimental web-client of Telegram messenger. See https://github.com/zhukov/webogram for more info."> |
|
|
|
<script type="text/javascript"> |
|
(function () { |
|
|
|
// Prevent click-jacking |
|
try { |
|
if (self == top) { |
|
document.documentElement.style.display = 'block'; |
|
} else { |
|
top.location = self.location; |
|
} |
|
} catch (e) {console.error('CJ protection', e)}; |
|
|
|
window.safeConfirm = function (params, callback) { |
|
if (typeof params === 'string') { |
|
params = {message: params}; |
|
} |
|
var result = false |
|
try { |
|
result = confirm(params.message); |
|
} catch (e) { |
|
result = true; |
|
} |
|
setTimeout(function () {callback(result)}, 10); |
|
}; |
|
|
|
if (!window.applicationCache || !window.addEventListener) { |
|
return; |
|
} |
|
|
|
var appCache = window.applicationCache, |
|
declined = false, |
|
updateTimeout = false, |
|
scheduleUpdate = function (delay) { |
|
clearTimeout(updateTimeout); |
|
updateTimeout = setTimeout(function () { |
|
try { |
|
appCache.update(); |
|
} catch (ex) { |
|
console.log('appCache.update: ' + ex); |
|
} |
|
}, delay || 300000); |
|
}, |
|
attach = function () { |
|
appCache.addEventListener('updateready', function(e) { |
|
if (appCache.status == appCache.UPDATEREADY) { |
|
if (!declined) { |
|
safeConfirm({type: 'WEBOGRAM_UPDATED_RELOAD', message: 'A new version of Webogram is available. Load it?'}, function (result) { |
|
if (result) { |
|
window.location.reload(); |
|
} else { |
|
declined = true; |
|
} |
|
}); |
|
scheduleUpdate(); |
|
} |
|
} |
|
}, false); |
|
appCache.addEventListener('noupdate', function () {scheduleUpdate()}, false); |
|
appCache.addEventListener('error', function () {scheduleUpdate()}, false); |
|
}; |
|
|
|
scheduleUpdate(3000); |
|
window.addEventListener('load', attach); |
|
})(); |
|
</script> |
|
|
|
</head> |
|
<body> |
|
|
|
<div ng-view></div> |
|
|
|
<!-- build:js js/app.js --> |
|
<script type="text/javascript" src="vendor/console-polyfill/console-polyfill.js"></script> |
|
<script type="text/javascript" src="vendor/jquery/jquery.min.js"></script> |
|
<script type="text/javascript" src="vendor/jquery.nanoscroller/nanoscroller.js"></script> |
|
<script type="text/javascript" src="vendor/jquery.emojiarea/jquery.emojiarea.js"></script> |
|
|
|
<script type="text/javascript" src="vendor/angular/angular.js"></script> |
|
<script type="text/javascript" src="vendor/angular/angular-route.js"></script> |
|
<script type="text/javascript" src="vendor/angular/angular-animate.js"></script> |
|
<script type="text/javascript" src="vendor/angular/angular-sanitize.js"></script> |
|
<script type="text/javascript" src="vendor/ui-bootstrap/ui-bootstrap-custom-tpls-0.10.0.js"></script> |
|
<script type="text/javascript" src="vendor/bindonce/bindonce.js"></script> |
|
|
|
<script type="text/javascript" src="vendor/jsbn/jsbn_combined.js"></script> |
|
<script type="text/javascript" src="vendor/cryptoJS/crypto.js"></script> |
|
<script type="text/javascript" src="vendor/zlib/gunzip.min.js"></script> |
|
<script type="text/javascript" src="vendor/closure/long.js"></script> |
|
|
|
|
|
<script type="text/javascript" src="js/lib/config.js"></script> |
|
<script type="text/javascript" src="js/lib/mtproto.js"></script> |
|
<script type="text/javascript" src="js/util.js"></script> |
|
|
|
<script type="text/javascript" src="js/app.js"></script> |
|
<script type="text/javascript" src="js/services.js"></script> |
|
<script type="text/javascript" src="js/controllers.js"></script> |
|
<script type="text/javascript" src="js/filters.js"></script> |
|
|
|
<!--PRODUCTION_ONLY_BEGIN |
|
<script type="text/javascript" src="js/templates.js"></script> |
|
PRODUCTION_ONLY_END--> |
|
|
|
<script type="text/javascript" src="js/directives.js"></script> |
|
<!-- endbuild --> |
|
|
|
</body> |
|
</html>
|
|
|