Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.
  • Форумы
  •  » iMacros
  •  » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

№103-05-2017 12:26:23

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 58.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)



iMacros for FireFox - общие вопросы, обсуждение возможностей (Часть 2)



Правила оформления сообщений в данном топике:

1a50e37cd460db106ba5ca4992038a53.jpg


  • Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [ spoiler][ noindex]http://адрес_сайта/название_страницы[ /noindex][ /spoiler]

  • Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [ spoiler][ code]ваш код[ /code][ /spoiler]
    или выложите на сайт «Pastebin».
  • При размещении объемных материалов, используйте тег "Spoiler" - [ spoiler]ваш текст[ /spoiler]
    или выложите на сайт «Pastebin».
  • Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [ spoiler][ img]http://ссылка_на_изображение[ /img][ /spoiler]
    .


«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон

«Не каждый вопрос заслуживает ответа.»
Сайрус


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№80230-09-2018 21:10:53

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 69.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

dvitkovs2

скрытый текст

Выделить код

Код:

alert(iimGetExtract())


скриншот в студию


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№80330-09-2018 21:18:26

dvitkovs2
Участник
 
Группа: Members
Зарегистрирован: 26-07-2018
Сообщений: 9
UA: Chrome 69.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Если делать такой командой:   

скрытый текст

Выделить код

Код:

iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:username CONTENT='+iimGetExtract());


то "имя пользователя" вставляется (хотя и не так как надо, а надо именно через EVENT потому что сайт такой, там без EVENT так как надо imacros не вставит данные)


В общем не понятно. Почему текст из файла не вставляется такой строкой (EVENT):

с EVENT

Выделить код

Код:

iimPlayCode('EVENTS TYPE=KEYPRESS SELECTOR="HTML>BODY>MAIN>HEADER>DIV>DIV:nth-of-type(3)>DIV>DIV:nth-of-type(2)>DIV:nth-of-type(2)>FORM>DIV>DIV>DIV>DIV>INPUT" CHARS="'+iimGetExtract()+'"');


вроде записано правильно, а поле ввода всё равно пустым остаётся

Отредактировано dvitkovs2 (03-10-2018 11:32:17)

Отсутствует

 

№80430-09-2018 21:50:10

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 69.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

dvitkovs2
так по скрину видно что у вас нет текста в iimGetExtract()

Добавлено 30-09-2018 22:07:31
dvitkovs2
приведите кусок кода начиная с импорта данных из файла и заканчивая строкой с event

Добавлено 30-09-2018 22:14:55
dvitkovs2
хотелось бы напомнить что значение iimGetExtract() хранится только до следующего вызова iimPlayCode()
т.е. если вы получили значение через !extract после чего еще раз вызывали iimPlayCode() то после второго вызова - значение iimGetExtract() будет равно булевому false, либо значению переданному через !extract именно в последнем iimPlayCode()
чтобы этого избежать, используйте промежуточную переменную

Добавлено 30-09-2018 22:18:15
для примера:

скрытый текст

Выделить код

Код:

iimPlayCode('set !extract 123')
var result=iimGetExtract()
alert(iimGetExtract()) // выведет 123
iimPlayCode('')
alert(iimGetExtract()) // выведет пустоту
alert(result) // выведет 123

Отредактировано InfSub (30-09-2018 22:18:15)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№80530-09-2018 23:18:51

dvitkovs2
Участник
 
Группа: Members
Зарегистрирован: 26-07-2018
Сообщений: 9
UA: Chrome 69.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

InfSub
Благодарю! Получилось, вставляет текст из файла с такой промежуточной переменной   login=iimGetExtract();

Отсутствует

 

№80606-10-2018 22:08:58

koljan8115
Участник
 
Группа: Members
Зарегистрирован: 18-10-2016
Сообщений: 16
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Здравствуйте! Я давно не использовал расширение iMacros for Firefox, да и не знаток js, так что извините если для кого вопрос буде обыденным.
А теперь собственно к вопросу, имеется код:

скрытый текст

Выделить код

Код:

var macros = '';
var n = '\n';
macros += 'URL GOTO=https://link.na.kran' + n; /*здесь ссылка на кран*/
for (var i = 1; i = 3; i++) { /* здесь я присваиваю начальное значение i=1 с приращением +1, цикл должен был, как я думал, завершиться когда i=3*/
macros += 'TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT::Faucet' + n;
macros += 'WAIT SECONDS=3600' + n;
iimPlayCode(macros);} /*здесь я закрываю тело цикла*/


