PowerShell - Скачать файлы с канала Телеграмм

Ответить
Аватара пользователя
Uragan66

PowerShell - Скачать файлы с канала Телеграмм

Сообщение Uragan66 »

Добрый день всем!

Есть один канал в Телеграмм, каждый день выкладывают плейлисты, можно скачать по одному, но хотелось бы автоматизировать этот процесс.

Зарегистрировал своего бота, получил токен, id канала тоже есть. Но вот какую команду ввести, чтобы через API телеграмма подключиться к этому каналу и скачать файлы за текущий день, понять не могу. Пересмотрел много примеров ботов, но не могу найти как подключаться именно к каналу.

К примеру есть такой бот:



Код:

Код: Выделить всё

$ChatTimeout = 1
$UpdateId = 0
$token = "bot token"
$Path = "c:\"
##### Получаем сообщение как обычно
$URL = "https://api.telegram.org/bot$token/getUpdates?offset=$UpdateId&timeout=$ChatTimeout"
$Request = Invoke-WebRequest -Uri $URL -Method Get
$content = ConvertFrom-Json $Request.content
# если на выходе 2 и более результатов возьмем только последний
$str = $content.result | select -First 1
$str = ($str).message
##### Если в сообщение передается файл то будут дополнительные поля
# так например мы можем узнать что нам передали картинку
if ( $($str.document).mime_type -eq "image/jpeg" ) {  $isJPG = $true  }
##### Если есть file_name то значит там чтото лежит
# документ на скачивание есть?
if ( $($str.document).file_name -ne $null ) {
        ### разные данные например для логирования
        $DocFileName = ($str.document).file_name
        $DocFileID = ($str.document).file_id
        $DocFileSize = ($str.document).file_size
        # получаем сылку на файл исполняя команду бота /getFile
        $URL = "https://api.telegram.org/bot$token/getFile?file_id=$DocFileID"
        $RequestFile = Invoke-WebRequest -Uri $URL
        ### в $RequestFile если все верно содержится ссылка на скачивание
        foreach ( $JSON in $((ConvertFrom-Json $RequestFile.Content).result) ) {
            $FilePath = $json.file_path
            $URL = "https://api.telegram.org/file/bot$token/$FilePath"
            $FilePath = Split-Path -Leaf $FilePath
            $OutputFile = "$Path\$FilePath"
            # качаем без проверки
            Invoke-WebRequest -Uri $URL -OutFile $OutputFile
        }
}

Но в этом коде тоже нет примера подключения к каналу.

Подскажите, пожалуйста, можно ли скриптом powershell подключиться к определённому каналу телеграмм и скачать все файлы и сообщения за текущий день ?

Возможно ли вообще такое ?
Аватара пользователя
Busla

Re: PowerShell - Скачать файлы с канала Телеграмм

Сообщение Busla »

Uragan66,
Цитата Uragan66:



Есть один канал в Телеграмм, каждый день выкладывают плейлисты, можно скачать по одному, но хотелось бы автоматизировать этот процесс.
PowerShell - Скачать файлы с канала Телеграмм




Поставить в клиенте галку "скачивать мультимедию автоматически"
Аватара пользователя
Uragan66

Re: PowerShell - Скачать файлы с канала Телеграмм

Сообщение Uragan66 »

Busla, спасибо попробую. Но так то можно сохранять файлы только при постоянно включенном клиенте.

А бот такой не получится написать ?
Аватара пользователя
Uragan66

Re: PowerShell - Скачать файлы с канала Телеграмм

Сообщение Uragan66 »

Цитата Uragan66:



А бот такой не получится написать ?
PowerShell - Скачать файлы с канала Телеграмм




получится, но не через бот-API
Аватара пользователя
Uragan66

Re: PowerShell - Скачать файлы с канала Телеграмм

Сообщение Uragan66 »

Busla, да большой разницы то нет через какой API, лишь бы файлы скачивались.

Если можно, дайте, пожалуйста, пример такого бота, смотрел подобный на PHP, но там слишком всё запутано, да и на Windows он не будет работать, только на сервере с Linux.

Попробовал установить "скачивать мультимедию автоматически", в принципе удобно, но в папке телеграмма уже столько мусора, куда только не зайдёшь, мессенджер сразу файлы скачивает...
Ответить

Вернуться в «Скриптовые языки администрирования Windows»