Этап 1. Подготовка проекта
1. Запускаем программу BAS
1) Имя нашей функции
2) Описание нашей функции
3) Переключатель, который дает нам право вернуть какой либо итог выполнение нашей функции. В нашем случае это нужно включить. Так как мы с вами делаем генератор User-Agent.
4) Описание того, что вернётся после выполнения функции в данном модуле
5) Имя переменной по умолчанию. Это то к какой переменной будет присваиваться значение, чтобы потом его использовать в нашем проекте. В любой момент пользователь модуля, может указать свое название функции
6) Параметры. Это то что мы переделаем в нашу функцию из нашего проекта. Чтобы наша функция в модуле понимала с чем ей работать. В нашем случае мы будем передавать тип устройства User-Agent которого хотим получить
7) Имя параметра, который даст понять пользователю модуля, что от него требуется. Также описание, для более подробного объяснения. И тип передаваемого значения. Тип зависит от того какие данные вы хотите, чтобы пользователь передавал (имеются такие типы как Строка, Число, Булевый тип, Выражение, Строка или выражение, Число или выражение). Тут зависит от вашей надобности. В нашем случае хватит и простой строки.
8) Создать нашу функцию с указанными настройками
(2) Вот сам вывод в лог. (3) Переменная, которой мы присвоили передаваемое значение в пункте 10. (4) Переменная, в которую сохраняем результат.
Для создания басовских переменных в "Выполнить код" можно использовать [[названием_переменной]] или же VAR_NAME - где NAME название переменной.
1) Переходим в модуль "Логика скрипта"
2) Выбираем функцию в этом модуле под названием "Вызов функции"
3) У нас появляется вызванная функция в разделе main (обязательно сначала туда нужно перейти из внутренностей вашей функции)
1) Нажимаем на завершить запись
2) Открываем менеджер модулей
3) Нажимаем "Создать новый модуль"
4) Выбираем функции, которые будет включать наш модуль
1) Придумываем ему названием, которые будет отображаться в списке модулей (ВНИМАНИЕ! Без пробелов и лишних символов)
2-3) Краткое описание на русском и английском. Этот пункт будет использоваться как название нашего модуля в режиме ЗАПИСЬ
4) Версия вашего модуля. Если вы будете обновлять ваш модуль и фиксить баги, то перед каждой новой компиляцией не забываем изменять версию, чтобы не войти в ступор и понять какая версия свежая, а какая нет
5) Подробное описание функции.
6) Прочая контактная информация создателя модуля, чтобы понять кто создатель и к кому обращаться из-за ху*евого написанного модуля
Так же мы сразу сможешь увидеть в менеджере модулей нас ранее созданный модуль
Этап 2. Красота требует жертв!
1. Для того чтобы, у нас вышел красивый презентабельный модуль. У которого будут понятные названия функций да еще и переведены на два языка. А так же сделаем выпадающий список для параметров типа девайса.
2. Разархивируем архив модуля и видим следующие файлы
1) engine.js содержит все функции и их функциональность
2-4) Файлы с припиской _code.js, _interface.js, _select.js создаются для каждой, повторяю для каждой функции в модуле и редактируется отдельно.
5) manifest.json содержит в себе структуру нашего модуля. Названием кнопок, версию, локализацию и прочее. Подробнее можно изучить в так и не доделанном гайде по модулям: КЛИК
1) Эти строчки и строчки ниже под названиями interface, name. select содержат названия файлов, к которым нужно обращаться при нажатии кнопки для вызова нашей функции
2) description содержит текст нашей кнопки в модуле, для вызова функции. Вот здесь мы и переименовываем в более понятный вид.
3) description_small ранее созданное название нашего модуля в общем списке модулей в режиме ЗАПИСЬ. Пункты ниже указанные нами контактные данные
4) Наше более подробное описание
5) Версия нашего модуля
6) Наша локализация, куда мы и будем указывать английский и русский текст
После чего заново переустанавливаем наш модуль (так как мы не изменили версию, то подтверждаем замену)
1) Вот тут всегда будут параметры, которые мы должны указывать при запуске нашей функции в модуле. Их может быть неограниченное количество
2) Вот тут у нас поле для приписки нашей переменной, куда будет сохраняться наш результат (может быть и без нее, если ваша функция ничего не возвращает)
3) Ну тут все просто. Описание нашей функции
9. Локализация. Вся локализация каждого текста хранится в прошлом файле manifest.json и прописывает так (на скрине указано два параметра localize, я тут забыл удалить нижний. А вы не забывайте и параметр должен быть один, если не удалите, то нижняя локализация перезапишет верхнюю и ничего не поменяется в вашем модуле, также в конце у меня квадратная скобка, а должна быть фигурная, не ошибаемся друзья) :smile_friends:
В моем модуле, где я перенес LolzAPI в BAS около 155 строк текста, который я перевёл. это заняло 1/3 времени создания модуля (в совокупности с редактирование интерфейса всех функций, а также дополнением описания каждого параметра, которого могло не быть в оригинальной документации)
Этап 3. Немного важной информации
1. От себя добавлю моменты, с которыми придется вам столкнуться.
1) Если вы добавили функций в ваш модуль и сгенерировали его заново через BAS. То нужно заново настраивать описание и manifest.json или перенести существующий, если в вашем модуле не добавилось новых функций и параметров.
2) Чтобы поменять кнопки местами, в файла manifest.json нужно расположить данные каждой кнопки в нужном порядке, но не сломать структуру json
3) Так же из пункта 1. BAS генерирует случайные названия функций при каждой пересборке модуля, поэтому все что вы указали в параметрах. Будь то текст, число, переменную сбросится на дефолтное. И нужно будет все действия в вашем проекте, где используется этот модуль переделывать.
4) Советик дня: Собирайте весь модуль, проверяйте работу перед его компиляцией, а потом обновляйте только жизненно необходимые файлы со структурой кода в файле engine.js
5) Не используйте модули от сторонних разработчиков в вашем модуле. Так как по умолчанию при запуске скрипта в режиме ЗАПУСК, а не ЗАПИСЬ. BAS подгружает модули, которые используются в вашем проекте, поэтому ваш модуль может не найти те модули, которые вы указали внутри вашего модуля и ни разу не вызывали в вашем проекте. Так что, если вам нужна какая то функциональность, то лучше это все переделывать на чистый JS и выполнять в действии "Выполнить код"
6) Всегда можно создать модуль на чисто JS и не париться по поводу всего этого, но тут уже кто как умеет
1) Если вы добавили функций в ваш модуль и сгенерировали его заново через BAS. То нужно заново настраивать описание и manifest.json или перенести существующий, если в вашем модуле не добавилось новых функций и параметров.
2) Чтобы поменять кнопки местами, в файла manifest.json нужно расположить данные каждой кнопки в нужном порядке, но не сломать структуру json
3) Так же из пункта 1. BAS генерирует случайные названия функций при каждой пересборке модуля, поэтому все что вы указали в параметрах. Будь то текст, число, переменную сбросится на дефолтное. И нужно будет все действия в вашем проекте, где используется этот модуль переделывать.
4) Советик дня: Собирайте весь модуль, проверяйте работу перед его компиляцией, а потом обновляйте только жизненно необходимые файлы со структурой кода в файле engine.js
5) Не используйте модули от сторонних разработчиков в вашем модуле. Так как по умолчанию при запуске скрипта в режиме ЗАПУСК, а не ЗАПИСЬ. BAS подгружает модули, которые используются в вашем проекте, поэтому ваш модуль может не найти те модули, которые вы указали внутри вашего модуля и ни разу не вызывали в вашем проекте. Так что, если вам нужна какая то функциональность, то лучше это все переделывать на чистый JS и выполнять в действии "Выполнить код"
6) Всегда можно создать модуль на чисто JS и не париться по поводу всего этого, но тут уже кто как умеет