///////////////////////////////////////////////////////////////////////////////
/// Создание ссылок на файл(ы) по переданной ссылке (шаблону) -------------
void CreateVideoLink(THmsScriptMediaItem Folder, string sName, string sLink, bool bSeparateInFolders=false) {
string sCut, sQualArray, sQual, sFile; int i, nCount; // Объявляем переменные
// Проверяем, есть ли в переданной ссылке шаблон с массивом существующего качества "[720,480,360]"
if (HmsRegExMatch('\\[(.*?)\\]', sLink, sQualArray)) {
sCut = '['+sQualArray+']'; // Та часть, которая будет заменятся на индификатор качества
nCount = WordCount (sQualArray, ','); // Количество елементов, разделённых запятой
for (i=1; i<=nCount; i++) {
sQual = ExtractWord(i, sQualArray, ','); // Получаем очередной индификатор качества
if (sQual=='') continue; // Может быть пропущен, если не указан
sFile = ReplaceStr(sLink, sCut, sQual); // Формируем ссылку на файл, заменяя шаблон на индификатор качества
if (bSeparateInFolders) { // Если был передан флаг "Группировать файлы качества по разным папкам",
CreateMediaItem(Folder, sName, sFile, sQual); // то передаём индификатор качества как имя группы, где будет создана ссылка
} else {
if (sName=='') HmsRegExMatch('.*/(.*)', sLink, sName); // Получаем имя файла из ссылки (всё что идёт после последнего слеша)
sName = ReplaceStr(sName, sCut, ''); // Убираем перечисление качества из имени
sName = ReplaceStr(sName, '_', ''); // А также подчекривания (лишние)
CreateMediaItem(Folder, sQual+' '+sName, sFile); // Добавляем индификатор качества к началу имени и создаём ссылку
}
}
// Проверяем, есть ли в переданной ссылке просто запятые, т.е. перечисление ссылок
} else if (Pos(',', sLink)>0) {
for (i=1; i<=WordCount(sLink, ','); i++) {
sQual = '';
sFile = ExtractWord(i, sLink, ',');
sName = ExtractFileName(sFile);
HmsRegExMatch('.*/(.*)', sName, sName);
if (HmsRegExMatch2('^(.*)_(\\d+)\\.', sName, sName, sQual)) {
sQual = '['+Trim(sQual)+']';
}
if (bSeparateInFolders) { // Если был передан флаг "Группировать файлы качества по разным папкам",
CreateMediaItem(Folder, sName, sFile, sQual); // то передаём индификатор качества как имя группы, где будет создана ссылка
} else {
CreateMediaItem(Folder, sQual+' '+sName, sFile);
}
}
} else {
// Если шаблона выбора качества в ссылке нет, то просто создаём ссылку
if (sName=='') HmsRegExMatch('.*/(.*)', sLink, sName); // Если имя пустое, получаем имя файла из ссылки (всё что идёт после последнего слеша)
CreateMediaItem(Folder, sName, sLink);
}
}
} else if (HmsRegExMatch('hlsList:\\{"(.*?)"', sHtml, sLink)) {
// Создаём ссылку на конкретный фильм
sLink = HmsExpandLink(sLink, "http");//(или https)
CreateVideoLink(PodcastItem, mpTitle, sLink);
}