Когда я закрываю тело цикла вместо того чтобы завершиться на i=3 происходит следующее: 1-й проход как и ожидалось, 2-й раз проходит ссылку и 2 раза тело цикла, 3-й раз проходит ссылку и 3 раза тело цикла, ..., пока не остановишь. Где я ошибся? И возможно-ли запуститть цикл на определённое время, например на 4 часа? Так же интересует возможно-ли через расширение iMacros управлять приложениями в области уведомлений Windows?

Отсутствует

 

№80706-10-2018 22:27:22

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 69.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

koljan8115 пишет

Где я ошибся?

koljan8115 пишет

for (var i = 1; i = 3; i++)

ваше условие (расшифровываю):
при старте цикла присваиваем переменной i значение 1
во всех следующих итерациях (повторениях цикла) у вас выполняются следующие действия: присваиваем переменной i значение 3, проверяем i равно true, результат проверки true (так как переменная не равна false или null, или 0)
обращаю ваше внимание, что в вашем примере, вы проверяете не на равенство чему либо в вашем цикле, а присваиваете значение и потом просто проверяете значение переменной на true/false (собственно, в этом и ошибка)

koljan8115 пишет

возможно-ли запустить цикл на определённое время, например на 4 часа?

да, в начале скрипта, присваиваете переменной, например, переменной start_time - текущее время (в формате timestamp - в миллисекундах), прибавляете к ней 4*60*60*1000 (часы*минуты*секунды*миллисекунды) далее сравниваете текущее время (в миллисекундах) c переменной start_time

koljan8115 пишет

возможно-ли через расширение iMacros управлять приложениями в области уведомлений Windows?

что вы имеете ввиду под приложениями в области уведомлений?
пример работы с внешними приложениями есть в Мини FAQ на нашем форуме, в разделе iMacros (запуск внешней программы с аргументами из js-скрипта)
если приложение умеет работать через командную строку/принимать команды, то скорее всего удастся, что-то с ним сделать через iMacros версии 8.9.7

Отредактировано InfSub (06-10-2018 22:46:23)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№80806-10-2018 22:54:02

koljan8115
Участник
 
Группа: Members
Зарегистрирован: 18-10-2016
Сообщений: 16
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Спасибо за пояснения к коду!
Насчет внешнего приложения имелся OpenVPN. Оно ушло в трей, там его основной функционал. Смысл был в том чтобы переходя на сайты, которые блокирует РосКомНадзор поднималось VPN-соединение, на других же вкладках(которые не блокирует РКН) VPN отключался. Не знаю, возможно только такое или нет?

Отредактировано koljan8115 (06-10-2018 22:55:45)

Отсутствует

 

№80906-10-2018 22:59:26

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 69.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

koljan8115 пишет

OpenVPN

OVPN у вас работает для всего ПК а не для конкретной вкладки в браузере

спойлер про незнание js

koljan8115 пишет

не знаток js

ребят, скоро буду банить за вот такие фразу, вам гугл лень открыть и посмотреть принцип синтаксис записи цикла?
если вы, все же, пришли сюда с подобным вопросом, и с ошибкой уровня 1 урока по js, то не надо писать, подобные фразы, это и так понятно из ваших ошибок и вопросов, после подобной же фразы хочется отправить на уроки по использованию гугла


Добавлено 06-10-2018 23:01:55
koljan8115
в дополнение к предыдущему комменту:
если вы одномоментно работаете либо только с заблоченным сайтом либо с незаблоченным то вы можете либо стартовать OVPN либо убивать его через taskkill или если он позволяет закрывать себя консольно, то через командную строку самого OVPN
собственно где посмотреть как работать с внешними приложениями - ссылку дал выше
также примеры можно посмотреть в теме про капчу, там в примерах скриптов есть вызовы внешних утилит

Отредактировано InfSub (06-10-2018 23:04:28)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№81006-10-2018 23:41:25

koljan8115
Участник
 
Группа: Members
Зарегистрирован: 18-10-2016
Сообщений: 16
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Извиняюсь, я уже понял почему в условии цикла: for (var i = 1; i < 3; i++). Здесь 2 круга т.к. начальное значение i=1, а условие i<3  и значит 2 не приращается; но остаётся вопрос почему не сходится количество "Claim'ов"(нажатий на кнопку).
Прогоняя цикл с условием for (var i = 1; i < 4; i++) видно что в первом кругу 1 клайм, во втором - 2, в третьем - 3, конец цикла, т.е. в сумме 6 клаймов, а не 4. Почему?

