Урок №25. Динамические плагины

В этом видео мы расскажем о динамических плагинах Datacol. Для лучшего восприятия информации мы советуем посмотреть предыдущие видеоуроки.

Ранее вы думали, что для создания плагинов обязательно нужна среда для их написания и компиляции. Вовсе нет, теперь расширить функционал программы можно с помощью динамических плагинов, создать которые может пользователь даже с начальными знаниями C# прямо в интерфейсе Datacol. Как это сделать? Смотрите в видео.



В данном разделе можно найти более подробную информацию о динамических плагинах.

Напомним, что в Datacol Вы так-же найдете уже готовые парсера:

Текст видео (если Вам проще воспринимать информацию после прочтения) »

Вначале напомним что такое плагины и зачем они нужны. Зачастую нашим покупателям не хватает базового функционала программы Datacol. В таких случаях для расширения возможностей программы на разных этапах работы можно прибегать к использованию плагинов. Обычный плагин – это DLL файл, переопределяющий (или дополняющий) ту или иную функцию программы.

Механизм плагинов с одной стороны очень удобен, с другой стороны не лишен недостатков. Во-первых, для создания плагинов нужно не только владеть языком программирования, но и иметь у себя на компьютере среду для их написания и компиляции. Во-вторых, при переносе кампаний с одного компьютера на другой, нужно учитывать, что кампании могут использовать плагины, которые придется переносить отдельно с помощью механизма экспорта/импорта плагинов.

Что исключить вышеописанные минусы — мы ввели технологию динамических плагинов. Суть в том, что плагин компилируется прямо во время запуска кампании. Технология динамических плагинов также позволяет расширять базовый функционал программы, при этом есть ряд преимуществ по сравнению со стандартными плагинами Datacol.

Во-первых, теперь плагин можно писать прямо в интерфейсе Datacol. Это исключает необходимость устанавливать у себя на компьютере отдельную среду программирования, создавать и настраивать проект для компиляции, осуществлять телодвижения с созданными DLL файлами плагинов. Таким образом, простой динамический плагин сможет создать даже человек с начальнымизнаниями языка программирования C#.

Во-вторых, если настройка содержит плагины, к которым подключены дополнительные dll билиотеки, то они автоматически выгружаются при экспорте и загружаются при импорте кампании. Соответственно мы исключаем необходимость отдельно экспортировать и импортировать сами плагины.

Уточним, динамические плагины пишутся на языке C# под .NET FrameWork 4.

На данный момент есть следующие виды динамических плагинов: плагин обработки ссылок, плагин обработки поля, плагин обработки данных перед экспортом и плагин окончания процесса.

Теперь рассмотрим подробнее каждый из видов плагинов:

Плагин обработки ссылок может пригодиться в случаях, когда нам нужно применить какое либо преобразование к собранным ссылкам. Например, удалить лишнюю часть ссылки, заменить подстроку на другую или еще что либо. Это может пригодиться при парсинге сайтов с некорректной структурой относительных ссылок. Обратите внимание, что плагин может изменять как отдельные ссылки, так и список собранных ссылок в целом. Соответственно, можно из него удалить какие либо ссылки или наоборот — добавить.

Плагин обработки поля может использоваться для преобразования найденного значения поля. Например, нам необходимо, чтобы собранное значение поля переводилось в верхний регистр, либо преобразовывалось в число для проведения арифметических операций, таких как умножение на процент. Как вариант, так можно сделать наценку для цены оптовика. В целом можно делать любые преобразования, на которые способна ваша фантазия.

Плагин обработки данных перед экспортом позволяет вносить изменения в собранные данные перед тем как они будут сохранены в файл, отправлены в базу данных, загружены в CMS или экспортированы каким либо другим образом. Например, нам может понадобиться перед экспортом исключить объявления, содержащие стоп слова, или товары, стоимость которых не входит в заданный диапазон. Обратите внимание, если экспорт происходит в потоковом режиме, то плагин вызывается для каждой группы данных. Если же экспорт производится при завершении кампании, то плагин соответственно вызывается только один раз.

Плагин окончания процесса позволяет осуществить какие либо действия перед самым завершение работы кампании. Например, можно написать функционал оповещения по смс об окончании кампании.

В будущем мы планируем внедрить динамические плагины и на других этапах работы программы.

Что касается параметров и возвращаемых значений плагинов, то пояснения приведены в отдельном разделе, посвященным динамическим плагинам. Ссылку на раздел можно найти на странице с данным видео. Там же будут приведены примеры динамических плагинов.

Приведем пример создания и использования динамического плагина. Допустим, мы хотим, чтобы одно из полей данных парсилось в верхнем регистре. Открываем настройки поля данных. Переходим на вкладку Дополнительно. Активируем плагин обработки поля. Запускаем редактор динамических плагинов. Теперь нам нужно написать код для перевода строкового значения в верхний регистр.

Вроде готово. Тестируем. Видим, что есть ошибки. Мы случайно удалили точку с запятой. Исправляем это. Повторно тестируем, получаем сообщение, что компиляция успешна, значит все хорошо. Сохраняем плагин. Теперь протестируем сбор данных. Видим, что название переведено в верхний регистр, что и требовалось сделать.

Заметим, что динамические плагины могут использовать не только функционал системных библиотек, но также к ним можно подключать пользовательские библиотеки. Об этом мы расскажем в последующих видео.