Тема: BAT/CMD/JS: VLC Scheduler - VLC планировщик
Написал на досуге около года тому назад, чтобы не вскакивать по воскресным утрам для записи передач "Чудо Техники". Сам устанавливает подключение к интернету, если оборвалось, складывая фрагменты в один m3u.
Хоть скрипт и примитивный, глюки имеются. Но, теперь сплю спокойно и сколько хочу
@if (@a==@b) @end /*
@echo off
mode con lines=12 cols=40
setlocal EnableDelayedExpansion
Set dates=%date:~6,4%%date:~3,2%%date:~0,2%
set ini=%~dpn0.ini
set doc=TEST
set m3u=%~dp0%dates%.m3u
echo #Session of %dates%#>>%m3u%
set Minimum=-1
:Begin
cls & set i=0
for /f "eol= tokens=* delims= usebackq" %%s in (%ini%) do (
for /f "tokens=1,2" %%a in ("%%s") do (
if "%%b"=="" (
echo %%a
set %%a
echo %%a.
) else (
if "%%a"=="Record" (
for /f "tokens=1,2,3 delims=:-" %%c in ("%%b") do (
set Channel=%%c
set Dating=%%d
set Ending=%%e
set Link=!Channel%%c!
set/P Setup=Channel#%%c !Dating:~0,2!:!Dating:~2,2!-!Ending:~0,2!:!Ending:~2,2! to "!doc!.avi":
set /a Digits=!Setup!
if !Digits! == 0 (
if not "!Setup!"=="" (
set doc=!Setup!
goto Begin
)
)
if !Digits! == !Setup! (
set /a Channel=!Digits!
)
)
) else (
set /a i=i+1
set Channel!i!=%%b
set Title!i!=%%a
if !i! lss 10 (echo 0!i!:%%a) else (echo !i!:%%a)
)
)
)
)
for /f "tokens=1,2 delims=:-" %%a in ("!Setup!") do (
if "%%b"=="" (
if not "%%a"=="" (
set Channel=%%a
)
) else (
set Dating=%%a
set Ending=%%b
)
)
if not "!Setup!"=="" (
set Setup=
del %ini%>nul
for /l %%j in (1,1,%i%) do echo !Title%%j! !Channel%%j!>>%ini%
echo Record !Channel!:!Dating!-!Ending!>>%ini%
goto Begin
)
mode con lines=1 cols=40
:Waiting
Set Times=%time:~0,2%%time:~3,2%
Set Times=!Times: =0!
Set /a Current=(!Times:~0,1!*600)+(!Times:~1,1!*60)+(!Times:~2,1!*10)+(!Times:~3,1!)
Set /a Expect=(!Dating:~0,1!*600)+(!Dating:~1,1!*60)+(!Dating:~2,1!*10)+(!Dating:~3,1!)
Set /a Remains=!Expect!-!Current!
Set /a Hours=!Remains!/60
Set /a Minutes=!Remains!-(!Hours!*60)
if !Hours! leq 9 set Hours=0%Hours%
if !Minutes! leq 9 set Minutes=0%Minutes%
cls & <nul set/P z=%time:~0,8%[!Dating:~0,2!:!Dating:~2,2!..!Ending:~0,2!:!Ending:~2,2!] - !Hours!:!Minutes!
if !Remains! gtr 0 (ping -n 2 127.0.0.1 >nul & goto Waiting)
C:
cd "%ProgramFiles(x86)%\VideoLAN\VLC"
mode con lines=1 cols=8
:Recording
Set Times=%time:~0,2%%time:~3,2%
Set Times=!Times: =0!
Set /a Current=(!Times:~0,1!*600)+(!Times:~1,1!*60)+(!Times:~2,1!*10)+(!Times:~3,1!)
Set /a Expect=(!Ending:~0,1!*600)+(!Ending:~1,1!*60)+(!Ending:~2,1!*10)+(!Ending:~3,1!)
Set /a Remains=!Expect!-!Current!
Set /a Hours=!Remains!/60
Set /a Minutes=!Remains!-(!Hours!*60)
if !Hours! leq 9 set Hours=0%Hours%
if !Minutes! leq 9 set Minutes=0%Minutes%
<nul set/P z=%time:~0,8%[!Dating:~0,2!:!Dating:~2,2!..!Ending:~0,2!:!Ending:~2,2!] - !Hours!:!Minutes!
if !Remains! lss !Minimum! goto Playing
set Minimum=5
rasdial <provider> <login> <password>
if %ErrorLevel% NEQ 0 (cls & echo & ping -n 2 127.0.0.1 >nul & echo & goto Recording)
for /f "delims=" %%I in ('cscript /nologo /e:jscript "%~f0" "%Link%"') do (
set url=%%I
<nul set/P z=:
goto Record
)
goto Recording
:Playing
cls & echo COMPLETE %Files%
echo vlc://quit>>%m3u%
start "Video Session" /MIN vlc --no-autoscale --zoom=0.4 --video-x=-640 --video-y=300 --no-video-deco --no-embedded-video --scale=50 --directx-volume=0.5 --qt-opacity=0.5 %m3u% --play-and-exit
goto :EOF
:Record
Set dates=%date:~6,4%%date:~3,2%%date:~0,2%
Set File=%~dp0%dates%.%doc%.%Times%.mp4
Set /a Limit=!Remains!*60
echo %File%>> %m3u%
start "Video Session" /MIN vlc --no-autoscale --zoom=0.4 --video-x=-640 --video-y=300 --no-video-deco --no-embedded-video --scale=50 --directx-volume=0.5 --qt-opacity=0.5 %file% --play-and-exit
vlc -vvv --qt-minimal-view --qt-opacity=0.5 --run-time %limit% %url% :sout=#duplicate{dst=std{access=file,mux=ts,dst="%File%"}} vlc://quit --play-and-exit %full%
goto Recording
JScript */var x=new ActiveXObject("Microsoft.XMLHTTP");
x.open("GET",WSH.Arguments(0),true);
x.setRequestHeader("User-Agent","XMLHTTP/1.0");
x.send("");
while (x.readyState!=4) {WSH.Sleep(50)};
var s=x.responseText;
WSH.Echo(s.match(/var showFile = '([^']+)'/)[1]);
Пример ini-файла:
Первый http://your_site/index.php?identificator#1
Россия http://your_site/index.php?identificator#2
ТВ3 http://your_site/index.php?identificator#3
НТВ http://your_site/index.php?identificator#4
Record 2:2320-2351