@genericname1 don’t understand
Выпущена 22.2.0 версия BrowserAutomationStudio
-
Обновление целиком посвящено улучшению системы модулей.
Что такое модули?
Модули позволяют расширять функционал BAS. Каждый модуль содержит набор действий, например, есть модуль для работы с регулярными выражениями, списками, и т. д.
Также модули позволяю внедрять код в движок BAS и в движок браузера.
Каким образом модульная система была улучшена?
Добавлена возможность создавать собственные модули.
После обновления BAS позволяет превратить проект с набором функций в модуль. Выбранные функции будут преобразованы в новые действия. Все описания, которые вы ввели при создании функции, будут перенесены в пользовательский интерфейс нового модуля. С помощью нового диалога вы можете задать описание нового модуля и выбрать иконку, версию, и т. д. Проект, который был использован для создания модуля, можно использовать повторно, например, для обновления модуля, так как он сохраняет все введенные настройки. Разные функции из одного модуля могут вызывать друг друга.
Для создания нового модуля зайдите в менеджер модулей и нажмите на кнопку "Создать новый модуль".
Возможность устанавливать свои или чужие модули.
BAS разрешает устанавливать неограниченное количество модулей тем самым расширяя функционал. Установка происходит для текущего экземпляра BAS, это значит, что новые модули станут доступны в любом проекте над которым вы работаете. Пользователи могут обмениваться модулями, для этого, нужно создать модуль используя кнопку "Создать новый модуль", затем передать файл получившийся в результате другому пользователю. Сделать это не трудно, поскольку модуль является zip архивом. Затем его можно установить используя кнопку "Установить модуль".

Использование модулей в скомпилированных приложениях.
Теперь новые модули можно использовать не только в экземпляре BAS, где они были установлены, но и в скомпилированном приложении. Для этого нет необходимости производить какие-то дополнительные действия. BAS автоматически перенесет нужную информацию в проект.
Передача проектов с модулями.
Давайте рассмотрим такой пример, вы передаете проект другому разработчику для редактирования, у вас модули установлены, у него - нет. В этом случае, он по прежнему сможет запускать проект и даже редактировать те действия, которых у него по сути нет. Достигается это за счет механизма "внешних модулей". После смены проекта внешние модули исчезнут. Допускается передача проектов неограниченное количество раз.
BAS загружает только те модули, которые используются в проекте.
Вы можете устанавливать десятки модулей, если при этом использоваться будут не все, то BAS не будет "раздувать" текущий проект неиспользуемыми модулями. Софт будет автоматически анализировать проект и просто не подключать лишнее. Это не касается режима записи, потому что в нем проект изменяется и потенциально любой установленный модуль может быть использован.
Существующий функционал BAS может быть изменен.
Теперь можно менять функционал содержащийся в нативных модулях. Для этого необходимо:
- Скопировать содержимое нужного модуля из папки
C:\Users\%USERNAME%\AppData\Roaming\BrowserAutomationStudioTesting\apps\22.2.0\modulesв папкуC:\Users\%USERNAME%\AppData\Roaming\BrowserAutomationStudioTesting\apps\22.2.0\custom. - Изменить содержимое модуля в папке custom.
Все изменения сохранятся в скомпилированном приложении и при передаче проекта.
Здесь может пригодится документация по структуре модулей, которую написал наш пользователь @Oyasumi-Punpun
https://cheshirecaat.github.io/BAS.Modules/
Видео можно данного процесса найти здесь https://www.youtube.com/watch?v=sLNxrcZMOA0&t=3012s
Заменить можно любые типы файлов, не только скрипты. Например, возможно заменить базу к которой содержится информация об ip адресах.
Node.js можно использовать в модулях.
Существует возможность использовать не только стандартные действия BAS, но и код на Node.js, включая пакеты из NPM. BAS будет автоматически разрешать конфликты для разных версиях NPM модулей в пользу новых версий. Это дает возможность создавать обвертки для NPM модулей в виде модулей BAS с пользовательским интерфейсом. Например, в обучающем видео мы начали создавать такую обвертку для FTP клиента.
https://www.youtube.com/watch?v=sLNxrcZMOA0&t=2092s
Код модуля можно вызвать из Node.js.
Модули добавляют новые действия, которые по сути являются BAS функциями и они подчиняются абсолютно тем же правилам, что и обычные BAS функции. Например, их можно вызвать из Node.js используя метод BAS_FUNCTION. Название функции определяется как название модуля + нижнее подчеркивание + название действия. Например, если название модуля - TestModule, а название действия TestAction, то название функции будет TestModule_TestAction.
Видео с таймкодом https://www.youtube.com/watch?v=sLNxrcZMOA0&t=2740s
Интерфейс менеджера модулей был доработан.
Появился поиск, разделение на нативные и пользовательские модули, возможность удалять пользовательские модули. Код был доработан, так чтобы манипуляции с модульной системой не приводили к сбоям в режиме записи.

