Como o Telegram é um serviço de nuvem infinito , eu o uso como um local de backup secundário. Eu gostaria de automatizar isso para que eu não precise me lembrar de fazer isso todos os meses (nos últimos dois anos eu perdi a cada dois backups mensais).
Mas não consigo encontrar uma maneira de automatizar qualquer cliente Telegram sem clicar em macros (gostaria que fosse executado silenciosamente em segundo plano):
./Telegram --help
não faz nada exceto abrir o programa.- Eu não fui bem sucedido em determinar onde a
argv
variável vai do método main , então eu não sei se há argumentos do console. - Os bots não podem acessar meu sistema de arquivos (e isso é bom).
Eu posso facilmente automatizar o empacotamento dos arquivos que eu quero em arquivos de 1.5GB usando 7z, mas não tenho idéia sobre como realmente enviá-los. Existe uma maneira de fazer isso sem clicar em macros?
Eu estou no Debian 9.5 e usando o cliente Linux oficial do telegram.org.
linux
backup
automation
upload
telegram-messenger
Fabian Röling
fonte
fonte
Respostas:
Eu encontrei uma solução! O cliente oficial provavelmente não permite (todos os argumentos de linha de comando conhecidos estão documentados aqui ), mas para Linux e Mac (e provavelmente também subsistema Linux no Windows), existe uma interface de linha de comando não oficial para o Telegram chamada "tg": https://github.com/vysheng/tg
Ele não menciona em sua descrição que ele também pode enviar arquivos, mas em um problema do Github alguém escreveu que existe a
send_file
função. Em geral, não é muito bem documentado, mas chamá-lo--help
e entrarhelp
dentro do programa dá muita informação, o resto pode ser descoberto brincando com os parâmetros e tentando coisas diferentes.Esta é a solução que encontrei dessa maneira:
Preparação
libssl1.0-dev
é uma solução para esse bug: Executesudo apt install libssl1.0-dev
entre./configure
emake
.bin/telegram-cli
para iniciar o programa interativo, digite o número de telefone, insira o código de login. Eu digitei meu número de telefone começando+49
e que funcionou, talvez seja necessário, eu não sei.É isso para a configuração,
quit
sai do programa.Upload de arquivos programaticamente
Agora os arquivos podem ser enviados dando um
send_file
comando ao programa--execute
, o que faz com que ele execute esse comando e saia automaticamente:<chat>
é o nome do chat.<filename>
é o caminho para o arquivo./path/to/tg
deveria ser óbvio.Exemplo de uso
Usarei algo assim para fazer o upload de um backup da minha pasta do Google Drive para o Telegram depois de criá-lo com o p7zip:
Isto carrega todos os arquivos cujos nomes começam com "
drive.zip.
" (.001, .002 etc.) na pasta~/drive_backup
para o chat do Telegram "Backup_chat".fonte
Experimentar
telegram-desktop -sendpath <fullpath>
fonte