Prints files got from Telegram and IMAP on *nix systems
Install Rust (needed Rust v 1.31 and higher) first. Also you need to install
openssl-devel on RedHat based systems or libssl-dev on Debian based ones.
After that, run
$ cargo build --releaseThe executable is located at target/release/teleprint.
Build the documentation:
$ cargo docOpen target/doc/teleprint/index.html via any browser to read the documentation.
Install lp and setup printers manually.
Copy the executable where you want and run it:
$ ./teleprint --setupNow you need to provide Telegram Bot API's token, name of the printer (they will be shown), IMAP server address, port, username and password.
You also need to create the users.toml and fill it with data:
users = []
admin = 0
mail_tokens = []Where admin is your Telegram ID (it's integer one).
Just run it:
$ ./teleprintOr, if you don't want to use IMAP:
$ ./teleprint --noimapIf no errors appear, bots are started. Now you can use it.
Users can only use /auth command and send files if they are authorized. After they
send that command, you will see a message with his/her ID and you'll need to add the users manually.
But admin has a wide range of commands.
Use the commands below to manage users, tokens, files and printer:
/adduser <user_id>- add user to the access list/addtoken <token>- add token to the access list/gentoken <name>- generate token/deluser <user_id>- delete user from the access list/deltoken <token>- delete token from the access list/print <filename>- print the file/users- get users list/tokens- get tokens list/files- get files list/getfile <filename>- get file/delfile <filename>- delete file/lpstat- see lpstat output/cancel <job ID or name>- cancel the job/help- print the list of commands above
You or user just need to send you file in Telegram, and you will see that somebody wants to print something,
after that you can view that file by /getfile <filename>.
To print the file by email user should send token (only that) in the text and attach the file to the letter. After that almost everything goes like if it was from Telegram.