На GitHub обновил батник "Обновить скрипты для скачивания видео.cmd" Это тоже гибридный cmd/js скрипт. Предназначен для автоматической загрузки текущих версий моих скриптов на компьютер пользователя с установленной Windows. В параметрах можно задать кодировку и выполнить некоторую замену в тексте скачиваемых скриптов. Весь текст скрипта не привожу из соображений объёма, но только cmd часть:
@set @x=0 /* @echo off chcp 65001 >nul setlocal :: Договор публичной оферты на оказание услуг технической поддержки.docx: <Удалено в соответствии с Правилами Хабра в отношении коммерческой информации> call :update_file "Платёжная информация.html" call :update_file "Некоторые отсоединённые GnuPG подписи/Платёжная информация.html.sig" /raw :: Для использования yt-dlp форкните/клонируйте соответствующий репозиторий или скачайте оттуда екзешник: https://github.com/yt-dlp/yt-dlp :: Он потом будет автоматически обновляться этим батником (при отсутствии проблем с блокированием интернета) .\yt-dlp.exe -U call :update_file "Обновить скрипты для скачивания видео.cmd" new call :update_file y.cmd /coding:Windows-1251 /rep:"^(set test_prev_downloaded=)1$`$10;(^set extension=)\S+$`$1mp4" call :update_file "Monitor2-2013/refs/heads/main/Video processing/Оглавление.js" https://raw.githubusercontent.com/kvk-2015 /coding:Windows-1251 ::call :update_file Search.js exit /b :: Если вам будут мной предоставлены в рамках технической поддержки индивидуально настроенные под ваши потребности скрипты, :: обновить их можно будет при помощи https://download.kde.org/stable/kdiff3/ Методику или сами найдёте, или я подскажу... :update_file set head=%2 set is_url= if -%2- == -new- (set new=.new) else (set new=&if not -%2- == -- (set head=%head:~10%&set is_url=%head:*-=%)) set head=https://kvk-2015.github.io if -%is_url%- == -2015- set head=%2 set output_file=%1 set output_file=%output_file:*и/=% set output_file=%output_file:*g/=% set output_file=%output_file:"=%%new% del /f "%output_file%.bak" 2>nul rename ".\%output_file%" "%output_file%.bak" 2>nul set page=%1 setlocal enabledelayedexpansion set page=!page: =%%20! setlocal disabledelayedexpansion set page=%page:"=% curl.exe --output ".\%output_file%" %head%/%page% if not defined new cscript /nologo /e:javascript "%~dpnx0" ".\%output_file%" %2 %3 %4 %5 %6 %7 %8 %9 goto:eof */ // Для скачанного скрипта можно выполнить патчинг согласно вашим предпочтениям <Далее .js часть скрипта, не приводится из-за ограничений объёма поста на Хабре>
Ручная смена кодировки скрипта, если вдруг кому захочется, подразумевает некоторые изменения в коде (другие мои скрипты таких "сложностей" не предполагают - их можно просто сохранить в нужной кодировке). Можно получить объяснение работы всей этой подсистемы у Алисы Про, конечно, только весьма ограниченно доверяя им. Скрипт Search.js имеет несколько ограниченное применение, поэтому не предлагается для скачивания по умолчанию, в нём выполняется поверка не просматривали ли уже видео, скачанное недавно при помощи yt-dlp (имена файлов, из которых для целей поиска выделяется только id, передаются в него в виде параметров командной строки). Предполагается, что просмотренные видео удаляются вручную из истории файлов Windows 10 из-за сбоев, в то же время информация о них продолжает присутствовать в базе данных. Если в скрипте установлено, что contains_only = true, просто проверяется наличие указанного id в базе, а не выполняется сравнение отдалённости групп случаев по оси времени условно.