Отсутствует

 

№81107-10-2018 01:06:17

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 69.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

koljan8115
что такое клайм и где, собственно, видно, что их стало 3? или вы говорите о том что у вас переменная i стала равна 3?
и что такое 6 и 4? от куда эти значения взялись?
совершенно не понимаю вашей логики.. во всяком случае исходя из приведенного выше кода, в котором присутствует одна переменна i и по условию, данная переменная увеличивается на 1 в каждом цикле - пока условие возвращает true, т.е. в первом цикле i равно 1, во втором i равно 2, в третьем i равно 3, далее цикл прерывается исходя из условия i<4 или i ==3

для справки: раз уж вам лень было погуглить, i равно 3 пишется как i==3 (двойной знак равно - означает равенство, одинарный знак равенства - означает присвоение значения переменной)

Отредактировано InfSub (07-10-2018 01:07:57)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№81207-10-2018 17:49:54

koljan8115
Участник
 
Группа: Members
Зарегистрирован: 18-10-2016
Сообщений: 16
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Клайм, как написано выше - это клик по кнопке "Собрать". Числа немного другие, здесь я изменял код.
Тестировал я на этом коде:

скрытый текст

Выделить код

Код:

var macros = '';
var n = '\n';
macros += 'URL GOTO=http://demo.imacros.net/Automate/TestForm1' + n;
macros += 'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:name CONTENT=цикл' + n;
macros += 'WAIT SECONDS=10' + n;
for ( i = 1; i < 4; i++) {
macros += 'TAG POS=1 TYPE=INPUT:RADIO FORM=ID:demo ATTR=ID:medium' + n;
macros += 'WAIT SECONDS=5' +n;
macros += 'TAG POS=1 TYPE=INPUT:RADIO FORM=ID:demo ATTR=ID:large' + n;
macros += 'WAIT SECONDS=5' + n;
macros += 'TAG POS=1 TYPE=INPUT:RADIO FORM=ID:demo ATTR=ID:small' + n;
macros += 'WAIT SECONDS=7' + n;
iimPlayCode(macros);}


Здесь результат:
скрытый текст
c57e7c5eac2d.pngfcba9ab5374e.png5ce8718c783d.png

Как видно из цикла, насколько я понимаю, он должен был кликнуть по радиокнопке "Small" 3 раза, но вместо этого кликает 6 раз( 1 раз в первом круге, 2 раза во втором круге, 3 раза в третьем круге).

Отсутствует

 

№81307-10-2018 18:13:43

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Как ты скрипт составил так он и работает !!!

У тебя сначала ставит галочку в чекбоксе medium
потом ждёт 5 секунд
потом ставит следующую галочку  large
опять ждёт 5 секунд
потом ставит следующую на small
и опять ждёт 7 секунд

и всё заново, новый цикл :|

так нахрена ты в одном цикле по всем чекбоксам  кликаешь ???
В итоге все равно последняя галочка ставится на small и так и остаётся.


Напиши что ты хочешь, что скрипт делать должен,
и зачем тебе цикл

Отредактировано PRESIDENT (07-10-2018 18:18:25)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№81407-10-2018 18:47:20

koljan8115
Участник
 
Группа: Members
Зарегистрирован: 18-10-2016
Сообщений: 16
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

PRESIDENT, Всё правильно так я и хотел но с одним исключением чтобы кликов по "Small" суммарно было 3 раза за 3 прохода, а не 6 раз за три прохода. Конечно я могу поставить i<3 и тогда цикл выполнится пусть за 2 круга, но сделает 3 клика по "Small". Но проблема в том, что я не могу выставить ни 4 клика ни 5 кликов, так как за 2 круга совершается 3 клика по "Small", а за 3 круга уже 6 кликов.
Почему в одном чекбоксе клики сделаны? Так это для наглядности чтобы не ждать по 1 часу( в последствии хочу цикл использовать на кране).

Добавлено 07-10-2018 18:51:49

PRESIDENT пишет

и всё заново, новый цикл

Почти, только на втором круге делается почему-то всё дважды, а на третьем - трижды, если добавить четвертый круг - то четырежды и тд.
А нужно первый круг единожды(каждое действие), второй круг снова тоже самое единожды, и тд.

Добавлено 07-10-2018 18:56:39
На скринах показано сколько действий делает каждый круг, где видно больше строк - это всё новый круг, каждый скрин это отдельный круг.

Отредактировано koljan8115 (07-10-2018 18:56:39)

Отсутствует

 

