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.

117 lines
4.7 KiB

[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
[![Stories in Ready](https://badge.waffle.io/zhukov/webogram.png?label=ready&title=Ready)](https://waffle.io/zhukov/webogram)
## [Webogram](https://web.telegram.org) — Telegram Web App
11 years ago
Telegram offers great [apps for mobile communication](https://www.telegram.org). It is based on the [MTProto protocol](https://core.telegram.org/mtproto) and has an [Open API](https://core.telegram.org/api). I personally like Telegram for its speed and cloud-support (that makes a web app possible, unlike in the case of WA and others).
11 years ago
MTProto data can be carried over HTTP (SSL is also supported), so this project is my take at creating one.
11 years ago
That said, I'm using this app myself and I'd like to share its sources, so anyone can contribute to the development. Any help is welcome!
### Interface
Here are some screenshots of the interface:
![Sample screenshot 1](/app/img/screenshot1.png)
![Mobile screenshot 2](/app/img/screenshot2.png)
![Mobile screenshot 3](/app/img/screenshot3.png)
11 years ago
11 years ago
### Unsupported at the moment
* Secret chats
10 years ago
* Black list
* ...
11 years ago
### Maintained locations
| Description | URL | Type |
| ------------- |-------------| -----:|
| Online Web-version (hosted on Telegram servers) | https://web.telegram.org/ | hosted
| Online Web-version (hosted on GitHub pages) | https://zhukov.github.io/webogram | hosted
| Chrome Web Store | [https://chrome.google.com/webstore/detail/telegram/ clhhggbfdinjmjhajaheehoeibfljjno](https://chrome.google.com/webstore/detail/telegram/clhhggbfdinjmjhajaheehoeibfljjno) | packed
| Firefox & FirefoxOS Marketplace | https://marketplace.firefox.com/app/telegram | packed
**Hosted version**: the app is downloaded via HTTPS as a usual website. Will be available offline due to application cache.
**Packed version**: the app is downloaded at once in a package via HTTPS. The package is updated less frequently than the Web-version.
All of the apps above are submitted and maintained by [@zhukov](https://github.com/zhukov), so feel free to use them and report bugs [here](https://github.com/zhukov/webogram/issues). Please do not report bugs which are only reproducible in different locations.
11 years ago
## Technical details
The app is based on the AngularJS JavaScript framework, and written in pure JavaScript. jQuery is used for DOM manipulations, and Bootstrap as the CSS-framework.
11 years ago
### Running locally
The project repository is based on angularjs-seed and includes gulp tasks, so it's easy to launch the app locally on your desktop.
Install [node.js](http://nodejs.org/) and run the following commands in the project directory
```
sudo npm install -g gulp
npm install
```
This will install all the needed dependencies.
11 years ago
#### Running web-server
Just run `gulp watch` to start the web server and the livereload task.
Open http://localhost:8000/app/index.html in your browser.
11 years ago
#### Running as Chrome Packaged App
To run this application in Google Chrome as a packaged app, open this URL (in Chrome): `chrome://extensions/`, then tick "Developer mode" and press "Load unpacked extension...". Select the downloaded `app` folder and Webogram should appear in the list.
Run `gulp watch` to watch for file changes and automatically rebuild the app.
#### Running as Firefox OS App
To run this application in Firefox as a packaged app, open "Menu" -> "Developer" -> "WebIDE" (or hit `Shift + F8`). Choose "Open packaged app" from the Project menu and select the `app` folder.
11 years ago
Run `gulp watch` to watch for file changes and automatically rebuild the app.
#### Running in production
Run `gulp clean`, then `gulp publish` to build the minimized production version of the app. Copy `dist` folder contents to your web server. Don't forget to set `X-Frame-Options SAMEORIGIN` header ([docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options)).
11 years ago
### Third party libraries
Besides the frameworks mentioned above, other libraries are used for protocol and UI needs. Here is the short list:
11 years ago
* [JSBN](http://www-cs-students.stanford.edu/~tjw/jsbn/)
* [CryptoJS](https://code.google.com/p/crypto-js/)
* [zlib.js](https://github.com/imaya/zlib.js)
* [UI Bootstrap](http://angular-ui.github.io/bootstrap/)
* [jQuery Emojiarea](https://github.com/diy/jquery-emojiarea)
* [nanoScrollerJS](https://github.com/jamesflorentino/nanoScrollerJS)
* [gemoji](https://github.com/github/gemoji)
* [emoji-data](https://github.com/iamcal/emoji-data)
Many thanks to all these libraries' authors and contributors. A detailed list with descriptions and licenses is available [here](/app/vendor).
11 years ago
### Licensing
The source code is licensed under GPL v3. License is available [here](/LICENSE).
### [Contribute](CONTRIBUTING.md)