Здесь предлагаю выкладывать, обсуждать и предлагать какие-то универсальные функции, которые могут быть использованы во многих подкастах, готовые и неочень решения.
Начну с универсальной динамической папки настроек для подкаста. Может быть использована в любых подкастах, где используются какие-либо ключи или настройки в полях "Комментарий". Скрипт полностью отдельно самодостаточен, автономен и не привязан к какому либо подкасту. Для работы скрипта, необходимо в подкасте создать папку с типом "Динамическая (скрипт) - зависит от устройства" и вставить этот скрипт. Для использования скрипта необходимо будет только отредактировать ту часть, где задаются какие настройки и ключи мы хотим устанавливать и снимать.
Для удобства добавления подобных папок в любой подкаст, можно воспользоваться заметкой Евгения и вывести кнопку добавления в панель программы.
Устанавливаемые настройки применяются для папки, которая содержит эту динамическую папку настроек.
Динамическая папка настроек подкаста должна иметь ссылку "-SettingsFolder" и может иметь любое наименование.
Также прикрепляю папку, в которой есть динамическая папка с данным скриптом. Для примера. Также пример использования такой папки в подкасте.
UPD 21.02.2013:
Освежил скрипт.
Для ленивцев (таких как я) можно добавить ещё кнопку.
В программе - "Настройки" -> "Обработка" -> "Загрузить" и выбрать файл, прикреплённый ниже (заранее распакованный) "Обработка медиаресурса - Добавить папку настроек подкаста.cfg" -> на вопрос "Очистить список... ?" отвечаем "Нет" -> OK -> OK. После этого на панели должна появиться кнопка "Добавить папку настр. подкаста".
Работает так - встаём на подкаст или папку подкаста в программе и нажимаем эту кнопку. По кнопке произойдёт загрузка скрипта с этого форума (да да, мне нечего было делать) и добавиться динамическая папка с данным скриптом в текущий подкаст.
UPD 27.12.2014: Обновлён скрипт и обработка загрузки и добавления динамической папки в подкаст.
Универсальные функции и скрипты
Универсальные функции и скрипты
- Attachments
-
- Обработка медиаресурса - Добавить папку настроек подкаста.cfg.zip
- 27.12.2014
- (1.47 KiB) Downloaded 1510 times
SONY KDL-32CX520
Re: Универсальные функции и скрипты
Набор универсальных функций и процедур визуальной формы настроек подкаста. Та же тема что и выше, только для работы с компьютера. Это простой велосипед, чтобы не изобретать потом. Для простых настроек.
Можно воспользоваться так:
1) Вставляем приведённый код набора функций в скрипт создания подкаст лент своего подкаста в верхнюю часть.
2) Сам код формирования подкаст лент оформляем отдельной процедурой, например procedure CreateMyPodcast();...
3) В главную процедуру скрипта ставим вызов показа формы настроек4) В первой процедуре визуальной формы ParametersFormInit настраиваем и устанавливаем параметры формы:
[*]устанавливаем имя процедуры создания подкаст лент, например PARAMS.Values['ProcCreatePodcasts'] := 'CreateMyPodcast';
[*]Вписываем своё имя (Author), дату (Date) и текст приветов (About).
[*]Ниже редактируем под свои нужды список параметров
Список параметров может отображать визуальные элементы пока трёх классов CheckBox, ComboBox и Edit. Для простых задач этого может хватить.
По образу и подобию существующих там параметров задаёте свои.
Пояснения некоторых свойств параметров.
P.Values['Caption'] - Заголовок
P.Values['Hint' ] - всплывающая подсказка
Если класс CheckBox:
P.Values['Param' ] - сам параметр, который будет устанавливаться или сниматься.
Если класс ComboBox:
P.Values['caWidth'] - Caption width, ширина заголовка (до элемента ComboBox).
P.Values['coWidth'] - ComboBox width, ширина ComboBox
P.Values['Param0' ]
P.Values['Param1' ]
...
P.Values['ParamN ] - список параметров с их заголовком. Сначала идёт заголовок и сам параметр разделяются символом "|"
Если класс Edit:
P.Values['edWidth']- Edit width, ширина элемента Edit
P.Values['Default'] - значение по-умолчанию
P.Values['OnlyNum'] - если присвоить значение "Yes", "Y" или "1", то ввод в текстовое поле Edit будет органичен только цифрами
P.Values['Param'] - в этом случае параметр может выглядеть как --param=<N> или --param=<S>. Если используется <N>, то значение после знака равно будет добавлено как есть (например цифры), если будет стоять <S>, то значение будет добавлено после знака равно в кавычках, вот так -param="значение параметра".
На самом деле пользоваться просто. И куда меньше затрат по времени, чем писать для каждого случая свою форму.
Ну и редактировать её под свои нужды никто не запретит.
С первого взгляда может показаться чем-то замудрёным, если присмотреться - всё просто. Минимум операций для внедрения кода в свой скрипт. Незнаю, понадобиться ли кому-нибудь. Кода может быть и много, но ведь удобно же.
Можно воспользоваться так:
1) Вставляем приведённый код набора функций в скрипт создания подкаст лент своего подкаста в верхнюю часть.
2) Сам код формирования подкаст лент оформляем отдельной процедурой, например procedure CreateMyPodcast();...
3) В главную процедуру скрипта ставим вызов показа формы настроек
Code: Select all
begin
ShowParametersForm();
end.
[*]устанавливаем имя процедуры создания подкаст лент, например PARAMS.Values['ProcCreatePodcasts'] := 'CreateMyPodcast';
[*]Вписываем своё имя (Author), дату (Date) и текст приветов (About).
[*]Ниже редактируем под свои нужды список параметров
Список параметров может отображать визуальные элементы пока трёх классов CheckBox, ComboBox и Edit. Для простых задач этого может хватить.
По образу и подобию существующих там параметров задаёте свои.
Пояснения некоторых свойств параметров.
P.Values['Caption'] - Заголовок
P.Values['Hint' ] - всплывающая подсказка
Если класс CheckBox:
P.Values['Param' ] - сам параметр, который будет устанавливаться или сниматься.
Если класс ComboBox:
P.Values['caWidth'] - Caption width, ширина заголовка (до элемента ComboBox).
P.Values['coWidth'] - ComboBox width, ширина ComboBox
P.Values['Param0' ]
P.Values['Param1' ]
...
P.Values['ParamN ] - список параметров с их заголовком. Сначала идёт заголовок и сам параметр разделяются символом "|"
Если класс Edit:
P.Values['edWidth']- Edit width, ширина элемента Edit
P.Values['Default'] - значение по-умолчанию
P.Values['OnlyNum'] - если присвоить значение "Yes", "Y" или "1", то ввод в текстовое поле Edit будет органичен только цифрами
P.Values['Param'] - в этом случае параметр может выглядеть как --param=<N> или --param=<S>. Если используется <N>, то значение после знака равно будет добавлено как есть (например цифры), если будет стоять <S>, то значение будет добавлено после знака равно в кавычках, вот так -param="значение параметра".
На самом деле пользоваться просто. И куда меньше затрат по времени, чем писать для каждого случая свою форму.
Ну и редактировать её под свои нужды никто не запретит.
С первого взгляда может показаться чем-то замудрёным, если присмотреться - всё просто. Минимум операций для внедрения кода в свой скрипт. Незнаю, понадобиться ли кому-нибудь. Кода может быть и много, но ведь удобно же.
- Attachments
-
- Визуальная форма настроек.hdf.zip
- (7.19 KiB) Downloaded 1608 times
SONY KDL-32CX520
Обработка добавления динамической папки поиска в подкаст
Выкладываю обработку добавления динамической папки поиска в подкаст. Это для кодеров, которые хотят в подкаст добавить интерактивный поиск.
Делается это так:
1) скачиваете, распаковываете "Создать ПОИСК.cfg"
2) Домашний медиа-сервер - "Настройки" - в правой панели вторая кнопка снизу "Обработка" - кнопка "Загрузить" - выбрать файл "Создать ПОИСК.cfg", на вопрос "Очистить текущий список скриптов обработки медиаресурсов" ответить "Нет". Ок, Ок.
После этого в программе на панеле справа появится кнопка "Создать ПОИСК".
Встаём на подкаст и нажимаем кнопку.
Всё. Динамическая папка поиска непривязана ни к чему и самодостаточна. И она просто создаёт подкасты с названием. А как производить поиск по таким созданным папкам - это уже дела самого подкаста, где эта папка. Если в подкасте уже реализован поиск по таким подкастам (предлагаю отбрабатывать через поиск подкасты, в ссылке которых нет http), то просто добавив такую папку мы добавляем возможность поиска не вставая с дивана.
Вообще, создание именно такой универсальной папки поиска сподвигла меня просьба добавить такой поиск в музыкальный подкаст. И я решил - чтобы вручную не переносить подобные подкасты, написать обработку, которая это будет делать одним движением. Начал делать и ... меня понесло.
Сделал возможность набора с подсказками вариантов и добавлением в разные папки. Универсализировал, функционизировал, переписал всё напрочь, а значит - теперь нет простоты и красоты кода. Но все основные настройки вынес вверх скрипта.
После добавления этой динамической папки, открыв скрипт - вверху можно увидеть все настройки и сообщения.
Т.е. перевести на другой язык, например, можно легко - присвоив другие строковые значения в одном месте.
Также для работы подсказок при набирании слова там есть несколько переменных:Где
gsSuggestQuery - строка запроса на сайт, где можно получить список интересующих выражений (поиск)
gsSuggestResultCut - регулярное выражение обрезки нужного участка в ответе, для поиска в нём данных
gsSuggestRegExpr - регулярное выражение поиска блоков, содержащих варианты предложений (подсказок).
Поиск работать будет и с пустыми значениями этих переменных. Просто без подсказок. Ну а с ними - сооовсем другое дело!
Для включения такой возможности - появления предложений вариантов - нужно всего-лишь заполнить эти переменные.
Например.
для музыкального подкаста Музыка на Yandex.ru от 2012-06-30 эти сроки будут такими:Для подкаста Stepashka.com:Для HDKinoteatr.ru:
Google подсказки:Google видео:
Всё очень просто.
И при работе с таким режимом - намного удобней что-то искать, я вам скажу.
UPD от 2020.01.27:
Скрипт на языке JScript, который должен одинаково работать на версиях HMS 3.0 и ниже. Постарался сделать его более простым и понятным.
Этот скрипт должен быть в динамической папке с именем "Набрать текст" и ссылкой "-SearchCommands".
Делается это так:
1) скачиваете, распаковываете "Создать ПОИСК.cfg"
2) Домашний медиа-сервер - "Настройки" - в правой панели вторая кнопка снизу "Обработка" - кнопка "Загрузить" - выбрать файл "Создать ПОИСК.cfg", на вопрос "Очистить текущий список скриптов обработки медиаресурсов" ответить "Нет". Ок, Ок.
После этого в программе на панеле справа появится кнопка "Создать ПОИСК".
Встаём на подкаст и нажимаем кнопку.
Всё. Динамическая папка поиска непривязана ни к чему и самодостаточна. И она просто создаёт подкасты с названием. А как производить поиск по таким созданным папкам - это уже дела самого подкаста, где эта папка. Если в подкасте уже реализован поиск по таким подкастам (предлагаю отбрабатывать через поиск подкасты, в ссылке которых нет http), то просто добавив такую папку мы добавляем возможность поиска не вставая с дивана.
Вообще, создание именно такой универсальной папки поиска сподвигла меня просьба добавить такой поиск в музыкальный подкаст. И я решил - чтобы вручную не переносить подобные подкасты, написать обработку, которая это будет делать одним движением. Начал делать и ... меня понесло.
Сделал возможность набора с подсказками вариантов и добавлением в разные папки. Универсализировал, функционизировал, переписал всё напрочь, а значит - теперь нет простоты и красоты кода. Но все основные настройки вынес вверх скрипта.
После добавления этой динамической папки, открыв скрипт - вверху можно увидеть все настройки и сообщения.
Т.е. перевести на другой язык, например, можно легко - присвоив другие строковые значения в одном месте.
Также для работы подсказок при набирании слова там есть несколько переменных:
Code: Select all
char gsSuggestQuery = '';
char gsSuggestResultCut= '';
char gsSuggestRegExpr = '';
char gsSuggestMethod = 'GET';
int gnSuggestNoUTFEnc = 0;
char gsSuggestMessage = 'Вариант: ';
gsSuggestQuery - строка запроса на сайт, где можно получить список интересующих выражений (поиск)
gsSuggestResultCut - регулярное выражение обрезки нужного участка в ответе, для поиска в нём данных
gsSuggestRegExpr - регулярное выражение поиска блоков, содержащих варианты предложений (подсказок).
Поиск работать будет и с пустыми значениями этих переменных. Просто без подсказок. Ну а с ними - сооовсем другое дело!
Для включения такой возможности - появления предложений вариантов - нужно всего-лишь заполнить эти переменные.
Например.
для музыкального подкаста Музыка на Yandex.ru от 2012-06-30 эти сроки будут такими:
Code: Select all
char gsSuggestQuery = 'http://suggest-music.yandex.ru/suggest-ya.cgi?v=3&part=';
char gsSuggestResultCut= '(\\[.*?\\])';
char gsSuggestRegExpr = '"(.*?)"(?:,|\\])';
Code: Select all
char gsSuggestQuery = 'http://online.stepashka.com/index.php?do=search&subaction=search&full_search=1&story=<TEXT>&titleonly=3';
char gsSuggestResultCut= '';
char gsSuggestRegExpr = 'shortstory.*?(<h3.*?</h3>)';
char gsSuggestMethod = 'POST';
Code: Select all
char gsSuggestQuery = 'http://www.hdkinoteatr.ru/index.php?do=search&subaction=search&full_search=1&story=<TEXT>&titleonly=3';
char gsSuggestResultCut= '';
char gsSuggestRegExpr = 'shortstory.*?(<h3.*?</h3>)';
char gsSuggestMethod = 'POST';
Code: Select all
char gsSuggestQuery = 'http://www.google.ru/complete/search?sclient=psy-ab&q=';
char gsSuggestResultCut= '';
char gsSuggestRegExpr = '\\["(.*?)",';
Code: Select all
char gsSuggestQuery = 'http://clients1.google.ru/complete/search?client=video-hp&q=';
char gsSuggestResultCut= '';
char gsSuggestRegExpr = '\\["(.*?)",';
И при работе с таким режимом - намного удобней что-то искать, я вам скажу.
UPD от 2020.01.27:
Скрипт на языке JScript, который должен одинаково работать на версиях HMS 3.0 и ниже. Постарался сделать его более простым и понятным.
Этот скрипт должен быть в динамической папке с именем "Набрать текст" и ссылкой "-SearchCommands".
- Attachments
-
- Создать ПОИСК.cfg.zip
- от 2013.07.01
- (1.77 KiB) Downloaded 1514 times
SONY KDL-32CX520
Re: Универсальные функции и скрипты
2013.07.01 обновил обработку, вынес скрипт в сообщение выше и обработка теперь загружать будет этот скрипт отсюда. Т.е. скрипт можно будет обновлять здесь и обработка будет добавлять всегда актуальный сприпт.
И сделал приколюху - по умолчанию, пусть гугл нам тогда подсказывает.
Конечно, когда подсказки выводит интересующий сайт это совсем другое - там можно при наборе видеть, есть ли то на сайте, что мы начинаем искать.
И сделал приколюху - по умолчанию, пусть гугл нам тогда подсказывает.
Конечно, когда подсказки выводит интересующий сайт это совсем другое - там можно при наборе видеть, есть ли то на сайте, что мы начинаем искать.
SONY KDL-32CX520