A Terminal in Telegram
Project description
telminal
A Terminal in Telegram!
There is a lovely messenger in the world that has so many features that we can manage our Linux server with those features.
What is this?
Telminal is a Python package that helps you have your own server assistant Telegram bot. You can use Telminal as a terminal or to download & upload files.
Telminal features
- [x] HTML and image output
- [x] Process state info
- [x] Interactive command support
- [x] Download from server
- [x] Upload to server
- [x] Multi user
- [x] Tasks
Getting Started
Prerequisites
You need telegram developer API and a bot token
API ID API hash
Bot token
Very fast and easy you can have those, just follow this two official links.
Installation
pip install telminal
Setup
Run telminal
command after installation finished. Telminal needs those Telegram tokens for first run.
Also you can create a config.json
file inside the package directory in this format:
{ "api_id": 1234, "api_hash": "abcs", "token": "efgh", "admins": [8888, 9999] }
⚠️ First admin can manage other admins, so order of admins list matter.
In this sample config 8888 must be your Telegram user ID.
Interactive Mode
You can activate this mode for last running process by sending /interactive_mode
or by clicking on Interactive mode
button of each process.
In interactive mode you are talking to the process and each message means an input for that process.
Also a two characters message starts with ^
has own meaning and behave like a control command so ^c
means CTRL + C
.
To return to normal mode and creating a new process just use /normal_mode
or Exit interactive mode
button.
Optional image output
Image creation for process result is optimized and will be okay on a server with minimum resources.
However, creating an image on the server is an expensive process. so if you want to run multiple commands at once or have a process that does not require image output, I strongly recommend using the text version by sending \image_off
command.
Download file from server
You can save any file (up to 2GB) of your server on telegram.
There are two ways to do this :
- Inline query
- !get command
Inline query just works for current directory and runs a ls -la | grep <your_query>
in background.
With !get
command you can specify path of a file manually.
Also you have a nice progress bar when you are downloading or uploading a heavy file.😎
Upload file to server
Upload a file on your server just by sending to Telminal chat.
that file can be in telegram or on your hard disk.
Multi admin in group
Fortunately, all features can be used in a group too. by default, Telminal only responds to your commands.
!trust
and !untrust
are two commands that manage a user permission.
just reply to one of the user's messages with these commands.
Tasks
At this moment there is only one type of task.
A watcher
task downloads a file periodically. write your first watcher in the following format:
!watch <number><s,m,h> <file_path>
Some real examples :
1️⃣ get telminal.log
every 50 seconds
👉 !watch 50s telminal.log
2️⃣ get temp.png
every 5 minutes
👉 !watch 5m home/temp.png
3️⃣ get sql.dump
every 24 hours
👉 !watch 24h /backups/sql.dump
Finally set Telminal commands in Botfather using this text.
image_off - Just text output image_on - Text and image output tasks - List of active tasks interacive_mode - Interact with last process normal_mode - Process creation mode
Thanks
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
File details
Details for the file telminal-1.0.0.tar.gz
.
File metadata
- Download URL: telminal-1.0.0.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34c0bb1219df1e75ce68f28064738c4360c24b18c54d43e9d658122e8d92b79b |
|
MD5 | 28cf251d6125bff00dca6179aeccbf21 |
|
BLAKE2b-256 | 3f5b2f297895029ca03aae0a19e7baf82ef027c77c8c112b24c46a6a24f1b7b6 |