Как можно сделать проверку на время?



  • Всех приветствую! Есть простой js

    function lg() {
        document.querySelector("#checkout > div.buttonContainer > button").click();
    }
    
    function doCheck() {
        const now = new Date();
        if (now.getHours() !== 12) { // часы
        timeout(5);
        } 
        else {
        if (now.getMinutes() !== 59) { // минуты
        timeout(5);
        } 
        else {
        if (now.getSeconds() !== 55) { // секунды
        timeout(5);
        } 
        else {
        setTimeout(lg, 500); // Задержка на выполнение скрипта в мс
        }
        }
        }
        }
        
    function timeout(ms = 1) {
        setTimeout(() => {
        doCheck();
        }, ms);
        }
        
    doCheck();
    

    Раньше я вставлял его в консоль на сайте через F12, и в заданное время он прожимал кнопку на сайте. Сравнивал скрипт заданное время со временем на пк. Как можно реализовать это в BAS? Тк когда я ввожу этот скрипт в "Выполнить код"
    Выдает ошибку синтаксиса, заранее всем спасибо!
    PS: Fox, надеюсь в этот раз я туда написал?)



  • @sidorikv said in Как можно сделать проверку на время?:

    "Выполнить код"

    Этот код выполняется не в контексте браузера, а в самом БАС. Чтобы выполнить код в браузере, есть действие яваскрипт.
    PS: это действие приводит код к строке, поэтому лучше везде ставить ; - точку с запятой (везде где могут быть проблемы)

    Только не понятно зачем вам БАС )



  • @UserTrue Хорошо, я объясню. Стоит задача на, к примеру, 15 потоков нажать на одну кнопку на сайте в определенное заданное время.
    1 поток = 14:59:59:000
    2 поток = 14:59:59:050
    И так далее.
    Вот как это можно реализовать именно в BAS?
    Тк БАС очень удобен и крайне хорошо подходит для моей задачи:)



  • @sidorikv В цикле проверяйте время и кликайте, если условие совпадает, но точности до секунды не факт, что получится достичь



  • Стандартными средствами БАС путем создания соответсвующих элементов через меню "Дата и время". Щелкаем на кнопку "Дата сейчас" и БАС запишет в переменную текущее время выставленное на компе. Затем с помощью соответствующих действий можно посчитать разницу между датами.



  • @UserTrue в том то и мем, что клик должен быть идеальный, именно в заданное время, Ну +- 50 мс



  • @sidorikv said in Как можно сделать проверку на время?:

    @UserTrue в том то и мем, что клик должен быть идеальный, именно в заданное время, Ну +- 50 мс

    Тогда юзайте, свой код



  • @UserTrue так он не работает почему то, а вот почему я хз



  • @sidorikv said in Как можно сделать проверку на время?:

    @UserTrue так он не работает почему то, а вот почему я хз

    Я же в пером своем сообщение ответил



  • @UserTrue ошибку синтаксиса выдает, если я просто вставляю js код в "Выполнить яваскрипт"



  • @sidorikv ааааа
    2020-10-03_223324.png



  • @UserTrue я понимаю, вы знаток, я нет, дундук в этом плане:D
    Я сюда нажимаю, дальше, копирую свой скрипт ( который я обычно вставляю в консоль браузера ) в поле "Текст сценария "

    function lg() {     document.querySelector("#checkout > div.buttonContainer > button").click(); }  function doCheck() {     const now = new Date();     if (now.getHours() !== 18) {     timeout(5);     }      else {     if (now.getMinutes() !==  10) {     timeout(5);     }      else {     if (now.getSeconds() !== 00) {     timeout(5);     }      else {     setTimeout(lg, 1);     }     }     }     }      function timeout(ms = 1) {     setTimeout(() => {     doCheck();     }, ms);     }      doCheck();
    

    Тип стоит string, но в заданное время ничего не происходит



  • @UserTrue а если меняю на expression, то ошибку синтаксиса выдает



  • @UserTrue так, у меня все сработало, мешали комментарии, спасибо, и извините за деревянность


Log in to reply