Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Скачать файлы с канала Телеграмм (http://forum.oszone.net/showthread.php?t=342052)

Uragan66 03-09-2019 16:05 2886490

Скачать файлы с канала Телеграмм
 
Добрый день всем!
Есть один канал в Телеграмм, каждый день выкладывают плейлисты, можно скачать по одному, но хотелось бы автоматизировать этот процесс.
Зарегистрировал своего бота, получил токен, 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 03-09-2019 16:27 2886492

Uragan66,
Цитата:

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

Поставить в клиенте галку "скачивать мультимедию автоматически"

Uragan66 03-09-2019 16:46 2886497

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

Busla 03-09-2019 22:05 2886539

Цитата:

Цитата Uragan66
А бот такой не получится написать ? »

получится, но не через бот-API

Uragan66 03-09-2019 23:20 2886551

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


Время: 05:46.

Время: 05:46.
© OSzone.net 2001-