vysheng/tg

GitHub: vysheng/tg

Telegram 的命令行界面客户端,让用户在终端中完成消息收发、群聊管理、多媒体传输和加密聊天等操作。

Stars: 7127 | Forks: 1750

## Telegram messenger CLI [![Build Status](https://travis-ci.org/vysheng/tg.png)](https://travis-ci.org/vysheng/tg) [Telegram](http://telegram.org)的命令行界面。使用 readline 接口。 ### API、协议文档 Telegram API 文档可在此处获取:http://core.telegram.org/api MTproto 协议文档可在此处获取:http://core.telegram.org/mtproto ### 升级到 1.0 版本 首先,二进制文件现在位于 ./bin 文件夹中,名为 telegram-cli。请注意不要使用旧的二进制文件。 其次,配置文件夹现在是 ${HOME}/.telegram-cli 第三,数据库与旧版本不兼容,因此您需要重新登录。 第四,在 peer_name 中,'#' 被替换为 '@'。(如果两个 peer 同名,在追加 '#%d' 时则不受此限制)。 ### 安装 克隆 GitHub 仓库 ``` git clone --recursive https://github.com/vysheng/tg.git && cd tg ``` ### Python 支持 Python 支持目前仅限于 Python 2.7 或 Python 3.1+。其他版本可能可用,但未经测试。 #### Linux 和 BSDs 安装库:readline、openssl 以及(如果您想使用配置)libconfig、liblua、python 和 libjansson。 如果您不想使用它们,请分别传入选项 --disable-libconfig、--disable-liblua、--disable-python 和 --disable-json。 在 Ubuntu/Debian 上使用: ``` sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make ``` 在 gentoo 上: ``` sudo emerge -av sys-libs/readline dev-libs/libconfig dev-libs/openssl dev-lang/lua dev-libs/libevent dev-libs/jansson dev-lang/python ``` 在 Fedora 上: ``` sudo dnf install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel libjansson-devel python-devel ``` 在 Archlinux 上: ``` yaourt -S telegram-cli-git ``` 在 FreeBSD 上: ``` pkg install libconfig libexecinfo lua52 python ``` 在 OpenBSD 上: ``` pkg_add libconfig libexecinfo lua python ``` 在 openSUSE 上: ``` sudo zypper in lua-devel libconfig-devel readline-devel libevent-devel libjansson-devel python-devel libopenssl-devel ``` 然后, ``` ./configure make ``` #### 在 Linux 上的其他安装方法 在 Gentoo 上:使用提供的 ebuild。 在 Arch 上:https://aur.archlinux.org/packages/telegram-cli-git #### Mac OS X 客户端依赖于 [readline 库](http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html) 和 [libconfig](http://www.hyperrealm.com/libconfig/),这些库默认未包含在 OS X 中。您必须手动安装这些库。 如果使用 [Homebrew](http://brew.sh/): ``` brew install libconfig readline lua python libevent jansson export CFLAGS="-I/usr/local/include -I/usr/local/Cellar/readline/6.3.8/include" export LDFLAGS="-L/usr/local/lib -L/usr/local/Cellar/readline/6.3.8/lib" ./configure && make ``` 感谢 [@jfontan](https://github.com/vysheng/tg/issues/3#issuecomment-28293731) 提供此解决方案。 如果使用 [MacPorts](https://www.macports.org): ``` sudo port install libconfig-hr sudo port install readline sudo port install lua51 sudo port install python34 sudo port install libevent export CFLAGS="-I/usr/local/include -I/opt/local/include -I/opt/local/include/lua-5.1" export LDFLAGS="-L/usr/local/lib -L/opt/local/lib -L/opt/local/lib/lua-5.1" ./configure && make ``` 安装以下 ports: * devel/libconfig * devel/libexecinfo * lang/lua52 然后构建: ``` env CC=clang CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib LUA=/usr/local/bin/lua52 LUA_INCLUDE=-I/usr/local/include/lua52 LUA_LIB=-llua-5.2 ./configure make ``` #### 其他 UNIX 如果您能在其他 UNIX 系统上成功运行它,请告诉我。 ### 联系方式 如果您想提问,可以写信到我的 telegram 或 github(或两者兼有)。要通过 telegram 联系我,您应该使用 import_card 方法,并传入参数 000653bf:0738ca5d:5521fbac:29246815:a27d0cda ### 用法 ``` bin/telegram-cli -k ``` 默认情况下,公钥存储在同一文件夹的 tg-server.pub 或 /etc/telegram-cli/server.pub 中。如果没有,请指定其所在位置: ``` bin/telegram-cli -k tg-server.pub ``` 客户端支持 TAB 补全和命令历史记录。 Peer 指的是联系人或对话的名称,可以通过 TAB 补全来访问。 对于用户联系人,peer 名称是 Name <下划线> Lastname,其中所有空格都替换为下划线。 对于聊天,它是其标题,所有空格都替换为下划线。 对于加密聊天,它是 <感叹号> <下划线> Name <下划线> Lastname,所有空格都替换为下划线。 如果两个或多个 peer 同名,则会在名称后追加 <井号>数字。(例如 A_B、A_B#1、A_B#2 等) ### 支持的命令 #### 消息 * **msg** \ Text - 向此 peer 发送消息 * **fwd** \ \ - 将消息转发给用户。您可以在启动客户端时加上 -N 来查看消息编号 * **chat_with_peer** \ - 开始与该 peer 的一对一聊天会话。使用 /exit 或 /quit 结束此模式。 * **add_contact** \ \ \ - 尝试通过手机号将联系人添加到联系人列表 * **rename_contact** \ \ \ - 尝试重命名联系人。如果您有另一台设备,将会发生冲突 * **mark_read** \ - 将与 peer 接收的所有消息标记为已读 * **delete_msg** \ - 删除消息(不过并没有彻底删除) * **restore_msg** \ - 恢复已删除的消息。对加密聊天不可用。仅在删除后的一小段时间内(我认为是一小时)可用 #### 多媒体 * **send_photo** \ \ - 向 peer 发送照片 * **send_video** \ \ - 向 peer 发送视频 * **send_text** \ \ - 以纯文本消息形式发送文本文件 * **load_photo**/load_video/load_video_thumb/load_audio/load_document/load_document_thumb \ - 加载照片/视频/音频/文档到下载目录 * **view_photo**/view_video/view_video_thumb/view_audio/view_document/view_document_thumb \ - 加载照片/视频到下载目录并启动系统默认查看器 * **fwd_media** \ - 在您的消息中发送多媒体。使用此选项可防止共享多媒体作者的信息(不过,虽然可以通过多媒体本身确定 user_id,但无法获取该用户的 access_hash) * **set_profile_photo** \ - 设置用户头像。照片应为正方形,否则服务器将裁剪中心位置最大的正方形区域 #### 群聊选项 * **chat_info** \ - 打印有关聊天的信息 * **chat_add_user** \ \ - 将用户添加到聊天中 * **chat_del_user** \ \ - 从聊天中移除用户 * **rename_chat** \ \ * **create_group_chat** \ \ \ \ ... - 与用户创建群聊,使用 chat_add_user 添加更多用户 * **chat_set_photo** \ \ - 设置群聊照片。限制与个人资料照片相同。 #### 搜索 * **search** \ pattern - 在与 peer 的消息中搜索 pattern * **global_search** pattern - 在所有消息中搜索 pattern #### 加密聊天 * **create_secret_chat** \ - 与此用户创建加密聊天 * **visualize_key** \ - 打印加密密钥的可视化图像。您应该将其与您的伙伴的密钥进行比较 * **set_ttl** \ \ - 为加密聊天设置 ttl。尽管客户端会忽略它,但另一端的客户端可以利用它 * **accept_secret_chat** \ - 手动接受加密聊天(仅在使用 -E 参数启动时有用) #### 统计和各种信息 * **user_info** \ - 打印有关用户的信息 * **history** \ [limit] - 打印历史记录(并将其标记为已读)。默认 limit = 40 * **dialog_list** - 打印有关您的对话的信息 * **contact_list** - 打印有关您的联系人列表中用户的信息 * **suggested_contacts** - 打印您有最多共同好友的联系人信息 * **stats** - 仅用于调试 * **show_license** - 打印 GPLv2 的内容 * **help** - 打印此帮助信息 * **get_self** - 获取我们自己的用户信息 #### 名片 * **export_card** - 打印您的“名片”,任何人随后都可以使用它来导入您的联系人 * **import_card** \ - 通过名片获取用户。之后您就可以给他写信了。 #### 其他 * **quit** - 退出 * **safe_quit** - 等待所有查询结束后退出
标签:MTProto, rizin, Telegram, 即时通讯, 安全测试工具, 客户端加密, 逆向工具