Скрипты для скачивания файлов

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

cojoc
Ссылка с редиректом. Посмотрел в закромах, есть консольная спецпрога cclive, но как-то она криво работает.
Я бы взял IP-TV Player, там нормальный планировщик.
wget по PID-у убивать можно, но присутствие консоли мне не нравится.
Поток можно получать скриптом и без сторонних утилит, но вот спецфункции для прерывания выявить пока не удалось.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
cojoc
Сообщения: 144
Зарегистрирован: Пт сен 04, 2009 16:53

Сообщение cojoc »

Flasher
Про IP-TV Player знаю (не пробовал его использовать), он основан на vlc, который тоже записывает, правда без планировщика, но у меня не сильное железо и при показе картинки происходят сбои - поэтому они мне не подходят для записи.
Во общем, я пока остановился на планировщике виндовс и во-вторых на кнопке запуска записи потока и закрытия вручную wget.
Спасибо за помощь ещё раз :)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

cojoc писал(а): но у меня не сильное железо и при показе картинки происходят сбои - поэтому они мне не подходят для записи.
Вообще-то в IP-TV Player есть запись в фоне (помимо прочих).
cojoc писал(а):Во общем, я пока остановился на планировщике виндовс и во-вторых на кнопке запуска записи потока и закрытия вручную wget.
И какой смысл самому чего-то кликать, если планировщик сам должен выполнять эти функции? :?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
cojoc
Сообщения: 144
Зарегистрирован: Пт сен 04, 2009 16:53

Сообщение cojoc »

Flasher
Кнопочка получилась только для экстренной и незапланированной записи, поэтому в ручную, а планировщик windows для отложенной.
Спасибо за уточнение об IP-TV Player.
:)

Добавлено спустя 2 минуты:

Да планировщик сам отключает wget когда указано.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

cojoc
Сделал с wget. Попробуй.
Могут быть проблемы с битыми или неподдерживаемыми ссылками.

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

'•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
' Скачивание онлайн-потока с помощью wget

' Параметры:  <ссылка> "<путь к получателю и название программы>" <минут на завершение>
' Примеры: http://91.192.168.20:8025 "D:\TV\СТС\Test" 0,2
'          http://91.192.168.20:8030 "%PAnimal_Planet" 40