№81507-10-2018 19:05:08

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Руки бы повыдергивать за такую писанину :(
macros += ...
тут ты в перемененную macros  добавляешь все новые команды, т.е. к старым добавляются новые.

Пиши нормально и будет работать нормально.



скрытый текст

Выделить код

Код:

iimPlayCode('URL GOTO=http://demo.imacros.net/Automate/TestForm1');
iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:name CONTENT=цикл');
iimPlayCode('WAIT SECONDS=10');

for (i = 1; i < 4; i++){
iimPlayCode('TAG POS=1 TYPE=INPUT:RADIO ATTR=ID:medium');
iimPlayCode('WAIT SECONDS=5');
iimPlayCode('TAG POS=1 TYPE=INPUT:RADIO ATTR=ID:large');
iimPlayCode('WAIT SECONDS=5');
iimPlayCode('TAG POS=1 TYPE=INPUT:RADIO ATTR=ID:small');
iimPlayCode('WAIT SECONDS=7');
}


твой вариант

Выделить код

Код:

var macros = '', n = '\n';
macros += 'URL GOTO=http://demo.imacros.net/Automate/TestForm1' + n;
macros += 'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:name CONTENT=цикл' + n;
macros += 'WAIT SECONDS=10';
iimPlayCode(macros);

for (i = 1; i < 4; i++){
var macros = '';
macros += 'TAG POS=1 TYPE=INPUT:RADIO ATTR=ID:medium' + n;
macros += 'WAIT SECONDS=5' +n;
macros += 'TAG POS=1 TYPE=INPUT:RADIO ATTR=ID:large' + n;
macros += 'WAIT SECONDS=5' + n;
macros += 'TAG POS=1 TYPE=INPUT:RADIO ATTR=ID:small' + n;
macros += 'WAIT SECONDS=7';
iimPlayCode(macros);}

Отредактировано PRESIDENT (07-10-2018 19:13:39)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№81608-10-2018 21:33:21

Герман
Участник
 
Группа: Members
Зарегистрирован: 15-07-2018
Сообщений: 38
UA: Chrome 69.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Здравствуйте! Подскажите как в Javascript, работающем в цикле сделать чтоб включалась команда PAUSE в заданное время, например в 22:38 по времени компьютера?
То есть чтоб результат был аналогичен нажатию кнопки пауза\продолжить в браузере фаерфокс 56 и аймакрос 8.9.7

Вот тут есть один скрипт, который вроде как должен был бы работать, да не работает почему-то. Там простую операцию делает: открывает в цикле одну и ту же страницу сайта. И в заданное время надо чтоб скрипт сделал паузу. А потом в заданное время снова продолжил бы цикл дальше.
Вот сам скрипт:

скрытый текст

Выделить код

Код:

for(a=1; a<99999; a++) { iimDisplay('Номер '+a);

   iimPlayCode('TAB CLOSEALLOTHERS\nCLEAR\nURL GOTO=https://2ip.ru/');
   
function getTime(date){
   
  return date.toLocaleTimeString('en-US', {
    hour12: false,
    hour: "numeric",
    minute: "numeric",
    second: "numeric"
  });
}
 
var createDate = function(time){
  return new Date('01.01.2000' + time);
}
 
var loop = {
  act: true,
  doNotPlay: [
    { from: createDate('13:33:00'), to: createDate('13:34:00') },
    { from: createDate('13:45:00'), to: createDate('13:46:00') },
  ],
  start : function() {
    // проверка на то что текущая дата между датами
    window.setInterval(function(){
      this.act = this.doNotPlay.every(function(dates){
        var currentDate = createDate(getTime(new Date()));
        if (dates.to - currentDate < dates.to - dates.from && dates.to - currentDate > 0) {
          return false;
        } else return true;
      });
    }, 1000);
 
    // job
    window.setInterval(function(){
       if (this.act) {
         iimPlayCode('TAB CLOSEALLOTHERS\nCLEAR\nURL GOTO=https://2ip.ru/');
         iimPlayCode('PAUSE');
       }
      this.act && console.log('action: ' + new Date().toString());
    }, 1000);
  }
};
loop.start();


}


Подскажите, может вообще-то есть какой-то другой, более простой способ, более простой скрипт (код), который бы выполнял подобную задачу, делать паузы в заданное время?

Отредактировано Герман (16-10-2018 23:21:45)

Отсутствует

 

№81709-10-2018 00:22:46

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 69.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Герман пишет

да не работает почему-то

ох уж эти горе программисты, все бы им в цикл запихнуть, и инициализацию функции, и setInterval ....

Герман пишет

может вообще-то есть какой-то другой, более простой способ, более простой скрипт (код), который бы выполнял подобную задачу, делать паузы в заданное время?

есть - пишется за 5 минут - час, в зависимости от знаний и умения гулить
принцип такого скрипта - описан несколькими постами выше


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№81814-10-2018 23:14:28

Герман
Участник
 
Группа: Members
Зарегистрирован: 15-07-2018
Сообщений: 38
UA: Chrome 69.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

InfSub пишет

есть - пишется за 5 минут - час, в зависимости от знаний

не, ну за 5 минут и даже за час, это вы явно преувеличили! Я тут уже несколько дней не могу состряпать такой скрипт, чтоб паузу делал в заданное время :(

Добавлено 14-10-2018 23:16:38
Понял только что всё в кучу пихать в цикл не надо. Это грубейшая ошибка, и так не бывает. Надо как-то иначе, по отдельности (типа мухи отдельно, коклеты отдельно)..

Отредактировано Герман (14-10-2018 23:16:38)

Отсутствует

 

№81915-10-2018 07:46:14

udalov
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 19-11-2014
Сообщений: 184
UA: Firefox 27.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Герман пишет

скрипт, чтоб паузу делал в заданное время

Могу предложить костыль: перед запуском скрипта вручную высчитывате количество секунд до нужного для паузы времени и перед командой PAUSE вставляете команду WAIT SECONDS=хххтутКоличествоСекундДоПаузы

Отсутствует

 

№82015-10-2018 22:29:17

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 69.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

udalov
а зачем пауза?
либо пауза либо вайт секондс

Добавлено 15-10-2018 22:58:13

Герман пишет

это вы явно преувеличили!

хотите сказать 4 строчки текста пишутся больше? даже с учетом гугла?

вот простейший вариант без проверок на то что время уже прошло и надо увеличить дату:

скрытый текст

Выделить код

Код:

var r=prompt('Остановить в, (чч:мм):').split(':');
var date = new Date();
var stop = +new Date(date.getFullYear(),date.getMonth(),date.getDate(),r[0],r[1]);
if(Date.now()>=stop){iimPlayCode('pause');};


писалось 10 минут с учетом того, что давно с объектом Date() не работал и надо было подсмотреть его методы + плюс потестить

Отредактировано InfSub (15-10-2018 22:58:13)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№82115-10-2018 23:04:54

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 69.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

или вообще можно в 1 строчку, но скрипт править каждый раз придется:

скрытый текст

Выделить код

Код:

if(Date.now()>=+new Date(2018,09,15,23,10)){iimPlayCode('pause');};


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№82216-10-2018 18:22:51

dim222
Участник
 
Группа: Members
Зарегистрирован: 06-03-2016
Сообщений: 423
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Уважаемые знатоки !!! Стоит вопрос мониторинга ботов удаленно. Т.е. мониторить стату ботов в любое время и месте.
Как проще это реализовать? Кроме как веб-сокеты , ни чего в голову не приходит.

Отсутствует

 

№82316-10-2018 20:17:45

Squatter
Участник
 
Группа: Members
Зарегистрирован: 11-05-2017
Сообщений: 123
UA: Chrome 64.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

dim222 Удаленный доступ к рабочему столу? Закинуть ботов на VPSку?
Логировать работу ботов на удалённый сервер?
Можно и без WebSocket посылать данные обычными XMLHttpRequest и fetch запросами в обход браузерных кроссдоменных ограничений.

Отсутствует

 

№82416-10-2018 23:28:20

Герман
Участник
 
Группа: Members
Зарегистрирован: 15-07-2018
Сообщений: 38
UA: Chrome 69.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

InfSub пишет

вот простейший вариант без проверок на то что время уже прошло и надо увеличить дату

удалено избыточное цитирование
Спасибо огромное! :) Это уже хорошо, что скрипт на паузу может поставить в заданное время. Хотя вообще-то надо чтоб скрипт не только на паузу ставил в назначенное время, но и потом "нажимал продолжить" тоже в назначенное время. И так несколько раз, сколько требуется.
Вот хороший кусок кода:

скрытый текст

Выделить код

Код:

function getTime(date){
   
  return date.toLocaleTimeString('en-US', {
    hour12: false,
    hour: "numeric",
    minute: "numeric",
    second: "numeric"
  });
}
 
var createDate = function(time){
  return new Date('01.01.2000' + time);
}
 
var loop = {
  act: true,
  doNotPlay: [
    { from: createDate('13:33:00'), to: createDate('13:34:00') },
    { from: createDate('13:45:00'), to: createDate('13:46:00') },
  ],
  start : function() {
    // проверка на то что текущая дата между датами
    window.setInterval(function(){
      this.act = this.doNotPlay.every(function(dates){
        var currentDate = createDate(getTime(new Date()));
        if (dates.to - currentDate < dates.to - dates.from && dates.to - currentDate > 0) {
          return false;
        } else return true;
      });
    }, 1000);
 
    // job
    window.setInterval(function(){
       if (this.act) {
         iimPlayCode('TAB CLOSEALLOTHERS\nCLEAR\nURL GOTO=адрес');
         iimPlayCode('PAUSE');
       }
      this.act && console.log('action: ' + new Date().toString());
    }, 1000);
  }
};
loop.start();


правда не доведен до ума. А так в нём есть очень хорошая функция, типа будильника\таймера по установленному времени:

скрытый текст

Выделить код

Код:

{ from: createDate('13:33:00'), to: createDate('13:34:00') },
{ from: createDate('13:45:00'), to: createDate('13:46:00') },


то есть таким образом можно задать столько таймеров\будильников сколько надо. И они будут в назначенное время ставить скрипт на паузу и в нужное время снова возобновлять работу. Вот если б так реализовать, вернее довести этот код до ума, было бы вообще супер!
Ну благодарю что показали простейший вариант кода для паузы. Но я все равно буду пытаться реализовать вариант скрипта, код которого я тут выложил. Мне кажется сам код в принципе рабочий, только надо что-то подправить. Что именно пока не знаю, но думаю загвоздка может быть тут:
скрытый текст
7yBLYD

то есть когда запускаю скрипт, то происходит переход по указанному адресу и потом пауза и всё, стоит на паузе. Явно в этих строчках косяк. Как-то иначе должно быть записана эта часть скрипта? :(

InfSub

Отредактировано Герман (16-10-2018 23:31:55)

Отсутствует

 

№82517-10-2018 03:09:10

dim222
Участник
 
Группа: Members
Зарегистрирован: 06-03-2016
Сообщений: 423
UA: Firefox 62.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Squatter пишет

Можно и без WebSocket посылать данные обычными XMLHttpRequest и fetch запросами в обход браузерных кроссдоменных ограничений.

Ok! Допустим каждый бот посылает данные на сервер в формате .json.
Но как(чем) их обработать и вставить в нужные div-ы тяму васче не хватает. При этом обновление должно происходить в реальном времени.

Отсутствует

 

№82617-10-2018 04:32:07

Squatter
Участник
 
Группа: Members
Зарегистрирован: 11-05-2017
Сообщений: 123
UA: Chrome 64.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

dim222 Можно на php принять и обработать.
Самое простое - закидываем на любой шаред два файла.

Пустой log.txt, куда будет писаться лог

и какой-нибудь

recording_log.php в кодировке UTF-8 без BOM следующего содержимого

скрытый текст

Выделить код

Код:

<?php
#Принимаем входные данные JSON
$json_str = file_get_contents('php://input');
#Декодируем json в объект
$obj = json_decode($json_str);
#Дальше можно циклом foreach() перебрать объект или как ниже по ключам выбирать из объекта параметры нужные для логирования
#Собираем в переменную $text нужные параметры объекта для сохранения (конкатенация в php идёт через точку)
$text = $obj["key1"] . "\n" . $obj["key2"] . "\n" . $obj["key3"] . "\n";
$text .= str_repeat("=", 50);//Прибавляем разделитель для украшательства
$text .= date('Y-m-d H:i:s') . "\n";//Прибавляем текущую дату и время если нужно
#Открываем файл куда логируем действия
$file = fopen("log.txt", "a");
#Записываем в файл содержимое переменной $text
fwrite($file, $text);
fclose($file);//Закрываем файл
?>


И посылаем аяксом JSON на этот файлик recording_log.php

Вывести значение или информацию о переменной можно
var_dump($var);
или
echo print_r($var);

Можно логировать сразу в БД и кошерно выводить в виде динамической странички, для этого знакомьтесь с SQL языком запросов.
Можно разбить на несколько логов(для каждого бота свой) и идентифицировать каждого бота по кукисам или URL параметрам.
Вариантов много. ;)

Отредактировано Squatter (17-10-2018 04:33:23)

Отсутствует

 
  • Форумы
  •  » iMacros
  •  » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]