Terminal client for telegram
Project description
tg
Terminal telegram client.
(!) usable but still in development
Features
- view mediafiles: photo, video, voice/video notes, documents
- ability to send pictures, documents, audio, video
- reply, edit, forward, delete, send messages
- stickers
- notifications
- record and send voice msgs
- auto download files
- toggle chats: pin/unpin, mark as read/unread, mute/unmute
- Message history
TODO:
- secret chats
- list contacts
- search
- show users and their status in current chat
- create new chat
- bots (bot keyboard)
Requirements
-
For macOS:
brew install tdlib
-
python3.8 -
pip3 install python-telegram -
config file at
~/.config/tg/conf.pyPHONE = "[your phone number]" ENC_KEY = "[telegram db encryption key]"
-
terminal-notifieror other program for notifications -
ffmpegto record voice msgs and upload videos correctly
Usage
From pip:
pip3 install tg
From sources:
git clone git@github.com:paul-nameless/tg.git
cd tg
PYTHONPATH=. python3 tg/main.py
Configuration
Config file should be stored at ~/.config/tg/conf.py. This is simple python file.
Simple config:
PHONE = "[your phone number]"
ENC_KEY = "[telegram db encryption key]"
Advanced configuration:
import os
# You can write anything you want here, file will be executed at start time
# You can keep you sensitive information in password managers or gpg
# encrypted files for example
def get_pass(key):
# retrieves key from password store
return os.popen("pass show {} | head -n 1".format(key)).read().strip()
PHONE = get_pass("i/telegram-phone")
ENC_KEY = get_pass("i/telegram-enc-key")
# log level for debugging
LOG_LEVEL = "DEBUG"
# path where logs will be stored (all.log and error.log)
LOG_PATH = "/var/log/tg/"
# If you have problems with tdlib shipped with the client, you can install and
# use your own
TDLIB_PATH = "/usr/local/Cellar/tdlib/1.6.0/lib/libtdjson.dylib"
# you can use any other notification cmd, it is simple python file which
# can format title, msg, subtitle and icon_path paramters
# In these exapmle, kitty terminal is used and when notification is pressed
# it will focus on the tab of running tg
NOTIFY_CMD = '/usr/local/bin/terminal-notifier -title "{title}" -subtitle "{subtitle}" -message "{msg}" -appIcon "{icon_path}" -sound default -execute \'/Applications/kitty.app/Contents/MacOS/kitty @ --to unix:/tmp/kitty focus-tab --no-response -m title:tg\''
# You can use your own voice recording cmd but it's better to use default one.
# The voice note must be encoded with the Opus codec, and stored inside an OGG
# container. Voice notes can have only a single audio channel.
VOICE_RECORD_CMD = "ffmpeg -f avfoundation -i ':0' -c:a libopus -b:a 32k '{file_path}'"
Keybindings
vi like keybindings are used in the project. Can be used commands like 4j - 4 lines down.
For navigation arrow keys also can be used.
Chats:
j,k: move up/downJ,K: move 10 chats up/downl: open msgs of the chatm: mute/unmute current chatp: pin/unpin current chatu: mark read/unreadr: read current chat
Msgs:
j,k: move up/downJ,K: move 10 msgs up/downG: move to the last msg (at the bottom)l: if video, pics or audio then open app specified in mailcap file, for example:
if text, open in less (to view multiline msgs)# Images image/png; icat %s && read audio/*; mpv %se: edit current msg<space>: space can be used to select multiple msgs for deletion or forwardingy: yank (copy) selected msgs with to internal bufferp: forward (paste) yanked (copied) msgs to current chatdd: delete msg for everybody (multiple messages will be deleted if selected)i or a: insert mode, type new messageI or A: open vim to write long msg and sendv: record and send voice messager,R: reply to a current msgsv: send videosa: send audiosp: send picturesd: send documentc: copy current msg text or path to file if this is document, photo or video]: next chat[: prev chat
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tg-0.0.3.tar.gz.
File metadata
- Download URL: tg-0.0.3.tar.gz
- Upload date:
- Size: 61.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.23.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee4a4067f5f05ac4d1a1e0c6824739a7b6009396534bed25cce6a5d82e68e7a5
|
|
| MD5 |
1d3a19fa6d6af4050645240a1229b548
|
|
| BLAKE2b-256 |
6fe520fde32c456ed2dfceff311ae304d7273ee5b505ff2336b947c36fcbafab
|
File details
Details for the file tg-0.0.3-py3-none-any.whl.
File metadata
- Download URL: tg-0.0.3-py3-none-any.whl
- Upload date:
- Size: 61.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.23.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee0d2e245bf3373a8b6000a0df85ef3afe27a55106480b443f8f581152a52fb6
|
|
| MD5 |
f668d1ce08d5bd89461d99d25558ed9a
|
|
| BLAKE2b-256 |
63898cda4d405f6969103a6d68e749864322693f016e14fcd792608093877758
|