Go to file
Dmitrij D. Czarkoff 0783d30362 Update ax_lua.m4
Updated ax_lua.m4 to current version from GNU Autoconf Archive's git
repository with additional patch to support OpenBSD.[1] Regenerated
``configure'' script. DOcumented changes.

---
[1] https://savannah.gnu.org/patch/index.php?8355
2014-02-25 16:45:50 +01:00
debian initial commit 2014-02-03 21:31:23 +00:00
gentoo/telegram-cli To complete pack: gentoo ebuild 2014-02-06 18:22:21 +04:00
rpm Updated rpm with new spec 2014-02-05 16:14:07 +01:00
.gitignore Stop tracking generated files 2014-02-25 16:33:29 +01:00
.travis.yml Fixed travis.yml 2014-01-12 04:56:36 +04:00
ax_lua.m4 Update ax_lua.m4 2014-02-25 16:45:50 +01:00
binlog.c Use tree for peer_name search 2014-01-31 20:03:40 +04:00
binlog.h Added chat_with_peer command 2013-12-06 21:14:41 +04:00
binlog.tl Added files for binlog 2013-11-13 04:11:25 +04:00
config.h.in Added --with-progname="progname" option to configure. 2014-02-06 18:12:43 +04:00
config.sample fixed binlog problems. Set lock on binlog 2013-11-30 03:15:10 +04:00
configure Update ax_lua.m4 2014-02-25 16:45:50 +01:00
configure.ac Added --with-progname="progname" option to configure. 2014-02-06 18:12:43 +04:00
constants.h Support for layer 11 2013-12-24 04:57:01 +04:00
gen_constants_h.awk Added full support for layer 10 2013-11-15 14:37:14 +04:00
include.h Added GPL-headers to source files 2013-10-23 18:26:17 +04:00
interface.c catch NULL input in interpreter_chat_mode 2014-02-23 02:06:57 +01:00
interface.h Added cygwin fixes 2014-01-30 15:01:16 +04:00
LICENSE Added GPL license text 2013-10-23 18:53:22 +04:00
LICENSE.h Added some fixes required by GPL 2013-10-25 13:28:29 +04:00
loop.c Fixed 'call' method from jerbob92 2014-02-24 15:27:30 +04:00
loop.h Partial support for encrypted chats. 2013-11-04 21:34:27 +04:00
lua-tg.c lua: added postpone message 2014-02-06 22:09:43 +04:00
lua-tg.h Added partial lua support 2014-01-12 04:43:29 +04:00
main.c replace ENABLE_LIBCONFIG by HAVE_LIBCONFIG (use macro AC_CHECK_LIBdefault ACTION-IF-FOUND behavior) 2014-02-05 15:07:58 +04:00
Makefile.in Removed "-Wno-deprecated" from COMPILE_FLAGS 2014-02-25 16:29:25 +01:00
mtproto-client.c Added support for OpenBSD 2014-02-25 16:42:37 +01:00
mtproto-client.h do_rand () renamed to secure_random () 2013-12-25 04:44:36 +04:00
mtproto-common.c Merge branch 'master' of github.com:vysheng/tg 2014-01-27 19:10:41 +04:00
mtproto-common.h improve portability by removing rdtsc calls 2014-01-15 19:29:26 +04:00
net.c Added cygwin fixes 2014-01-30 15:01:16 +04:00
net.h maybe fixed conn restart 2014-01-27 21:23:58 +04:00
no-preview.h Forgot GPL header. 2013-11-05 03:55:41 +04:00
queries.c Fixed 'call' method from jerbob92 2014-02-24 15:27:30 +04:00
queries.h Fully working phone call support, might need some tweaks and checks 2014-02-24 07:59:20 +01:00
README.es Complete translation and small typing errors corrected 2014-02-09 13:06:18 +01:00
README.md Update ax_lua.m4 2014-02-25 16:45:50 +01:00
structures.c Fixed registration. Fixed possible SIGSEGV in create_print_name 2014-02-07 19:40:39 +04:00
structures.h Use tree for peer_name search 2014-01-31 20:03:40 +04:00
telegram-cli.spec Rename spec and add server key 2014-02-04 18:28:11 +01:00
telegram.h Added /etc/telegram/server.pub as default server public key place 2014-02-04 20:35:16 +04:00
test.lua Added sample lua script 2014-01-12 04:43:56 +04:00
tg.pub Commit parse of many structures (message, chat, photo, etc) 2013-10-14 21:26:25 +04:00
tools.c Added mark_read to lua functions 2014-01-28 16:40:35 +04:00
tools.h Added mark_read to lua functions 2014-01-28 16:40:35 +04:00
tree.h Added partial lua support 2014-01-12 04:43:29 +04:00