' Автор: Flasher ©
'•••••••••••••••••••••••••••••••••••• Путь к wget ••••••••••••••••••••••••••••••••••••••••••
WGet = "%COMMANDER_PATH%\Utils\wget\wget.exe"
'•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
With WScript.Arguments
If .Count <> 3 Then MsgBox "Должно быть указано три параметра!", 48 : WScript.Quit : End If
URL = .Item(0) : File = .Item(1) : Min = .Item(2) : End With
DIM WSH : Set WSH = CreateObject("WScript.Shell") : If Min = 1 Then M = "у"
Title = Space(16) & "Скачивание онлайн аудио/видео" : If (Min > 1 And Min < 5) Then M = "ы"
WGet = WSH.ExpandEnvironmentStrings(WGet) : File = File & " " & Replace(Now, ":", "`") & ".ts"
Cmd = """" & WGet & """" & URL & " -c -nd -O """ & File & """"
WSH.Run Cmd, 0 : Cmd = """" & Replace(Wget, "\", "\\") & """ " &_
URL & " -c -nd -O """ & Replace(File, "\", "\\") & """"
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set WMC = WMI.ExecQuery("SELECT Handle FROM Win32_Process WHERE CommandLine='" & Cmd & "'")
If WMC.Count Then
  If IsNumeric(Min) Then WSH.Popup "Скачивание завершится через " & Min & " минут" & M &_
  "!", 3, Title, 64 Else MsgBox "Третий параметр указан неверно!", 48
  WScript.Sleep Min*60000 : On Error Resume Next
  For Each P in WMC : P.Terminate : Next : WScript.Sleep 50
  With CreateObject("Scripting.FileSystemObject")
    Set F = .GetFile(File) : If F.Size = 0 Then
      F.Delete : WSH.Popup "Невозможно скачать поток по указанной ссылке!", 2, Title, 48
    Else
      Msg = MsgBox("Скачивание завершено!" & vbNewLine & vbNewLine & _
      "Желаете перейти к скачанному файлу?", 4131, Title)
      If Msg = 6 Then WSH.Exec "%COMMANDER_EXE% /O /T /S /L=""" & File & "\:"""
    End If : Set F = Nothing
  End With
Else MsgBox "Синтаксическая ошибка в указанных параметрах!", 48, Title
End If : Set WSH = Nothing : Set WMI = Nothing : Set WSC = Nothing : WScript.Quit
Последний раз редактировалось Flasher Пн фев 04, 2013 00:19, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
cojoc
Сообщения: 144
Зарегистрирован: Пт сен 04, 2009 16:53

Сообщение cojoc »

Flasher
Скачивает прекрасно!
Но при завершении выдаёт "Невозможно скачать поток по указанной ссылке!" хотя скачал и сохранил.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

cojoc
Одно другому противоречит. Если файл действительно что-то содержит, то это сообщение не может появится, оно появляется только в случае отсутствия информации, причём перед этим удаляется пустой файл.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
cojoc
Сообщения: 144
Зарегистрирован: Пт сен 04, 2009 16:53

Сообщение cojoc »

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Scripts\Скачивание онлайн-потока с помощью wget.vbs
http://xxxxx.yy/animalplanet "D:\TV\Test" 1
%COMMANDER_PATH%\icon\tv\Animal Planet.ico
Записать Animal Planet Скрипт


-1
Выдало:
"Скачивание завершится через 1 минут"
После минуты, выдало:
"Невозможно скачать поток по указанной ссылке!" но
Сохранилось:
d:\TV\Test 03.02.2013 20`47`32.ts
примерно 20mb
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Интересно..
А если

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

    Set F = .GetFile(File) : If F.Size = 0 Then
заменить на

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

    Set F = .GetFile(File)
    If F.Size = 0 Then
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
cojoc
Сообщения: 144
Зарегистрирован: Пт сен 04, 2009 16:53

Сообщение cojoc »

То же самое.

Добавлено спустя 5 минут:

Сейчас у меня Windows 8 (может это влияет)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ничего тогда не пойму..
cojoc писал(а):http://xxxxx.yy/animalplanet
Мне нужен реальный адрес для теста.
cojoc писал(а):Сейчас у меня Windows 8 (может это влияет)
Очень может быть.

All, если кто с восьмёркой может подтвердить - напишите.
Последний раз редактировалось Flasher Вс фев 03, 2013 23:10, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
cojoc
Сообщения: 144
Зарегистрирован: Пт сен 04, 2009 16:53

Сообщение cojoc »

Ещё до этого я запускал кнопку, но скрипт был в UTF-8 и мне выдавало карякули - может те процессы влияют (хотя вроде позакрывал).

Добавлено спустя 3 минуты:

Мой адрес не будет у Вас работать - он только у клиентов моего местного провайдера.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

cojoc писал(а):но скрипт был в UTF-8
Нельзя.
cojoc писал(а):может те процессы влияют (хотя вроде позакрывал)
Не должны. Хотя при UTF-8 вообще скрипт по идее не должен отрабатывать. Может, в восьмёрке изменили.

Добавлено спустя 5 минут:

А что покажет, если под Set F = .GetFile(File) вставить MsgBox F.Size ?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
cojoc
Сообщения: 144
Зарегистрирован: Пт сен 04, 2009 16:53

Сообщение cojoc »

Выдало 0 и не сохранился.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Гм.. Что покажет такой скрипт, если установить курсор на любом из скачанных файлов?

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

' Параметр: %V
MsgBox CreateObject("Scripting.FileSystemObject").GetFile(WScript.Arguments(0)).Size
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить