Лайфхаки BAS



  • Цветной лог в новом интерфейсе

    $("#Logs").prepend("<div><span style='color:blue'>Текст</span></div>");
    $("#Logs").prepend("<div><span style='color:blue'>Тест [[NEW_VARIABLE]]</span></div>");
    

    0_1529321257202_Screenshot_3.png



  • запущенная локализация проекта

    VAR_LANG = _K
    


  • Спасибо @support`y выручает всегда когда нужно
    Объяснил и показал как выводит результаты в новом интерфейсе без скачивания
    Я сделал чтоб выводил в спойлер вот html/css/js
    Результаты.txt
    0_1529606682647_1.gif



  • У многих начинающих пользователей возникают трудности с json. А именно с тем, чтобы правильно построить путь к нужному значению. В этом может помочь очень удобный плагин для Notepad++ JSONViewer Да и продвинутым пользователям он поможет сильно с экономить время!0_1530128716932_2018-06-28_015846.png


  • administrators

    Добавлю немного описания, чем же удобен этот плагин для работы с json. В нём можно выбрать нужный элемент, и внизу появится готовый код, который можно вставить в JSON.parse()
    0_1530136182548_2.png



  • This post is deleted!


  • Добавлена информация о TSV файлах (пункт 9).


  • administrators

    Долго думал в какой ветке выложить этот пост, решил, что ему в Лайфхаках будет самое место. Опишу весь процесс, возможно кому нибудь пригодится промежуточный этап.


    Обратились тут ко мне в личку с нестандартным вопросом, можно ли менять количество потоков в зависимости от условий значений ресурсов. (без "вызова функции в несколько потоков")

    {{test_res}} == "хочу два потока" //запускается 2 потока
    или
    {{test_res}} == "хочу пять потоков" //запускается 5 потоков
    

    Я ответил, что так делать нельзя, но это не совсем так :D


    Чтобы запустить скрипт с количеством потоков равном количеству ресурсов, надо в графе "количество потоков" прописать

    RMap("name").length()
    

    где name это имя ресурса.
    Если ресурс "из файла" то количество потоков будет равно количеству строк в файле, если ресурс "из папки" то количеству файлов в папке и тому подобное.


    После получаса извращенных экспериментов с BAS'ом (да простит меня @support)

    10-5 //сработал
    (2+2)*2 //сработал выдал 8 потоков
    a=10;b=5;a-b //не сработал
    2+2; //не сработал
    2+2*2 //сработал, выдал 6 потоков.. может через евал?
    eval(2+2) //сработал! опа! 
    eval(if(10-5 > 1) {2}) //не сработал
    eval(if(10-5 > 0) {10-8}) //тоже не сработал :(
    eval(a=10;b=5;a-b) //не сработал
    eval("a=10;b=5;a-b") //!! сработало !! :D
    eval("if(10-5 > 1) {2}") //Лол! Сработало :)
    eval("(10-5 > 10) ? 2 : 5") //тоже сработало! Прикольно :)) Вот тебе и иф :))
    eval("{{test}} == 'test' ? 2:5") //не сработало :(
    eval({{test}} + "== 'test' ? 2:5") //тоже не сработало :(
    eval('(10-5 > 10) ? 2 : 5') //сработало..
    

    Пришёл к выводу, что надо применять тот же способ работы с ресурсом, что и в коде проекта

    RS("test", false, false)!
    RESOURCE_1 = _result().get()
    log(RESOURCE_1)
    

    В самом начале скрипта прописал получение значения из ресурса и всё заработало:

    RS("test", false, false)!
    RESOURCE_2 = _result().get()
    section(eval("RESOURCE_2 == 'test' ? 2:5") /*eval("RESOURCE_2 == 'test' ? 2:5")*/,1 /*1*/,1 /*1*/,0,function(){
    

    0_1537265715472_1ff864f2-8db6-48c5-b35b-150379c648a2-изображение.png
    0_1537265939090_на форум34.gif
    Вот тестовый скрипт


    Пока печатал пост подумал, что можно через RMap решить эту задачу без правки руками кода проекта.

    Количество потоков:

    eval("RMap('toster').at(0) == 'tost' ? 2:5")
    

    0_1537266871662_на форум35.gif
    Вот скрипт без ручной правки кода.


    Данным способом можно ставить практически любые условия и менять количество потоков в зависимости от них.


  • administrators

    Как подсказал @Denis_krsk можно и без eval() :D

    RMap('toster').at(0) == 'tost' ? 2 : 5
    


  • Возможно совсем для новичков, но все же. Для уменьшения количества итоговых действий в скрипте ( когда все отлажено ), можно пойти таким путем.
    Кликаем для редактирования простого действия(работа с xpath,регулярками,рэндомом,датой и тд) и копируем его id
    0_1538592756687_Screenshot_1.png
    далее переходим сюда
    0_1538591780990_Screenshot_3.png
    нажимаем ctrl+f и вставляем наш id (команда для вставки ctrl+v)
    Видим такой текст
    0_1538592910174_Screenshot_2.png
    нас интересует только все что после section_start и зелёных надписей до section_end
    вставляем этот текст в
    0_1538592021865_Screenshot_6.png
    и таким же образом поступаем с остальными не сложными действиями. Соответсвенно добавляя ВСЕ эти действия в один код.
    Итог : количество (элементарных) действий уменьшилось, читаемость повысилась


  • administrators

    Не скажу, кто именно, но кто то на форуме спросил :D
    0_1540930262180_c213a8fd-bcff-46ae-aa49-01bc2ab81433-изображение.png

    И я начал смотреть разные gui, для себя нашёл очень интересную nwjs, но о ней в следующий раз. А потом вспомнил, что есть более простые решения этой задачи на VBScript.

    Код VBS скрипта :

    result = MsgBox ("Fox is a great forum admin?", vbYesNo, "Yes or No?")
    
    Select Case result
    Case vbYes
        WScript.Echo("yes")
    Case vbNo
        WScript.Echo("no")
    End Select
    

    и код действия "Запустить Процесс":

    @echo off
    @ cscript //Nologo Fox.vbs
    

    0_1540930769732_на форум 7.gif


    0_1540930782118_на форум 8.gif

    Вот тестовый скрипт для наглядности.