Как автоматизировать сам BAS?

Поддержка
  • @ilsaazure said in Как автоматизировать сам BAS?:

    @Fox Я тебя понял, я хочу использовать вызовы из node js только для части кода, чтобы не плодить большое количество однотипных действий,

    Если так нужен враппер, то можете создать функцию BAS, название действия передавать через атрибут, а внутри функции в зависимости от названия выполняйте нужное действие. Снаружи будет выглядеть как тот же BAS_API

    var thread_number = await BAS_FUNCTION("wrapper", {"n": "thread_number"});
    
  • @Fox то-есть сделать функцию которая будет выполнять все эти действия в зависимости от того какой аргумент действия был передан?
    мне кажется это будет очень кривой костыль, например у меня есть такие вызовы, значит для этой функции нужно будет передавать ещё кучу других аргументов которые должны использоваться в действиях, это же вообще не удобно будет

    if ([[DATABASE_USE]] == true){
            // Получение пути к файлу с данными для работы
            await execute_code(`VAR_RESOURCE_INPUT_DATA_PATH =RInfo(\"Файл с данными для работы\",\"Location\")`);
            // Получение директории файла с данными для работы
            await execute_code(`VAR_RESOURCE_INPUT_DATA_DIRECTORY = _path.dirname(VAR_RESOURCE_INPUT_DATA_PATH);`);
            // Подключение к бд
            await execute_code(`SQL_Setup((\"sqlite\"), (\"\"), (\"auto\"), (\"\"), (\"\"), (\"\"), (VAR_DATA_DIRECTORY + \"/data_for_work/database/database.db\"), (\"\"), (300), (\"\"))`);
        }
    
  • @Fox said in Как автоматизировать сам BAS?:

    var thread_number = await BAS_FUNCTION("wrapper", {"n": "thread_number"});

    Да и плюсом такие вызовы вообще не удобные, если есть действие которое я хочу перенести в node js то я просто перекидываю его в node js, декодирую hex и пишу код execute_code, а при таком вызове нужно помнить все аргументы которые вызывает функция обработчик которая отвечает за вызов обычных функций BAS

  • @ilsaazure Я бы вообще не советовал писать скрипт для БАС через встроенный Nodejs, будите большую часть времени искать решение подобных проблем. Кроме того у вас будут проблемы в многопотоке и nodejs может упасть в любой момент, а отладка для такого костыля тоже гемор. Если уж автоматизировать через nodejs то делать это именно в nodejs у бас есть для этого библиотека

  • @usertrue При тестировании через многопоток в басе ни разу не было ошибок с скриптами которые используют такой тип работы, скрипты отлично работают, сейчас копаюсь в функции обновления действий, просто через неё сделаю замену моих вызовов await execute_code на await BAS_API, отпишу по результату, может ты действительно прав и возникнут проблемы

  • @ilsaazure said in Как автоматизировать сам BAS?:

    При тестировании через многопоток в басе ни разу не было ошибок с скриптами которые используют такой тип работы

    У вас все еще впереди, если простые скрипты которые быстро отрабатывают то может проблем и не будет. На тяжелых скриптах которые долго работают будут почти наверняка )) https://github.com/bablosoft/bas-remote-node

  • @usertrue у меня скрипты на ~800 действий и нормально работают

  • @usertrue said in Как автоматизировать сам BAS?:

    https://github.com/bablosoft/bas-remote-node

    то-есть как вариант полностью на node js написать? я BAS использую как раз из-за того-что в нём легко писать логику скриптов, на node js сложно будет сделать всю нужную мне логику

  • @ilsaazure said in Как автоматизировать сам BAS?:

    @usertrue у меня скрипты на ~800 действий и нормально работают

    У меня много раз было, что процесс nodejs падал часов через 5-8 работы

  • @usertrue понял, учту это

  • @ilsaazure said in Как автоматизировать сам BAS?:

    то-есть как вариант полностью на node js написать? я BAS использую как раз из-за того-что в нём легко писать логику скриптов, на node js сложно будет сделать всю нужную мне логику

    Конкретно эта библиотека позволяет запускать пользовательские функции БАС из nodejs. То что вы делает не кажется упрощением, я бы на чистой nodejs + puppeteer написал бы быстрее чем такое делать )

  • @usertrue Но в данном случае ведь нельзя будет зашифровать скрипт и удалённо управлять им, да и puppeter тут ни при чём, я только http клиент баса использую
    конкретно мне для скриптов намного удобней использовать BAS_API

  • @ilsaazure так код в nodejs в БАС тоже открыт, а запросы снифаются. Так что защита от школьников только )

  • @usertrue я же писал что мне node js вызовы нужны только для общих действий, вся важная логика в стандартных функциях BAS, а http у меня использует зашифрованные данные для внешнего tls клиента

  • @ilsaazure said in Как автоматизировать сам BAS?:

    @usertrue я же писал что мне node js вызовы нужны только для общих действий, вся важная логика в стандартных функциях BAS, а http у меня использует зашифрованные данные для внешнего tls клиента

    Так я вам скинул библиотеку которая это и делает, вы можете писать в ней общую логику и вызывать свои функции в БАС, которые будут защищены. Единственный недостаток это нужно сделать интерфейс для скрипта

  • @ilsaazure вместо ноды используй блок выполнить код.