Установка модулей в ручном режиме.
Чтобы установить модуль без использования инсталлятора, необходимо скопировать его содержимое в папку
C:\Users\%USERNAME%\AppData\Roaming\BrowserAutomationStudioTesting\apps\22.2.0\custom\Таким образом, структура файлов должна быть такой:
custom\НАЗВАНИЕ МОДУЛЯ\manifest.json и другие файлы модуляЭто особенно актуально для модулей созданных до апдейта.
Хотелось бы отметить, что вместо переноса в папку modules, теперь нужно переносить в папку custom.
Новые модули рекомендуется устанавливать через кнопку "Установить модуль".
Дополнительная информация.
Документация по структуре модулей https://cheshirecaat.github.io/BAS.Modules/
Видеообзор модульной системы https://www.youtube.com/watch?v=sLNxrcZMOA0
Обмен модулями.
Чтобы поделиться своими модулями с сообществом, оставьте сообщение в данной ветке https://community.bablosoft.com/category/45/делитесь-модулями.
Обязательно прочтите о формате сообщения в прикрепленной теме.
Если пользователи будут активно создавать модули, то для них будет создан специальный реестр, наподобие NPM.
- Скопировать содержимое нужного модуля из папки
-
@support ЭТО, ПРОСТО, НЕЧТО! Я очень ждал этих возможностей, просто не передать как я рад такому функционалу, спасибо вам огромное за такую работу. Я сажусь тогда на выходных продолжать делать документацию по модульной системе, раз пошла такая пьянка!
P.S. Жалко, что ваши посты нельзя апвотить до бесконечности - плюсовал бы раз по сто)
-
@support
Извиняюсь, пока не пробовал, но вопрос:
Есть ли зашифрованные модули? Которые я могу передать клиенту.
Например клиент попросил сделать модуль распознавания для bla-bla-bla. Оплачивает мне, я ему скидываю.
Он его править не может. Только пользуется в своем проекте.
Правда тут еще...вдруг он передаст другому пользователю... -
@oyasumi-punpun А piton-ом не продолжите заниматься? <смущаясь>
-
Низкий поклон разработчику BAS, нереально крутая фича которая более чем уверен даст большой толчок к появлению крутых модулей. Спасибо
-
Наверное, все же нужно было в этой теме спросить, а не для версии 21.8.0. )
Если я покупаю BAS премиум на 6 месяцев (40$), то смогу планировщиком пользоваться и после 6-ти месяцев? -
@владимир57 Да, вы сможете использовать планировщик как отдельное приложение без ограничений после этого.
-
Выпустил версию 22.2.2 в ней:
- Исправлено падение после рестарта приложения в режиме веб интерфейса и запуска диалога открытия файла.
- Функция log_html теперь корректно работает с фильтрацией по номеру потока.
- Оптимизирован запуск приложения на огромных проектах, от 10 мб.
-
@Владимир57 said in Выпущена 22.2.0 версия BrowserAutomationStudio:
@support планировщик можно использовать со скомпилированной программой?
да