Telegram messenger CLI Build Status

Command-line interface for Telegram. Uses readline interface.

API, Protocol documentation

Documentation for Telegram API is available here: http://core.telegram.org/api

Documentation for MTproto protocol is available here: http://core.telegram.org/mtproto

Installation

Clone GitHub Repository

$ git clone https://github.com/vysheng/tg.git && cd tg

or download and extract zip

$ wget https://github.com/vysheng/tg/archive/master.zip -O tg-master.zip
$ unzip tg-master.zip && cd tg-master

Linux

Install libs: readline openssl and (if you want to use config) libconfig and liblua. If you do not want to use them pass options --disable-libconfig and --disable-liblua respectively On ubuntu use:

$ sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev

On gentoo:

$ sudo emerge -av sys-libs/readline dev-libs/libconfig dev-libs/openssl dev-lang/lua

On Fedora:

$ sudo yum install lua-devel openssl-devel libconfig-devel readline-devel

Default Makefile uses liblua5.2 from ubuntu. If you use different version of liblua or linux you have to run ./configure script or you will get some strange compilation error.

Then

$ ./configure
$ make

Mac OS X

The client depends on readline library and libconfig, which are not included in OS X by default. You have to install these libraries manually, e.g. using Homebrew.

$ brew install libconfig
$ brew install readline
$ brew install lua
$ export CFLAGS="-I/usr/local/include -I/usr/local/Cellar/readline/6.2.4/include"
$ export LDFLAGS="-L/usr/local/lib -L/usr/local/Cellar/readline/6.2.4/lib"
$ ./configure && make

Thanks to @jfontan for this solution.

FreeBSD

Install these ports:

  • devel/libconfig
  • devel/libexecinfo
  • lang/lua52

Then build:

$ env CC=clang CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure
$ make

OpenBSD

Install these packages (or ports):

  • libconfig (devel/libconfig)
  • libexecinfo (devel/libexecinfo)
  • lua >= 5.2 (lang/lua/5.2)

Then build:

$ CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ./configure
$ make

Other UNIX

If you manage to launch it on other UNIX, please let me know.

Usage

./telegram -k <public-server-key>

By default public key is stored in the same folder named tg.pub or in /etc/telegram/server.pub, if it's not, specify where to find it:

./telegram -k tg.pub

Client support TAB completion and command history.

Peer refers to the name of the contact or dialog and can be accessed by TAB completion. For user contacts peer name is Name Lastname with all spaces changed to underscores. For chats it is it's title with all spaces changed to underscores For encrypted chats it is <Exсlamation mark> Name Lastname with all spaces changed to underscores.

If two or more peers have same name, number is appended to the name. (for example A_B, A_B#1, A_B#2 and so on)

Supported commands

Messaging

  • msg <peer> Text - sends message to this peer
  • fwd <user> <msg-seqno> - forward message to user. You can see message numbers starting client with -N
  • chat_with_peer <peer> starts one on one chat session with this peer. /exit or /quit to end this mode.
  • add_contact <phone-number> <first-name> <last-name> - tries to add contact to contact-list by phone
  • rename_contact <user> <first-name> <last-name> - tries to rename contact. If you have another device it will be a fight
  • mark_read <peer> - mark read all received messages with peer

Multimedia

  • send_photo <peer> <photo-file-name> - sends photo to peer
  • send_video <peer> <video-file-name> - sends video to peer
  • send_text <peer> <text-file-name> - sends text file as plain messages
  • load_photo/load_video/load_video_thumb <msg-seqno> - loads photo/video to download dir
  • view_photo/view_video/view_video_thumb <msg-seqno> - loads photo/video to download dir and starts system default viewer

Group chat options

  • chat_info <chat> - prints info about chat
  • chat_add_user <chat> <user> - add user to chat
  • chat_del_user <chat> <user> - remove user from chat
  • rename_chat <chat> <new-name>
  • search <peer> pattern - searches pattern in messages with peer
  • global_search pattern - searches pattern in all messages

Secret chat

  • create_secret_chat <user> - creates secret chat with this user
  • visualize_key <secret_chat> - prints visualization of encryption key. You should compare it to your partner's one

Stats and various info

  • user_info <user> - prints info about user
  • history <peer> [limit] - prints history (and marks it as read). Default limit = 40
  • dialog_list - prints info about your dialogs
  • contact_list - prints info about users in your contact list
  • suggested_contacts - print info about contacts, you have max common friends
  • stats - just for debugging
  • show_license - prints contents of GPLv2
  • help - prints this help