Отправить через меню в Telegram
Попался на глаза скрипт на Python, который позволяет добавить функцию отправки в Telegram через меню в Linux. Статья про отправку файлов уже была, поэтому добавим механизм и будем отправлять файлы.
Для реализации необходимо будет создать (лично в моем примере) два файла, один будет bat, а второй как раз скрипт на PowerShell. Файл sender.bat мы расположим в папке:
1 |
%AppData%\Microsoft\Windows\SendTo |
Содержимое файла sender.bat:
1 2 3 4 5 6 7 8 9 10 11 |
@echo off set myvar= for %%x in (%*) do call :concat %%x echo %myvar% "C:\Program Files\PowerShell\7\pwsh.exe" -Command C:\temp\SenderMenuTo\CopyCommand.ps1 %myvar% goto :eof :concat set myvar=%myvar% '%1' goto :eof |
Содержимое файла CopyCommand.ps1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$FileObject = $args | %{"$_"} $Token = "483729506:AAG3xy_pFhYCClWhteddm6yG9qKNEHWvaW8" $Chat_ID = "234239480" $Uri = "https://api.telegram.org/bot$Token/sendDocument" $DocSend = get-item $FileObject $CaptionFile = Split-Path $FileObject -leaf $Form = @{ chat_id = $Chat_ID document = $DocSend caption = $CaptionFile } $invokeRestMethodSplat = @{ Uri = $Uri ErrorAction = 'Stop' Form = $Form Method = 'Post' } Invoke-RestMethod @invokeRestMethodSplat |
Файл отправляет боту в Telegram.
4 комментария
petrov.ivan
Забыли указать, что группа файлов не отправляется! Только по одному работает.
petrov.ivan
И почему ломается кодировка у имен файлов?
kanitelka
Интересный вопрос. Честно говоря не задавался таким вопрос, так как не такой проблемы.
kanitelka
Добавил в код заголовок. Теперь у отправленного файла будет заголовок из имени. Возможно решит Вашу проблему.