Показаны сообщения с ярлыком iMacros. Показать все сообщения
Показаны сообщения с ярлыком iMacros. Показать все сообщения

Скачать iMacros 8.9.7 с официального сайта

Давно уже вышли новые версии аймакроса, но они не интересны совсем, так там вырезали яваскрипт и в бесплатной версии можно использовать только 50 строк для написания кода или записи макроса. А актуальная версия с работой яваскрипта - это 8.9.7. И скачать ее с сайта дополнений мозиллы сейчас нельзя. Но можно скачать iMacros 8.9.7 с официального сайта, перейдя в старые версии iMacros. 8.9.7 - это версия одна из последних - более ранних уже нет. Скорее всего скоро и ее не будет, но ссылку я оставлю. http://download.imacros.net/imacros_for_firefox-8.9.7-fx.xpi 

На эту ссылку можно прийти с сайта дополнения мозиллы, нажал на архивные (старые) версии imacros. https://addons.mozilla.org/ru/firefox/addon/imacros-for-firefox/versions/?page=1#version-8.9.7 Ниже найдите строчку "Click here for legacy versions (iMacros 9.0.3 and older)." и нажмите на ссылку here.

Так же необходимо знать вот это: "Please note that iMacros version 8.9.7 will work with Firefox 48 and later if multi process (e10s) is disabled."

Думаю, разберетесь с этой инфой самостоятельно, если что, - переводчик в помощь:

"If e10s is disabled for your Firefox, don’t worry!  you can still enable it manually,

Manually enabling e10s in Firefox 48 if disabled by default

1. Visit about:config and set browser.tabs.remote.autostart preference value to true. If it was already set to true, no need to make any changes.

2. Now create a new boolean preference named ‘browser.tabs.remote.force-enable’ and set its value to true. if you’ve any accessibility tools installed, change accessibility.force_disabled preference value to false 1 from 0.

Now restart the browser, visit about:support, you’ll notice 1/1 (Enabled by User) for Multiprocess Windows line item."


Скрипт freebitcoin, скрипт фрибиткоин со статистикой и Джекпотом для ручного режима

Сама идея создания такого скрипта - не моя. Скрипт freebitcoin просили написать и для интереса он был написан. Сама идея взята с какой то там Нинзя-стартегии, но по сути она не нова. Просто ловим серию подряд идущих проигрышей и ставим ставки на них, только используя разные ODDS. Подобные скрипт на серию подряд идущих проигрышей, после которой идет удвоение ставок, я писал уже давно, но только под ODDS 2.
Да, скрипт  работает и на нем можно аккуратно щелкать биткоины. Ключевое слово Аккуратно! Потому что, freebitcon иногда залупается и не дает нужные числа, до тех пор пока вы не сольетесь - он так и ждет, чтобы вы поставили большую ставку. Нужно чувствовать такие моменты и спрыгивать с затяжной серии, делать для себя ограничение не ставки и ограничение по балансу.
В сам скрипт фрибиткоин добавлены новые ODDS 110, 220, 470 - правда фрибиткоин корректирует их, но это не особо важно. Так же по просьбам в комментариях добавил счет Джекпота, то есть выпадения числа 8888. Написал только логически, а на практике нужно тестировать - бывают и ошибки. Поэтому нужно проверять, но подсчет ведется.
Сам скрипт выкладываю сюда.
Для начала нужно создать файл, в котором будет уже 3 строки, и заполнить его следующим образом, так как на картинке через точку с запятой, только вместо чисел для обнуления статистики, нужно заполнить все нулями. Я же выкладываю скрин своей статистики.
Чисел должно быть столько, сколько на скрине, можно и больше, они не буду учитываться, но меньше нельзя - выйдет ошибка. Для обнуления - все заполнить нулями вместо моих чисел.
Данный файл text.txt разместить на диск D:\
Первая строка - это текущие ставки, то есть подсчет серий проигрышных ставок.
Вторая строка состоит из уже выпавших за всю историю игры максимальные серии ставок. И если текущие серии превысят максимальные ставки, то максимальные ставки обновятся.
Ну а в третьей строке содержится число - сколько раз не выпало число 8888, то есть джекпот. И как только он выпадет, первое число обнулится, а второе - это максимальная серия не выпадения 8888.
Не забываем, что скрипт написан под аймакрос 8.9.7 - никаких консолей - там работать не будет. Я не пишу скрипты для консолей.
Сам скрипт фрибиткоин со статистикой и Джекпотом для ручного режима:
function readExt(filename){return imns.FIO.readTextFile(imns.FIO.openNode(filename))}
function writeExt(filename, cont){imns.FIO.writeTextFile(imns.FIO.openNode(filename),cont)}
var t = readExt('D:\\text.txt');
var str1,str2,str3,strf1,strf2,strf3,txtw,num,hi2,lo2,hi6,lo6,hi10,lo10,hi48,lo48,hi78,lo78,hi94,lo94,hi110,lo110,hi220,lo220,hi470,lo470,dp,mdp;
var mhi2,mlo2,mhi6,mlo6,mhi10,mlo10,mhi48,mlo48,mhi78,mlo78,mhi94,mlo94,mhi110,mlo110,mhi220,mlo220,mhi470,mlo470;
var masline=t.split('\n');
var mas1=masline[0].split(';');
var mas2=masline[1].split(';');
var mas3=masline[2].split(';');
dp=parseInt(mas3[0]);mdp=parseInt(mas3[1]);//dgekpot
hi2=parseInt(mas1[0]);lo2=parseInt(mas1[1]);
hi6=parseInt(mas1[2]);lo6=parseInt(mas1[3]);
hi10=parseInt(mas1[4]);lo10=parseInt(mas1[5]);
hi48=parseInt(mas1[6]);lo48=parseInt(mas1[7]);
hi78=parseInt(mas1[8]);lo78=parseInt(mas1[9]);
hi94=parseInt(mas1[10]);lo94=parseInt(mas1[11]);
hi110=parseInt(mas1[12]);lo110=parseInt(mas1[13]);
hi220=parseInt(mas1[14]);lo220=parseInt(mas1[15]);
hi470=parseInt(mas1[16]);lo470=parseInt(mas1[17]);
//-----------------------
mhi2=parseInt(mas2[0]);mlo2=parseInt(mas2[1]);
mhi6=parseInt(mas2[2]);mlo6=parseInt(mas2[3]);
mhi10=parseInt(mas2[4]);mlo10=parseInt(mas2[5]);
mhi48=parseInt(mas2[6]);mlo48=parseInt(mas2[7]);
mhi78=parseInt(mas2[8]);mlo78=parseInt(mas2[9]);
mhi94=parseInt(mas2[10]);mlo94=parseInt(mas2[11]);
mhi110=parseInt(mas2[12]);mlo110=parseInt(mas2[13]);
mhi220=parseInt(mas2[14]);mlo220=parseInt(mas2[15]);
mhi470=parseInt(mas2[16]);mlo470=parseInt(mas2[17]);


while (true) {
txtw=content.document.getElementsByClassName('large-1 small-1 columns center lottery_winner_table_box lottery_winner_table_second_cell')[6].innerHTML;
content.document.getElementsByClassName('large-1 small-1 columns center lottery_winner_table_box lottery_winner_table_second_cell')[6].innerHTML='';
if (txtw!='') content.document.getElementsByClassName('large-1 small-1 columns center lottery_winner_table_box lottery_winner_table_second_cell')[4].innerHTML=txtw;
num=parseInt(txtw);

if (num>5250) {lo2++;hi2=0;}
if (num<4750) {hi2++;lo2=0;}
if (num>=4750 && num<=5250) {lo2++;hi2++;}//zero

if (num>8417) {lo6++;hi6=0;}
if (num<1583) {hi6++;lo6=0;}
if (num>1583 && num<8417) {lo6++;hi6++;}//zero

if (num>9050) {lo10++;hi10=0;}
if (num<950) {hi10++;lo10=0;}
if (num>950 && num<9050) {lo10++;hi10++;}//zero

if (num>9802) {lo48++;hi48=0;}
if (num<198) {hi48++;lo48=0;}
if (num>198 && num<9802) {lo48++;hi48++;}//zero

if (num>9878) {lo78++;hi78=0;}
if (num<122) {hi78++;lo78=0;}
if (num>122 && num<9878) {lo78++;hi78++;}//zero

if (num>9899) {lo94++;hi94=0;}
if (num<101) {hi94++;lo94=0;}
if (num>=101 && num<=9899) {lo94++;hi94++;}//zero

if (num>9914) {lo110++;hi110=0;}
if (num<86) {hi110++;lo110=0;}
if (num>=86 && num<=9914) {lo110++;hi110++;}//zero

if (num>9957) {lo220++;hi220=0;}
if (num<43) {hi220++;lo220=0;}
if (num>=43 && num<=9957) {lo220++;hi220++;}//zero

if (num>9980) {lo470++;hi470=0;}
if (num<20) {hi470++;lo470=0;}
if (num>=20 && num<=9980) {lo470++;hi470++;}//zero

if (num>0) {if (num!=8888) dp++; else dp=0;}
if (dp>mdp) mdp=dp;
//maksimalnie znachenia
if (hi2>mhi2) mhi2=hi2;
if (lo2>mlo2) mlo2=lo2;
if (hi6>mhi6) mhi6=hi6;
if (lo6>mlo6) mlo6=lo6;
if (hi10>mhi10) mhi10=hi10;
if (lo10>mlo10) mlo10=lo10;
if (hi48>mhi48) mhi48=hi48;
if (lo48>mlo48) mlo48=lo48;
if (hi78>mhi78) mhi78=hi78;
if (lo78>mlo78) mlo78=lo78;
if (hi94>mhi94) mhi94=hi94;
if (lo94>mlo94) mlo94=lo94;
if (hi110>mhi110) mhi110=hi110;
if (lo110>mlo110) mlo110=lo110;
if (hi220>mhi220) mhi220=hi220;
if (lo220>mlo220) mlo220=lo220;
if (hi470>mhi470) mhi470=hi470;
if (lo470>mlo470) mlo470=lo470;

str1='2: '+'H: '+hi2+' '+'L: '+lo2+'<br>'+'6: '+'H: '+hi6+' '+'L: '+lo6+'<br>'+'10: '+'H: '+hi10+' '+'L: '+lo10+'<br>'+'48: '+'H: '+hi48+' '+'L: '+lo48+'<br>'+'78: '+'H: '+hi78+' '+'L: '+lo78+'<br>'+'94: '+'H: '+hi94+' '+'L: '+lo94+'<br>'+'110: '+'H: '+hi110+' '+'L: '+lo110+'<br>'+'220: '+'H: '+hi220+' '+'L: '+lo220+'<br>'+'470: '+'H: '+hi470+' '+'L: '+lo470+'\n';
str2='<hr>'+'2: '+'H: '+mhi2+' '+'L: '+mlo2+'<br>'+'6: '+'H: '+mhi6+' '+'L: '+mlo6+'<br>'+'10: '+'H: '+mhi10+' '+'L: '+mlo10+'<br>'+'48: '+'H: '+mhi48+' '+'L: '+mlo48+'<br>'+'78: '+'H: '+mhi78+' '+'L: '+mlo78+'<br>'+'94: '+'H: '+mhi94+' '+'L: '+mlo94+'<br>'+'110: '+'H: '+mhi110+' '+'L: '+mlo110+'<br>'+'220: '+'H: '+mhi220+' '+'L: '+mlo220+'<br>'+'470: '+'H: '+mhi470+' '+'L: '+mlo470+'\n';
str3='<hr>'+'dp: '+dp+'<br>'+'mdp: '+mdp;
content.document.getElementById('double_your_btc_right_section').innerHTML='<font size="5">'+str1+str2+str3+'</font>';
strf1=hi2+';'+lo2+';'+hi6+';'+lo6+';'+hi10+';'+lo10+';'+hi48+';'+lo48+';'+hi78+';'+lo78+';'+hi94+';'+lo94+';'+hi110+';'+lo110+';'+hi220+';'+lo220+';'+hi470+';'+lo470;
strf2='\r\n'+mhi2+';'+mlo2+';'+mhi6+';'+mlo6+';'+mhi10+';'+mlo10+';'+mhi48+';'+mlo48+';'+mhi78+';'+mlo78+';'+mhi94+';'+mlo94+';'+mhi110+';'+mlo110+';'+mhi220+';'+mlo220+';'+mhi470+';'+mlo470;
strf3='\r\n'+dp+';'+mdp;
writeExt('D:\\text.txt', strf1+strf2+strf3);
//iimDisplay('hi2: '+hi2+' '+'lo2: '+lo2+'   '+'hi6: '+hi6+' '+'lo6: '+lo6+'\n'+'hi10: '+hi10+' '+'lo10: '+lo10+'   '+'hi48: '+hi48+' '+'lo48: '+lo48+'\n'+'hi78: '+hi78+' '+'lo78: '+lo78+'   '+'hi94: '+hi94+' '+'lo94: '+lo94+'\n');
iimPlayCode('WAIT SECONDS=1');
}

Так же скрипт перемещает выпавшие числа в соседнее поле для наглядности, то есть теперь можно наблюдать за выпавшими числами и они не исчезают бесследно, как раньше.
Если вам понравился скрипт - напишите любой комментарий, иначе новых скриптов не будет!

Функции для макросов Freebitco.in и примеры циклов и условий выхода из них.

Давайте начнем с простого макроса, который ставит ставку. Эту строчку можно получить сделав запись макроса и вбив в ставку на сайте freebitco.in.
Сразу скажу, что выиграть на подобных сайтах практически не возможно, если только играть малыми ставками и не жадничать, не пытаться отыграться если проиграли и т.п. Как только вы будете пытаться отыграться, то начнете играть на удвоение и ставки быстро возрастут - и вы проиграете.
Теперь еще хотелось бы подчеркнуть про серию подряд идущих проигрышей. К примеру, мы поставили шанс выигрыша 50 на 50, то на фрибиткоине это WIN CHANCE=47,5%.
Ставим ставку на HI и играем. Какова вероятность выигрыша? - Правильно - 50%.
Теперь мы ставит 2 раза на HI и два раза проиграли. Если мы снова поставим на HI - какова вероятность выиграть? - Правильно - 50%.
Теперь мы 10 раз подряд проиграли на HI. И решили снова поставить на HI - какова вероятность выиграть после 10 подряд идущих проигрышей? - Правильно! - она не меняется - это все те же 50%. То есть не важно какова длина серии проигрышей - вероятность выиграть в следующей ставке не меняется. Это теория вероятности и с ней не поспорить. Поэтому мысль, что можно выиграть после серии проигрышей - она мифична, она ложна.

Это все к тому, что я против таких игр, - вероятность проиграть, кстати здесь больше, чем выиграть - об этом говорит заложенный на сайт WIN CHANCE=47.5%. Это не 50%. Проигрыш, как говорил ранее, заложен здесь изначально. Хоть и фрибиткоин не лохотрон, но ставлю ему ярлык лохотрона.

Если вы еще не передумали играть, то возвращаемся к нашей строчке макроса, которая ставит нам ставку.
TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:stake CONTENT=0.00000005
Если мы эту строчку впишем в макрос iim и запустим ее на открытом сайте фрибиткоин мультиплее, то макрос впишет нам эту ставку.
Соответственно, чтобы эта строчка заработала в яваскрипт макросе, то нужно вписать ее в iimPlayCode():
iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:stake CONTENT=0.00000005');
Расширение макроса должно быть уже не iim, а js. Результат запуска будет тем же - то есть впишется ставка 0.00000005 и все.
Теперь из этого можно сделать функцию прописывания ставок:
function stavka(n) {
iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:stake CONTENT='+n);
}


Теперь можно пользоваться готовой функцией и легко прописывать нужные ставки, для этого достаточно вызвать ее с нужной ставкой:
stavka(0.00000007);//пропишет 7 сатош
То есть пользоваться удобно и вызывать ее можно сколько угодно. Мы ее будем использовать для следующих функций, которые уже будут ставить ставки и играть и проигрывать выигрывать.
Таким образом можно записывать макрос, брать с него код, переводить в ява скрипт и собирать его в готовый блок в видео функции.

Теперь перейдем к функции hi(n); которая прописывает ставку n и жмет на кнопку HI.
function hi(n) {//ставит n сатош, жмет на кнопку HI и возвращает результат
stavka(n);
iimPlayCode("TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI");
while (true) {
iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI EXTRACT=HTM');
if (iimGetLastExtract().indexOf('disabled')<0) break;iimPlayCode('WAIT SECONDS=1');}
iimPlayCode('SET !EXTRACT NULL\nTAG POS=2 TYPE=DIV ATTR=TXT:You<SP>BET<SP>* EXTRACT=TXT');return iimGetLastExtract().charAt(18);
}

Разберем подробнее, что делает функция hi(n); и как ей пользоваться.
В этой функции прописана функция ставки, которую мы описали ранее. Она как раз прописывает ставку n.
Далее строчка iimPlayCode("TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI");
жмет на кнопку HI на сайте фрибиткоин.
Далее идет цикл
while (true) {
iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI EXTRACT=HTM');
if (iimGetLastExtract().indexOf('disabled')<0) break;iimPlayCode('WAIT SECONDS=1');}
Для чего он нужен сейчас объясню. Когда мы нажимаем на кнопку игры HI, то она на некоторое время стает не активной - до тех пор, пока не выпадет число и не сыграет ставка. Бывают случаи, что во время игры происходит зависание и кнопка HI и LO становятся не активными (не нажимаются), и число, которое должно выпасть, долго крутится. Поэтому скрипт в таком случае будет ждать до тех пор, пока ставка не сыграет и кнопка HI станет снова активной. Это сделано для того, чтобы скрипт ждал результата поставленной ставки - выиграла она или нет. Ведь на основе сыгранной ставки нужно принимать решение, что делать дальше и поэтому нам нужно конкретно результат - выиграли мы или проиграли, чтобы не было ложных ставок.
Ниже на скриншоте активные кнопки, то есть ставка сыграла и сайт ожидает нажатие следующих ставок.
 А вот на этом скрине - ставка в работе, то есть число еще не выпало и кнопки до выпадения числа - Не активные.
Надеюсь понятно теперь, для чего этот код. По идее можно его заменить на задержку, например в 3 секунды, то есть использовать команду iimPlayCode('WAIT SECONDS=3');
и после каждой ставки скрипт будет ждать 3 секунды и лишь потом считывать информацию о результате - выиграли мы или проиграли. Но бывают часто случаи, что число долго крутится - больше 3 секунд, а иногда и зависает до тех пор пока не перезагрузить страницу, - редко но бывает. И в таком случае - скрипт после 3 секунд продолжит работу не дожидаясь завершения ставки и, если была предыдущая ставка проигрышная, а алгоритм написан на удвоение, то может случиться пропуск ставок, а размер ставки стать большим - и можно все слить. Поэтому этот код ждет завершения ставки и предотвращает от пропуска ходов.
Следующая строчка
iimPlayCode('SET !EXTRACT NULL\nTAG POS=2 TYPE=DIV ATTR=TXT:You<SP>BET<SP>* EXTRACT=TXT');
копирует текст о результате сыгранной ставки, смотрите скриншот.

А код
return iimGetLastExtract().charAt(18);
возвращает функции 18й символ с этой строки - на красной проигрышной кнопке - это буква l, а на зеленой выигрышной кнопке - это буква w.
Теперь можно пользоваться данной функцией и ставить любые ставки быстро и просто. Например поставим 5 сатош на  HI и выведем на экран результат сыгранной ставки.
var rez;
rez=hi(0.00000005); alert(rez);
На экран выведется буква l - если мы проиграли и буква w - если выиграли. За это можно цепляться и делать ставки на основе предыдущих.



Теперь функция, которая играет только на LO. Единственное ее отличие, что она жмет только на  LO, а в остальном код один и тот же и работает она так же как и функция HI и возвращает те же результаты.
function lo(n) {//ставит n сатош, жмет на кнопку LO и возвращает результат
stavka(n);
iimPlayCode("TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>LO");
while (true) {
iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI EXTRACT=HTM');
if (iimGetLastExtract().indexOf('disabled')<0) break;iimPlayCode('WAIT SECONDS=1');}
iimPlayCode('SET !EXTRACT NULL\nTAG POS=2 TYPE=DIV ATTR=TXT:You<SP>BET<SP>* EXTRACT=TXT');
return iimGetLastExtract().charAt(18);
}

Поэтому описывать подробно что она делает нет смысла.
Отличается она только одной строчкой
iimPlayCode("TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>LO");

Теперь реализовать функцию, которая случайно жмет на HI или LO реализовать с уже имеющимися функциями очень просто. Для этого генерируем случайное число от 0 до 1 и если выпало 1 то вызываем функцию hi(n); а если выпало 0 - то вызываем функцию lo(n); и все.

Для этого используем функцию генерации случайного числа из диапазона от минимального к максимальному. Ее нужно описать в самом начале всех функций.
function getrandom(min_random, max_random) {//возвращает случайное число от min до max
    var range = max_random - min_random + 1;
    return Math.floor(Math.random()*range) + min_random;
}


Теперь уже точно можно перейти к функции hilo(n);
function hilo(n) {
if (getrandom(0,1)==1) return hi(n); else return lo(n);
}


Работать с этой функцией ничем не отличается от остальных. Например,
alert(hilo(0.00000003));
нажмет на HI или LO случайно и выведет на экран заветную букву l или w.

Так же можно написать функцию, которая ставит BET ODDS, она просто записана на макросе и переведена на iimPlay.
function odds(n) {
iimPlayCode('EVENT TYPE=CLICK SELECTOR="#double_your_btc_payout_multiplier" BUTTON=0');
iimPlayCode('EVENTS TYPE=KEYPRESS SELECTOR="#double_your_btc_payout_multiplier" KEYS="[8,8,8,8,8,8]"');
iimPlayCode('EVENTS TYPE=KEYPRESS SELECTOR="#double_your_btc_payout_multiplier" CHARS='+n);
}

То есть если вызовем эту функцию, то она пропишет этот ODDS. Например поставим его 1.25
odds(1.25);
По сути все, хотя можно написать еще много полезных функций, но ставки ставить уже можно и можно писать свои алгоритмы. Получился вот такой вот набор функций

Теперь рассмотрим примеры простых алгоритмов с использованием циклов и условиями выхода из циклов.
Начнем с самого простого. Например мы хотим сделать 50 ставок 0.00000001 на HI. Конечно можно 50 раз написать функцию hi(0.00000001); но это не совсем удобно и будет занимать много места. А если нам нужно будет сделать 1000 ставок, то прописывать 10 раз функцию hi(0.00000001); будет еще сложнее. Тут можно воспользоваться функцией for от 1 до 50.
Код будет таким:
for (i=1;i<=50;i++) hi(0.00000001);
Эта одна строчка кода сделает 50 ставок на HI.
Цикл for удобен чаще всего в том случае, если нужно выполнить заданное количество повторений. Удобнее, для меня, использовать цикл while. Напишем тот же самый алгоритм с использованием цикла while. Для этого объявим переменную для счетчика повторов и для условия выхода и присвоим ему начальное значение 1.
var  k=1;
while (k<=50) {hi(0.00000001);k=k+1}
Это тоже самое, что и с циклом for - то есть 50 раз поставится ставка на HI. Фигурные скобки нужны для того чтобы включить в цикл не одно действие, а несколько - в нашем случае это 2 действия - поставить ставку и прибавить к счетчику 1.  Вместо k=k+1; сокращенно можно написать k++;
Изначально у нас k=1; Условие выхода из цикла является сравнение k<=50, то есть в первом проходе цикла k=1;  далее идет проверка k<=50? то есть 1<=50?
ДА. - Значит ставим ставку на HI и увеличиваем k на 1, то есть k стало равно 2.
Второй проход цикла: 2<=50? ДА - ставим на HI и  увеличиваем k на 1, то есть k стало равно 3.
и так далее ...
На 50 проходе цикла проверяем 50<=50? ДА. еще раз ставим на HI и k увеличивается на 1 - то есть k становится равным 51.
На следующий проход идет проверка 51<=50? - НЕТ. и на этом происходит выход из цикла.
Это для тех, кто не понимает как работает цикл.
Цикл while выполняется до тех пор, пока поставленное условие k<=50 истинно. И как только условие становится ложным, в нашем случае 51 не меньше 50, то происходит выход из цикла.
Можно задать бесконечный цикл - для этого в условии можно задать постоянно истинное значение или написать просто слово true.
while (true) hi(0.00000001);
Этот цикл будет выполняться до тех пор, пока вы сами его не остановите, то есть не нажмете на кнопку Стоп на панели аймакроса.
Тоже самое бесконечный цикл можно задать с постоянно истинным условием, например 1<2 (единица меньше двойки - истинно всегда)
while (1<2) hi(0.00000001);
ничем не отличается от предыдущего кода.

Теперь поставим конкретные условия и задачи для игры на фрибиткоин.
 1. Напишем алгоритм, который будет считать количество выигрышных сделок как только мы выиграем 3 ставки, не обязательно подряд идущие, то выходим из цикла.
Объявим счетчик k=0; Поставим условие: Пока k<3 ставим ставки, и если мы выиграли (то есть получили букву w), то увеличиваем счетчик на 1. Это все можно описать следующим образом:
var k=0; var rez;
while(k<3) {rez=hilo(0.00000001); if (rez=='w') k++;}
То есть счетчик k будет увеличиваться на 1 только в том случае, когда ставка выиграет. В переменной rez как раз хранится результат сыгранной ставки. Конечно можно напрямую сравнивать функцию без переменной rez. Получится вот так и это тоже самое:
var k=0;
while(k<3) {if (hilo(0.00000001)=='w') k++;}
Код немного сократился и не использует дополнительной переменной - но результат его работы тот же.

2. Напишем простой алгоритм, который играет до первого проигрыша. Если идут подряд выигрыши, то скрипт будет играть до тех пор пока не выпадет первый проигрыш. Если проигрыш выпал сразу, то скрипт сразу завершит работу.
var rez;
rez=hi(0.00000001);
while (rez=='w') rez=hi(0.00000001);//пока выигрываем - ставим ставку

3. Напишем алгоритм на удвоение ставок в случае проигрыша. Это тоже очень просто сделать.
Для этого зададим переменную st и запишем в нее начальную ставку 0.00000001.
Условие цикла зададим разными вариантами. Первым вариантом пусть будет бесконечный цикл - то есть чтобы остановить его - нужно нажать Стоп на панели аймакроса.
var st,rez;//объявили переменные
while (true) {
st =0.00000001;//начальная ставка
rez=hi(st);
while (rez=='l') {st=st*2;rez=hi(st);}//пока проигрываем, - умножаем ставку на 2 и снова играем
}

Можно поставить условие остановки цикла счетчик количества ставок, например, остановит цикл через 50 ставок. То есть задаем условие k<50 и получаем нужный результат.
var k,st,rez;//объявили переменные  
k=1;
while (k<50) {
k=k+1;
st =0.00000001;//начальная ставка
rez=hi(st);
while (rez=='l') {st=st*2;rez=hi(st);k=k+1;}//пока проигрываем, - умножаем ставку на 2 и снова играем
}
В этом случае подсчет ведется и начальной ставки и тех ставок, которые идут на удвоение - то есть считаются все ставки - в данном случае через 50 ставок, не важно выиграли или проиграли произойдет выход из цикла.

Как сделать так чтобы подсчет шел только сыгранных игр на удвоение, а не всех ставок? То есть допустим начальная ставка проиграла и запустился цикл на удвоение и дошла до выигрыша. Нужно считать количество таких циклов - выигрышей. Для этого нужно убрать счетчик из основного цикла, а из цикла на удвоение убрать его и поставить после цикла на удвоение. То есть будет вестись количество выходов из цикла на удвоение.
var k,st,rez;//объявили переменные  
k=1;
while (k<50) {
st =0.00000001;//начальная ставка
rez=hi(st);
while (rez=='l') {st=st*2;rez=hi(st);}//пока проигрываем, - умножаем ставку на 2 и снова играем
k=k+1;
}
Здесь ведутся подсчет серий на удвоение - точнее на отыгрыш. То есть 50 раз скрипт будет отыгрываться от проигрышной начальной ставки. Тут возможен вариант слива.

4. Теперь давайте напишем такой аглгоритм: играем 10 ставок и считаем сумму проигрышей, а после этого ставим ставк на эту сумму. Например, мы сыграли с 1 стошей 10 ставок и проиграли 6 раз, тогда скрипт долже будет поставить ставку с 6 сатошами и если проиграли то играем на удвоение до выигрыша.
var sum=0;//счетчик суммы проигрышей
var st=0.00000001;//начальная ставка
var k=1;
var rez;
while (k<=10) {rez=hi(st);if (rez=='l') sum=sum+st;k++;}
//в sum подсчитается сумма проигрышей
//теперь нужно поставит ставку, которая хранится в sum
rez=hi(sum);
//если ставка проиграло то запустится цикл на удвоение
//если ставка выиграла, то условие цикла на удвоение не выполнится
while (rez=='l') {sum=sum*2;rez=hi(sum);}

На этом пока все, если есть вопросы - пишите в комментах.


Luckygames скрипт для отправки случайных сообщений в чат

Создаем текстовый файл на диске D:\text.txt

вписываем туда разного рода сообщения типа: удачи, хорошего дня, профита
можно добавить 100-200 сообщений или сколько угодно для разнообразия. Скрипт будет брать одну случайную строчку из файла. То есть каждое сообщение должно быть в отдельной строке - то есть 100 сообщений - значит 100 строк. Путь к файлу указан в скрипте - его можно поменять на тот, где будет лежать фаш файл по тому же синтаксису через двойной слеш.
А вот и сам скрипт - задержки случайные от и до - можно поменять на свое усмотрение.

function readExt(filename){return imns.FIO.readTextFile(imns.FIO.openNode(filename))}
function getrandom(min_random, max_random) {//возвращает случайное число от min до max
    var range = max_random - min_random + 1;
    return Math.floor(Math.random()*range) + min_random;
}
var txt = readExt('D:\\text.txt');
var mas=txt.split('\n');
var r;
while (true) {
r=getrandom(0, mas.length-1);
iimPlayCode('EVENTS TYPE=KEYPRESS SELECTOR="#chatTextarea" CHARS='+mas[r].replace(/ /g,"<SP>"));
iimPlayCode('WAIT SECONDS='+getrandom(5, 15));
iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:ОТПРАВИТЬ');
iimPlayCode('WAIT SECONDS='+getrandom(50, 120));
}


Главное написать разнообразные сообщения, похожие на настоящие.

Функции для создания любого скрипта для Freebitcoin на iMacros

Еще забыл сказать про функцию odds(n); - она просто вписывает число n в окошко BET ODDS
и все. То есть после этого можно ставить ставку. Если нужно поменять снова ODDS, то нужно еще раз прописать ее и снова поставить ставку.
Ниже представлен набор простых функций для постановки ставок и игры на freebitcoin, как в случайном нажатии на кнопки HI LO так и по отедльности. Не раз уже собирал скрипты с этими функциями. Из недостатков - возможно нужно подкорректировать задержки после ставок, на ваше усмотрение.

//функции-----------------------------------------------------------------
//--------------------------------------------------------
function getrandom(min_random, max_random) {//возвращает случайное число от min до max
    var range = max_random - min_random + 1;
    return Math.floor(Math.random()*range) + min_random;
}

function stavka(n) {//прописывает ставку в n сатош
var txt,stav;
txt=''+n;
stav='0.00000000'.substr(0,10-txt.length)+txt;
iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:stake CONTENT='+stav);
}

var e;
function hilo(n) {//ставит n сатош, жмет на кнопку HI или LO случайно и возвращает результат
stavka(n);
var r = getrandom(0,1);
if (r==1) iimPlayCode("TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI"); else iimPlayCode("TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>LO");
while (true) {
iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI EXTRACT=HTM');
e=iimGetLastExtract();if (e.indexOf('disabled')<0) break;iimPlayCode('WAIT SECONDS=3');}
var hl = "SET !EXTRACT NULL" + "\n";
hl += "TAG POS=2 TYPE=DIV ATTR=TXT:You<SP>BET<SP>* EXTRACT=TXT" + "\n";
iimPlayCode(hl);
return iimGetLastExtract().charAt(18);
}

function hi(n) {//ставит n сатош, жмет на кнопку HI и возвращает результат
stavka(n);
//content.document.getElementById('bet_hi_button').disabled = "";
iimPlayCode("TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI");
while (true) {
iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI EXTRACT=HTM');
e=iimGetLastExtract();if (e.indexOf('disabled')<0) break;iimPlayCode('WAIT SECONDS=3');}
var hl = "SET !EXTRACT NULL" + "\n";
hl += "TAG POS=2 TYPE=DIV ATTR=TXT:You<SP>BET<SP>* EXTRACT=TXT" + "\n";
iimPlayCode(hl);
return iimGetLastExtract().charAt(18);
}

function lo(n) {//ставит n сатош, жмет на кнопку LO и возвращает результат
stavka(n);
iimPlayCode("TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>LO");
while (true) {
iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI EXTRACT=HTM');
e=iimGetLastExtract();if (e.indexOf('disabled')<0) break;iimPlayCode('WAIT SECONDS=3');}
var hl = "SET !EXTRACT NULL" + "\n";
hl += "TAG POS=2 TYPE=DIV ATTR=TXT:You<SP>BET<SP>* EXTRACT=TXT" + "\n";
iimPlayCode(hl);
return iimGetLastExtract().charAt(18);
}

function odds(n) {
iimPlayCode('EVENT TYPE=CLICK SELECTOR="#double_your_btc_payout_multiplier" BUTTON=0');
iimPlayCode('EVENTS TYPE=KEYPRESS SELECTOR="#double_your_btc_payout_multiplier" KEYS="[8,8,8,8,8,8]"');
iimPlayCode('EVENT TYPE=KEYPRESS SELECTOR="#double_your_btc_payout_multiplier" CHAR='+n);
}

function winsat() {//считывает и переводит в число результат сыгранной ставки
iimPlayCode("TAG POS=2 TYPE=DIV ATTR=TXT:You<SP>BET<SP>* EXTRACT=TXT");
return parseInt(iimGetLastExtract().substr(-12));
}


function serial(stvk,ser,sst) {
var cc=0;
var rezz;
while (cc<ser) {cc++; rezz=hilo(stvk);if (rezz=='l') sst=sst-stvk; else sst=sst+stvk;
if (sst>=0) break;}
return sst;
}
//---------------------------------------------------------------------------------------

В этом месте заканчивается функциональная часть для игры фрибиткоин - эту часть кода нужно вставлять в начало скрипта, а дальше начинается сам алгоритм игры - тот, который вы опишете сами. Пример приведу ниже - это участок кода с использованием вышеописанных функций нужно вставлять уже после кода с функциями.
var st1,st2,st3,st4,rez;
while (true) {
rez=hilo(1);
if (rez=='w') rez=hilo(3);
if (rez=='w') rez=hilo(2);
if (rez=='w') rez=hilo(6);
iimPlayCode('WAIT SECONDS='+getrandom(1, 5));
}
iimDisplay(rez);

Этот пример с ролика на ютубе, если был полезен - подписывайтесь на канал просто так, но иногда не забывайте, то на канале всплывает редкостаня дичь !!!

Теперь опишу немного подробнее, что делает каждая функция. Итак, мы вставили в начало скрипта код с функциями и дальше начинаем писать код для игры.
Например, мы хотим поставить Bet ODDS  1.25  и ставку 15 сатош на HI
Для этого нужно вызвать всего 2 функции из описанных выше прямо под кодом с функциями ниже. То есть
odds(1.25); hi(15); и запустить скрипт на странице с игрой. Чтобы не описывать остальные функции и посмотреть как это работает - вставлю видео с инструкцией к применения этого функционала.
На это видео я буду ссылаться, когда буду писать алгоритмы с использованием этих готовых функций для игры фрибиткоин freebitcoin
Все.

Команды для iMacros - оно Вам нужно?

Чуть ранее, когда еще сам изучал аймакрос и все благодаря одному сайту, на котором хорошо заработал на макросе, выкладывал список команд, которые собрал непосредственно в интернете и перепроверил их работоспособность. Если б не было того сайта, на котором нужна была автоматизация для сбора центов, то я так и не научился бы аймакросу. Даже в первый раз, когда установил аймакрос, по началу скептически отнесся к нему и было желание удалить его. Но так как было большая необходимость автоматизировать действия в броузере, чтобы ночью спать спокойно, а комп зарабатывал, пришло изучать то что есть - а был под рукой только что установленный аймакрос. Нашел в интернете  команды некоторые, научился процессу записи и редактирования макросов и уже в этот же день написал и собрал из строчек по кирпичикам макрос который собирал центы с того сайта.
Откуда я вообще узнал про этот аймакрос? В общем где попался в буксе ссылка на фрибиткоин и он раздавал макрос по сбору сатошей за реферальство. Ну про фрибиткоин я уже знал в это время и регнулся по его ссылке только ради того, чтобы получить макрос и посмотреть код работы с капчей - то есть отправка в сервис и получение ответа. И вот так получил примерный код распознавания капчи. Мне казалось это тогда сложным процессом. А так как на моем сайте ввели через несколько дней капчи, мне этот код и пример как раз то и пригодился.
В общем вот так по чуть чуть сайт усложнял работу и менял капчи, мне приходилось постоянно редактироваться свой макрос и в один момент мне показалось недостаточно аймакроса, так как не хватало управления - условий, циклов. Я знал что в аймакросе должен работать яваскрипт, но как я не пытался туда написать ява код - он не работал. И только позже узнал что для того, чтобы заработал код яваскрипт, нужно давать расширению файлу js. Так откуда мне было знать это? Но когда я узнал об этом, вот тогда и понял всю функциональность и полезность этого аймакроса. Это очень полезная вещь в автоматизации работы в броузере и даже не только - ведь оттуда можно и приложения запускать и пакетные файлы, то есть влиять на работу виндовс. После этого постепенно и понемногу собирал инфу уже о командах и функциях ява скрипта.
Одним из сложных моментов это еще было подключения файла для считывания данных или помещениях и сбора данных файл. В основном нужно было считывание логинов и паролей и емайлов пользователей для сайтов. Так как пользователей было порядка 1000, то аймакрос здорово мне помог, потому что вручную я бы 100 не обработал. Позже я нашел код подключения файла в яваскрипте - это еще более круче и проше сделало код.
Теперь же для написания кодов скриптов и макросов больше половины кода используется ява скрипт и коды аймакроса использую только нажатие на кнопки, заполнение форм, екстаркты инфы со страницы, задержку в секундах, а остальная часть ява скрипт, так как это проще и легче. Сравните подключение файла в аймакросе и в ява скрипте и сами увидите разницу.
Поэтому здесь не будет команд аймакроса, а если они вам все таки нужны, то я уже писал про них и выкладывал - вот по этой ссылке.

Скрипт freebitco.in на рандомную серию проигрышей, после которой идут случайные ставки с добавление предыдущего проигрыша

Скрипт freebitco.in на рандомную серию проигрышей, после которой идут случайные ставки с добавление предыдущего проигрыша

 Алгоритм скрипта взят с комментария к посту ссылка  "Скрипт для freebitco.in на серию подряд идущих проигрышей, после которой идет удвоение".
"Если бы знал как, то в этом скрипте добавил бы рандом на количество проигрышных ставок от 3 до 15. После скрипт ставит ставку равную этому рандому +1, если идет выигрыш то снова ставит минималку, если проигрыш то опять ставит рандом + предыдущий проигрышный рандом +1".
 Правда не понятен был момент с предыдущими рандомными проигрышами - то есть учитывать только последний проигрыш или же суммировать все предыдущие проигрыши до первого выигрыша. В скрипте идет суммирование предыдущих подряд идущих проигрышей - по сути как игра на удвоение, единственное что ставки рандомные. В общем кому интересно, тестируйте. Возможно есть ошибки в просчетах.
Скрипт фрибиткоин freebitcoin:

var stavka1='0.00000001';//начальная минимальная ставка
var temp='0.00000000';

var r1,r2,sr1,sr2,vrm,stavka2;
//-----------------------------------------------------------------
var randomseconds,i,s,extract;
var macro1;
macro1 = "TAG POS=1 TYPE=BUTTON ATTR=TXT:BET<SP>HI" + "\n";//жмем кнопку BET HI
macro1 += "WAIT SECONDS=2" + "\n";
macro1 += "SET !EXTRACT NULL" + "\n";
macro1 += "TAG POS=2 TYPE=DIV ATTR=TXT:You<SP>BET<SP>HI<SP>so<SP>you<SP>* EXTRACT=TXT" + "\n";

while (true) {//window.parent.scrollTo(0,0);
r1=Math.floor(Math.random() * 12) + 3;
iimPlayCode("WAIT SECONDS=1");
iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:stake CONTENT='+stavka1);
i=1;
while (i<r1) {iimPlayCode(macro1);
extract = iimGetLastExtract().charAt(18);iimDisplay(extract);
if(extract == "l") i++;
if(extract == "w") i=0;
             }
             iimDisplay(i);
            
r1=r1+1; sr1=''+r1; stavka2=temp.substr(0,10-sr1.length)+sr1;
vrm=r1;//предыдущий проигрышный рандом
//после серии проигрыше идем дальше
iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:stake CONTENT='+stavka2);
iimPlayCode(macro1);
while (true) {randomseconds = Math.floor(Math.random() * 60) + 10;
extract = iimGetLastExtract().charAt(18);iimDisplay(extract);
if(extract == "l") {
    r2=Math.floor(Math.random() * 12) + 3;
    r2=r2+1+vrm; sr2=''+r2; stavka2=temp.substr(0,10-sr2.length)+sr2;
    iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:stake CONTENT='+stavka2);
    iimPlayCode("WAIT SECONDS=1");
    vrm=vrm+r2;//обновляем предыдущий проигрышный рандом
        }//если проиграли то опять ставит рандом + предыдущий проигрышный рандом +1
if(extract == "w") break;//если выиграли то идем в начало
iimPlayCode("WAIT SECONDS="+randomseconds);
iimPlayCode(macro1);
              }
}


Сам полноценно тестануть не смог, так на балансе нету. Тестанул только с 1 ввода капчи на 46 сатош - и постепенно сериями проигрышей - по 1 сатоши слился. Пару раз выиграл по 7 сатош, но потом медленно и на ноль. Играть нужно подольше и баланс иметь хотя бы 10к сатош - будет интереснее.

Пару функций яваскрипта для iMacros в свою копилку

Сворачивание разворачивание броузера

var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation).QueryInterface
(Components.interfaces.nsIDocShellTreeItem).rootTreeItem.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface
(Components.interfaces.nsIDOMWindow);doc=mainWindow.document;
mainWindow.minimize() //сворачиваем браузер
iimPlayCode('WAIT SECONDS=2');
mainWindow.onTitlebarMaxClick()//разворачиваем браузер

-------------------------------------------------------------------------

function _startExe(put,args=[]){ //put - путь к файлу программы; args - массив с параметрами
    var Cc=Components.classes, Ci=Components.interfaces;
    var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
    var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);     
    file.initWithPath(put);     
    proc.init(file); proc.run(false, args, args.length);
}

//_startExe('C:\\test.exe',['param1','param2','param3']);
//_startExe('D:\\notepad.exe');
_startExe('D:\\k.bat');

-------------------------------------------------------------------------------
  function readExt(filename){return imns.FIO.readTextFile(imns.FIO.openNode(filename))}//ЧТЕНИЕ ФАЙЛА
function writeExt(filename, cont){imns.FIO.writeTextFile(imns.FIO.openNode(filename),cont)}//ПЕРЕЗАПИСЬ ФАЙЛА
function appendExt(filename,cont){imns.FIO.appendTextFile(imns.FIO.openNode(filename),cont)}//ДОБАВЛЕНИЕ В КОНЕЦ

 var test = readExt('D:\\text.txt')// поместим в переменную test данные из файла text.txt
 var arrData = test.split('\n') // создаем массив (разделяем по переносу строк)
 for(i=0;i<arrData.length;i++){ // создаем цикл по количеству строк в массиве
 alert('логин: '+ arrData[i].split(':')[0]+' пароль: '+ arrData[i].split(':')[1]+' эмейл: ' +arrData[i].split(':')[2])// выведем на дисплейчик переменную
 }

 for(cont=1;cont<=3;cont++){ // создаем цикл
 var cont1=cont+'\n'// добавляем перенос строки, чтоб не писало все в одну строку
 appendExt('C:\\text.txt',cont1)// записываем переменную цикла в файл
 alert(readExt('C:\\text.txt'))//выводим переменную на экран
 }

-----------------------------------------------------------------------------
Источник: sistem.in.ua

iMacros for Firefox - Почему не работают последние версии 9.х.х

Недопонимаю, почему не работают последние версии аймакроса 9.0.0 и последняя iMacros 9.0.3. Уже как то давно сталкивался с этой проблемой, когда еще 9.0.0 или 0.1 вышла. Работали у меня скрипты и в один прекрасный день, хотя нет - в один хмурый день, при запуске скрипта, который еще вчера работал, - выходил ошибка. Я был в недоумении, что вдруг все работало и тут все уже не работает. Как такое может быть?
Оказывается обновился аймакрос с 8.9.7 до 9 версии. Пытался запустить многие скрипты, которые очень просты - циклы, условия и подключенный файл по cmdline - и выходят ошибки и макрос не стартует. Заморачиваться в то время не стал, так как нужно было запускать обязательно скрипты и поэтому принудительно пришлось переустановить версию макроса. - Все заработало как и прежде.

Что они там мутят с эти аймакросом? Такое ощущение, что удаляют некоторый функционал, ограничивают возможности аймакроса для того, чтобы пользователи покупали что ли платную версию. Почему перестал работать код для старых версий в новой версии? Вот сегодня была необходимость установить на последнюю версию мозиллы аймакрос и поставилась версия 9.0.3 - попытался запустить макрос, который недавно только писал - и он не заускается. Выходит какая то глупая ошибка - s is undefined - но никакой s нет в скрипте - в общем каламбур. Так же выходили ошибки про Firefox multiprocess - не понял, что это означает и на что намекает ошибка. В общем, много вопросов, на которых нет ответов. Покопался в поиске интернета - многие просто тоже так и сделали - поставили более старые версии.

Так же при поиске аймакроса ранее выходили версии на выбор для установки. Сейчас же выходит только одно предложение iMacros for Firefox и никаких версий там не написано, при установке этого дополнения после появляется надпись 9.0.3. Кто знает, что они там мутят, возможно я чего то не понимаю и есть какие то поправки в коде аймакроса, но на всякий случай советую качнуть рабочие версии аймакроса и сохранить их себе на будущее для установки. Либо нужно разбираться и понять ошибки новых версий - может быть все не так плохо с ними, но ява скрипт походу там какой то урезанный. Если найдутся решения или мнения и доводки по этому поводу, прошу отписать в комментарии.

Чтение из файла и запись в файл на iMacros

Добавляю в копилку к себе в блог строчки кода в виде функции яваскрипт. Очень полезный код, о котором я недавно узнал и, думаю, что он очень пригодится в будущем. Сам пользовался стандартными средствами из аймакрос с работой с файлом как с базой, а вот запись в файл полноценной я не нашел как делать. Теперь же все это сделать можно будет гораздо проще и быстрее. То есть чтение файла в аймакросе осуществлялась построчно, а в новой функции это делается моментально за 1 проход. Там же используется метод разбивки на массивы split. Этот метод мне знаком, так как уже натыкался на него и тестировал. Теперь же можно полноценно будет воспользоваться файлами и методом split.
Так же посоветую сайт для более подробного обучения аймакрос как для начинающего, так и сейчас ведется курс для продвинутого пользователя, то есть продвинутый курс аймакрос. К сожалению, когда мне нужна была информация по изучению аймакроса - этого сайта не было и мне приходило собирать все с разных источников. И когда я обнаружил этот сайт, мне стало жаль, что мне он уже не так был нужен как раньше. Сейчас же автор рассказывает о новых функциях, о которых я не знаю и не использую и, по его словам, будут еще много полезных функций - так как, например, запуск exe файлов с аймакросом - то есть даже не как я делал с помощью MacroRecorder'ом, а непосредственно самим аймакросом. А так как мне приходилось выкручиваться другими путями, тут мне приходилось подключать смекалку и логику - и получалось! Сам жду кодов для запуска екзешников. Источник и ссылку на код оставлю в конце статьи - материалы сделаны качественно - не как у меня )) ну да ладно, это моя копилка и инфа в основном для себя и для других.
Код чтения и записи\перезаписи файлов.

function readExt(filename){return imns.FIO.readTextFile(imns.FIO.openNode(filename))}//ЧТЕНИЕ ФАЙЛА
function writeExt(filename, cont){imns.FIO.writeTextFile(imns.FIO.openNode(filename),cont)}//ПЕРЕЗАПИСЬ ФАЙЛА
function appendExt(filename,cont){imns.FIO.appendTextFile(imns.FIO.openNode(filename),cont)}//ДОБАВЛЕНИЕ В КОНЕЦ


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

 var test = readExt('D:\\text.txt')// поместим в переменную test данные из файла text.txt
 var arrData = test.split('\n') // создаем массив (разделяем по переносу строк)
 for(i=0;i<arrData.length;i++){ // создаем цикл по количеству строк в массиве
 alert('логин: '+ arrData[i].split(':')[0]+' пароль: '+ arrData[i].split(':')[1]+' эмейл: ' +arrData[i].split(':')[2])// выведем на дисплейчик переменную
 }


 for(cont=1;cont<=3;cont++){ // создаем цикл
 var cont1=cont+'\n'// добавляем перенос строки, чтоб не писало все в одну строку
 appendExt('C:\\text.txt',cont1)// записываем переменную цикла в файл
 alert(readExt('C:\\text.txt'))//выводим переменную на экран


Источник на сайт - он же и форум: http://sistem.in.ua/forum_sistema_imacros/?view=thread&id=22

Настройка Мозиллы на работу с прокси с помощью Imacros, смена прокси на автомате

Так как вопрос довольно актуальный - как менять прокси находу при необходимости смены IP адреса с помощью аймакроса. Готовый командные строчки выкладываю (под управлением явы-скрипта):
var iphttp=   '111.111.111.111'
var ipssl=    '222.222.222.222'
var ipftp=    '333.333.333.333'
var ipsocks=  '444.444.444.444'
var socksver= '5'
var portall=  '8080'
var logAndPassProxy = 'test'

iimPlay("CODE:URL GOTO=about:config\n WAIT SECONDS=1")

var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);

// ручная настройка прокси
prefs.setIntPref("network.proxy.type", 1);

// ставим галочку Для всех протоколов
 prefs.setBoolPref("network.proxy.share_proxy_settings", true);
// each proxy independent
prefs.setBoolPref("network.proxy.share_proxy_settings", false);

// HTTP Proxy
prefs.setCharPref("network.proxy.http", iphttp);
prefs.setIntPref("network.proxy.http_port", portall);

// SSL Proxy
prefs.setCharPref("network.proxy.ssl", ipssl);
prefs.setIntPref("network.proxy.ssl_port", portall);

// FTP Proxy
prefs.setCharPref("network.proxy.ftp",ipftp)
prefs.setIntPref("network.proxy.ftp_port",portall);

// SOCKS Host
prefs.setCharPref("network.proxy.socks", ipsocks);
prefs.setIntPref("network.proxy.socks_port", portall);
prefs.setIntPref("network.proxy.socks_version", socksver);

// login & password proxy
prefs.setCharPref("extensions.proxyauth.authtoken",logAndPassProxy);


То есть для смены прокси достаточно установить HTTP-прокси и поставить галочку в мозилле Использовать этот прокси для всех протоколов. Вот и все настройки.
То есть выше указанный код будет намного короче. А далее можно подключить текстовый файлик с просями и брать айпишки построчно и втыкать их в мозиллу с помощью этого кода. Таким образом, подключил файлик с проксями и воткнув забор айпи с этого файла в цикле можно замутить смену айпи адресов на автомате. Единственный нюанс - достать рабочие прокси. Как вы будете это делать - искать бесплатные или покупать платные, это уже другой вопрос. Но скажу вам что платные пакеты айпишек продают всем пользователям, поэтому перед покупкой вы должны знать, что эти прокси уже поюзали и еще юзают другие клиенты - а оно вам надо? Смотрите сами. А если покупать индивидуальные прокси, на которых еще установлен пароль, и которыми пользоваться будете только вы  и никто кроме вас не может выйти в интернет с этого айпи, стоят довольно дорого, в среднем можно сказать 5$ на месяц. Если затраты оправдают себя, в чем я сомневаюсь, то можно и взять. Но с одним айпи мало чего сделаешь. А покупать по 1000 айпи - как сказал ранее, вы должны знать что их уже юзают.

Ну и еще несколько строк, которые могут пригодиться:
' Заполнение и подтверждение прокси аутентификации
ONLOGIN USER=user PASSWORD=password

' установка нужного прокси
PROXY ADDRESS=12.222.333.333:8000

' установка прокси и списка сайтов на которых будет работать реальный IP (BYPASS)
PROXY ADDRESS=12.222.333.333:8080 BYPASS="yandex.ru 2ip.ru"

' установка прокси и отключение BYPASS списка сайтов
PROXY ADDRESS=12.222.333.333:8080 BYPASS=NULL


Ну и на последок строчки кода, как можно все это дело замутить через обычный iim файл.

' Установка параметров
SET IPHTTP   "111.111.111.111"
SET IPSSL    "222.222.222.222"
SET IPFTP    "333.333.333.333"
SET IPSOCKS  "444.444.444.444"
SET SOCKSVER "4"
SET PORTALL  "8080"
SET LOGPASS  "TEST"

' Переход к вкладке настроек
URL GOTO=about:config
WAIT SECONDS=1

' Непосредственная запись настроек

' Команда которая включает прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.type",1);")

' Устанавливает один протокол для всех одинаковым
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setBoolPref("network.proxy.share_proxy_settings",true);")
' Установить каждому отдельный прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setBoolPref("network.proxy.share_proxy_settings",false);")

' Устанавливает HTTP прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("network.proxy.http",'{{IPHTTP}}');")
' Установить порт для HTTP прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.http_port",{{PORTALL}});")

' Устанавливаем SSL прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("network.proxy.ssl",'{{IPSSL}}');")
' Устанавливаем  порт для SSL прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.ssl_port",{{PORTALL}});")

' Установка FTP прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("network.proxy.ftp",'{{IPFTP}}');")
' Установка порта для FTP прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.ftp_port",{{PORTALL}});")

' Установка SOCKS прокси 
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("network.proxy.socks",'{{IPSOCKS}}');")
' Установка  порта для SOCKS
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.socks_port",{{PORTALL}});")
' Установка версии SOCKS (4 или 5)
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setIntPref("network.proxy.socks_version",{{SOCKSVER}});")

' Установка логина и пароля прокси
SET !VAR1 EVAL("prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("extensions.proxyauth.authtoken",'{{LOGPASS}}');")


Штука эта может пригодиться, поэтому кладу здесь, может самому иногда придется заглядывать сюда.

Скрипт на iMacros постинга в группы вк


Попросили написать скрипток для постинга сообщений в группы вк.

Написал и в результате прогона пригласил 3 реферала на рукапчу - первые 2 поработали денек и на второй день пока нет активности. 3й реферал уже второй день немного щелкает, нормально.

Понемногу можно пользоваться скриптом для привлечения рефералов. Как работает скрипт - можно посмотреть на видео.
Есть 2 варианта скриптов - для полной версии вк и для мобильной.
На локальном диске размещаем папку new.spm.vk и закидываем туда текстовые файлы и картинку.
Текстовый файл с логинами и паролями от вк, файл с группами, файл с сообщениями. В файле сообщений 10 строк, в каждой из которых 1 сообщение. Выпадает случайное сообщение 1 из 10 и постится в группу с картинкой и ссылкой. Довольно крутая штука. Продам скрипток всего за 5 баксов. Пишите на почту mingazetdinov85@gmail.com. Покажу что и как настроить. Есть проблема с заморозкой аккаунта вк из за частых постингов - можно увеличить время задержки для отправки сообщений. В полной версии заморозок не было, в мобильно - примерно за 15 сообщений.

Бесплатно скрипт можно получить мобильную версию - на этой странице.

Функция для смены юзерагента для iMacros

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

//====================================================================== /***-=Смена UserAgent=-***/
function randomInteger(min, max) {
     
var rand = min - 1 + Math.random() * (max - min + 5)
rand = Math.round(rand);
return rand;       
}
var frt=( randomInteger(2, 10) );
var urlAgent=['Mozilla/5.0 (Windows NT 5.1; rv:35.0) Gecko/20100101 Firefox/35.0','Mozilla/5.0 (X11; U; Linux; i686; en-US; rv:1.6) Gecko Debian/1.6-7','Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20100101 Firefox/17.0 SeaMonkey/2.14.1',' Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)','Mozilla/5.0 (Linux; U; Android 2.2.1; en-ca; LG-P505R Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1','Mozilla/5.0 (Linux; U; Android 2.2.1; en-gb; HTC_DesireZ_A7272 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1','Mozilla/5.0 (X11; U; Linux armv61; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1','Mozilla/5.0 (Linux; U; Android 2.3.3; de-ch; HTC Desire Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1','Mozilla/5.0 (Linux; U; Android 2.3.3; ko-kr; LG-LU3000 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1','Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; T-Mobile myTouch 3G Slide Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1','Mozilla/5.0 (Windows NT 6.1; rv:2.1.1) Gecko/20110415 Firefox/4.0.2pre Fennec/4.0.1','Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9.1b1pre) Gecko/20081005220218 Gecko/2008052201 Fennec/0.9pre','Mozilla/5.0 (Windows; U; Windows CE 5.2; en-US; rv:1.9.2a1pre) Gecko/20090210 Fennec/0.11','Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9.1a1pre) Gecko/2008071707 Fennec/0.5','Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9.1a2pre) Gecko/20080820121708 Fennec/0.7','Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9.1b1pre) Gecko/20080923171103 Fennec/0.8','Mozilla/5.0 (X11; U; Linux armv6l; en-US; rv:1.9.1b1pre) Gecko/20081005220218 Gecko/2008052201 Fennec/0.9pre','Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US;  rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1','Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1 '];

function UserAgent(){iimPlay("CODE:URL GOTO=about:config\n WAIT SECONDS=1");       
       var Cc=Components.classes, Ci=Components.interfaces;
       var prf=Cc['@mozilla.org/preferences-service;1'].getService(Ci.nsIPrefBranch);
       var str=Cc['@mozilla.org/supports-string;1'].createInstance(Ci.nsISupportsString);    
       str.data=urlAgent[frt]; // Перюключение UserAgent    
       prf.setComplexValue('general.useragent.override',Ci.nsISupportsString,str);
}
UserAgent();
//===================================================================
Как работает функция объяснять не буду. Те кому это нужно поймут без слов.

Функция удаления куки для iMacros

Очень часто нужно бывает удалять куки файлы при написании каких либо скриптов для заработков на сайтах с несколькими аккаунтами. Эту функцию выцепил из скрипта для биткоинов, который нашел на просторах интернета. Выкладываю сюда для себя на будущее, чтобы можно было зайти и скопировать по мере необходимости. Проверил - работает. Не удалялась только 1 куки от гугла, ну да ладно.

//========================================================
/***-=Очистка кукисов=-***/
var Cc=Components.classes, Ci=Components.interfaces;
var prf=Cc['@mozilla.org/preferences-service;1'].getService(Ci.nsIPrefBranch);
var str=Cc['@mozilla.org/supports-string;1'].createInstance(Ci.nsISupportsString);
var cok=Cc['@mozilla.org/cookiemanager;1'].getService(Ci.nsICookieManager);     

function del_cookis(){
var iter=cok.enumerator;
while (iter.hasMoreElements()){var cookie=iter.getNext();
if(cookie instanceof Ci.nsICookie){cok.remove(cookie.host, cookie.name, cookie.path, cookie.blocked);}}}
del_cookis();
//========================================================
В конце кода сразу вызов этой функции. Полезный код, не только для использования кукисов, но и для обращения в конфигурацию мозиллы.

Команда imacros, которая сохраняет содержание страницы в файл



В аймакросе можно сохранять содержание страницы в файл. Ниже я приведу пример с использованием управляющего ява скрипта, а тем кто захочет использовать ее в обычном макросе .iim, может просто извлечь команду из кавычек. Это может оказаться очень полезной штукой - например для копирования текста всей страницы в файл на конкретных страницах, чтобы потом исследовать их.
Вот и сам пример на ява скрипте:
var saves;
saves = "CODE:";
saves += "SAVEAS TYPE=TXT FOLDER=C:\\FOLDER FILE=dat.txt" + "\n";
saves += "WAIT SECONDS=40" + "\n"
То есть, объявлена переменная яваскрипта saves и ей присваивается значение строковое - сами команды макроса. Далее чтобы воспроизвести это дело создаем файл в папке аймакрос ptimer.js и вставляем туда эти строки и в конце нужно дописать строку возспроизведения, то есть команду iimPlay(saves); вот и все.

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

Как использовать about:config в imacros

Нужно было поменять мне несколько настроек в мозилле и даже пришлось потом это делать часто и вот возникла такая идея - как бы все это автоматизировать. Это можно делать с помощью обычного imacros. В аймакрос с использованием конечно яваскрипта.

Команда из JS для перехода в глубокие настройки
iimPlay("CODE:URL GOTO=about:config\n WAIT SECONDS=1")

Главная команда которая открывает доступ к изменению глубоких настроек
var prefs = Components.classes["@mozilla.org/pr
­eferences-service;1"].getService(Co­mponents.interfaces.nsIPrefBranch);

Набор команд по изменению глубоких настроек (не работают без выше идущей команды)
prefs.setBoolPref("") - изменяет тип настроек "логический "
prefs.setCharPref("") - изменяет тип настроек "строка"
prefs.setIntPref("") - изменяет тип настроек "целое"

Наверное это все что нужно менять в about:config а спомощью него можно делать все что угодно - хоть прокси устанавливать, хоть еще какие настройки.

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

var iphttp=   '111.111.111.111'
var ipssl=    '222.222.222.222'
var ipftp=    '333.333.333.333'
var ipsocks=  '444.444.444.444'
var socksver= '5'
var portall=  '8080'
var logAndPassProxy = 'test'

iimPlay("CODE:URL GOTO=about:config\n WAIT SECONDS=1")

var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);

// manual proxy configuration
prefs.setIntPref("network.proxy.type", 1);

// use the proxy server for all protocols
 prefs.setBoolPref("network.proxy.share_proxy_settings", true);
// each proxy independent
prefs.setBoolPref("network.proxy.share_proxy_settings", false);

// HTTP Proxy
prefs.setCharPref("network.proxy.http", iphttp);
prefs.setIntPref("network.proxy.http_port", portall);

// SSL Proxy
prefs.setCharPref("network.proxy.ssl", ipssl);
prefs.setIntPref("network.proxy.ssl_port", portall);

// FTP Proxy
prefs.setCharPref("network.proxy.ftp",ipftp)
prefs.setIntPref("network.proxy.ftp_port",portall);

// SOCKS Host
prefs.setCharPref("network.proxy.socks", ipsocks);
prefs.setIntPref("network.proxy.socks_port", portall);
prefs.setIntPref("network.proxy.socks_version", socksver);

// login & password proxy
prefs.setCharPref("extensions.proxyauth.authtoken",logAndPassProxy);

Эти команды нашел в видеоролике на ютубе, и дабы не потерять их из виду, записываю в блог - может пригодится.

Яваскрипт в аймакрос

Яваскрипт в аймакрос - это мощный и гибкий способ написать удобный скрипт для работы. Ява позволяет делать то, что на обычном макросе сделать затруднительно или вообще невозможно. Чтобы использовать яваскрипт в аймакросе, естественно нужно знать его достаточно хорошо, потому что в аймакросе он ничем практически не отличается от обычного. Но есть и набор команд специально для аймакроса, такие как например, iimPlay и т.п.

Здесь кину только кодик, который может понадобиться только для изъятия некоторых команд для написания своих макросов. Скрипт входа в почту.

var put = 'C:\\iMacros\\Macros\\Обучение'//путь к таблице
var url = 'https://www.yandex.ua'//урл где будем вводить почту
var count = Number(window.prompt("введите цифру в какую почту зайти"+ "\n"+"1-PolyakovAdrian1967@yandex.com"+ "\n"+"2-LeonilaLihacheva@yandex.com"+ "\n"+"3-KornilovaValeriana@yandex.com"+ "\n"))//ввод строки из которой будем брать данные
var tabPoshta = 'yandexPoshta.csv';//таблица
var macroStart;
macroStart ="CODE:";
iimSet("COUNT",count);   //пердаем в аймакрос меременную COUNT
macroStart +="CLEAR" + "\n";// очищаем куки, тем самым выходим если залогинены;
macroStart +="SET !DATASOURCE_DELIMITER ;" + "\n";// обозначаем разделитель в таблице ;
macroStart +="CMDLINE !DATASOURCE "+put+"\\"+tabPoshta+ "\n"; // обозначаем таблицу
macroStart +="SET !DATASOURCE_COLUMNS 2" + "\n"; //iMacros количество колонок в этом файле
macroStart +="SET !DATASOURCE_LINE {{COUNT}} " + "\n"; //из какой строки по счету нужно извлечь информацию
macroStart += "ADD !EXTRACT {{!COL1}}"+ "\n";//почта
macroStart += "ADD !EXTRACT {{!COL2}}"+ "\n";//пароль
iimPlay(macroStart)
var poshta = iimGetLastExtract(1);//вытягиваем почту в джаваскрипт
var pass = iimGetLastExtract(2);//вытягиваем пароль в джаваскрипт
var macroVhod;
macroVhod ="CODE:";
macroVhod += "URL GOTO="+url+ "\n";//заход на адрес
macroVhod += "TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:https://passport.yandex.ru/passport?mode=auth&retpath=https://mail.yandex.ua ATTR=ID:* CONTENT="+poshta+ "\n";//вводим в поле почту
macroVhod += "SET !ENCRYPTION NO"+ "\n";//не шифруем пароль
macroVhod += "TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:https://passport.yandex.ru/passport?mode=auth&retpath=https://mail.yandex.ua ATTR=ID:* CONTENT="+pass+ "\n";//вводим пароль
macroVhod += "TAG POS=2 TYPE=BUTTON FORM=ACTION:https://passport.yandex.ru/passport?mode=auth&retpath=https://mail.yandex.ua ATTR=TXT:Войти"+ "\n";//нажимаем кнопку войти.
iimPlay(macroVhod)

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

var num = parseInt(gettxt.replace(/\D+/g,"")); //оставить в тексте только цифры ( убираются пробелы , буквы , оставляются только цифры )
stroka=stroka.replace(/\n/g, ", ");// заменит все переносы строк в переменной stroka на запятую с пробелом
stroka=stroka.replace(/\+/g, ""); //удалит все + в переменной stroka
stroka=stroka.replace(/\&nbsp;/g, "")//удалит все &nbsp; в строке
stroka=stroka.replace(/\s+/g, "") //удалит все пробелы
vrem=Number(vrem_stroka.replace(/\D+/g,"")) //оставит одни цифры со строки
 

Работа с DOM на iMacros

Как то ранее не находил как же использовать объекты DOM в аймакрос, но все таки нашел. Спасибо сайту система.ин.уа Выложу только команды, а далее можно разобрать самостоятельно. Команды только для шпаргалки на будущее.

iimDisplay(content.document.documentElement.clientHeight)//высота видимой части окна браузера
iimDisplay(content.document.documentElement.scrollWidth)//ширина видимой части окна браузера с учетом прокрутки
iimDisplay(content.document.documentElement.scrollHeight)//высота видимой части окна браузера с учетом прокрутки
iimDisplay(content.document.documentElement.scrollTop)//Текущая прокрутка сверху
iimDisplay(content.document.body.offsetHeight)//высота вместе с прокруткой
 
 
content.document.body.innerHTML='<button>кнопка 2</button>’// нарисует кнопку на страницу
content.document.getElementById(‘submit_post_box’).getElementsByTagName(‘textarea’)[0].onfocus()// навести фокус
content.document.getElementsByClassName(‘submit’)[0].click()// клик по кнопке
 
content.document.
 alert(content.document.body.innerHTML)
 iimDisplay(content.document.getElementsByClassName('yt-lockup-dismissable').length)
iimDisplay(content.document.getElementsByClassName('yt-lockup-dismissable')[0].innerHTML)
вывод текста
iimDisplay(content.document.getElementsByClassName('yt-lockup-dismissable')[0].textContent)
 

Автоматическая регистрация почты на mail.ru

Здесь я просто выложу код, написанный мной для регистрации почты на imacros. Подробно разъяснять не буду - это только для примера. Почта регистрируется и пишется в блокнот. Кто не понимает imacros, тем не стоит мучиться, так как формы на сайте постоянно меняются и соответственно и сам скрипт тоже нужно редактировать. Поэтому скрипт только послужит для извлечения методов и полезных команд для использования в других целей.

var kolichestvo = 30;
for (j=1;j<=kolichestvo;j++){
for (i=1;i<=5;i++) {
//генератор случайных логинов из 8 символов
var malenkie = "szxcvbnmasdfdghjklqcdjfpamzxvwuxnsjfnkdjfhdjpolqerwtasdzhzxpdnsdrtyuiop";
var stroka = ""; for (k=1;k<=8;k++){var m = Math.floor(Math.random() * 70); stroka += malenkie.substr(m,1);}

var mailreg;
mailreg = "CODE:SET !ERRORIGNORE YES" + "\n";
mailreg += "SET !TIMEOUT 60" + "\n";
mailreg += "CLEAR" + "\n";
mailreg += "URL GOTO=https://m.mail.ru/cgi-bin/signup" + "\n";
//mailreg += "SET !REPLAYSPEED SLOW" + "\n";
mailreg += "TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:reg ATTR=TYPE:ID:Username CONTENT=" + stroka + "\n";
//mailreg += "SET !REPLAYSPEED FAST" + "\n";
mailreg += "TAG POS=2 TYPE=INPUT:TEXT FORM=ACTION:reg ATTR=TYPE:ID:id-x_* CONTENT=X" + "\n";
mailreg += "TAG POS=3 TYPE=INPUT:TEXT FORM=ACTION:reg ATTR=TYPE:ID:id-x_* CONTENT=Y" + "\n";
mailreg += "TAG POS=1 TYPE=INPUT:RADIO FORM=ACTION:reg ATTR=TYPE:radio&&VALUE:1" + "\n";
mailreg += "TAG POS=1 TYPE=INPUT:NUMBER FORM=ACTION:reg ATTR=TYPE:number&&PLACEHOLDER:ДД&&SIZE:2&&VALUE:&&NAME:x_*&&CLASS:birthday&&STEP:1&&MAX:31&&MIN:1 CONTENT=5" + "\n";
mailreg += "TAG POS=1 TYPE=SELECT FORM=ACTION:reg ATTR=NAME:BirthMonth CONTENT=%4" + "\n";
mailreg += "TAG POS=1 TYPE=INPUT:NUMBER FORM=ACTION:reg ATTR=TYPE:number&&PLACEHOLDER:ГГГГ&&SIZE:4&&VALUE:&&NAME:x_*&&CLASS:birthyear&&STEP:1&&MAX:2016&&MIN:1910 CONTENT=1996" + "\n";
mailreg += "WAIT SECONDS=2" + "\n";
//шаг второй
mailreg += "TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:reg ATTR=TYPE:submit&&VALUE:Далее" + "\n";
mailreg += "TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:reg ATTR=TYPE:text&&VALUE:&&NAME:x_*&&MAXLENGTH:40&&AUTOCOMPLETE:off&&ID:password&&TABINDEX:1 CONTENT=A1234567" + "\n";
mailreg += "TAG POS=1 TYPE=BUTTON FORM=ACTION:reg ATTR=VALUE:2&&NAME:RegStep&&TABINDEX:3&&CLASS:button-next" + "\n";
//шаг третий, распознавание капчи
iimPlay(mailreg);
iimPlay("D:\\Documents\\iMacros\\Macros\\capcha-m-mail.iim",60);

var gotovo;
gotovo = "CODE:";
gotovo += "TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:reg ATTR=TYPE:submit&&VALUE:Создать<SP>почту" + "\n";
iimPlay(gotovo);

//удаление сообщения из почты
var delmessage;
delmessage = "CODE:";
delmessage += "TAG POS=1 TYPE=SPAN ATTR=CLASS:folder" + "\n";
delmessage += "TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ID:m_form ATTR=TYPE:checkbox&&CLASS:js-messageline-checkbox&&VALUE:*&&NAME:id&&ID:msg_* CONTENT=YES" + "\n";
delmessage += "TAG POS=1 TYPE=BUTTON FORM=ID:m_form ATTR=TITLE:Удалить&&NAME:remove&&TYPE:submit&&CLASS:button-wrapper" + "\n";
iimPlay(delmessage);

//сохранение емайла в файл maili.txt в папку Datasourse
var datsave;
datsave = "CODE:SET !EXTRACT_TEST_POPUP NO" + "\n";
datsave += "SET !EXTRACT NULL" + "\n";
datsave += "TAG POS=1 TYPE=A ATTR=CLASS:footer__link<SP>footer__link_current&&HREF:/folders/ EXTRACT=TXT" + "\n";
datsave += "SAVEAS TYPE=EXTRACT FOLDER=D:\\Documents\\iMacros\\Datasources FILE=m-maili.txt" + "\n";
datsave += "WAIT SECONDS=5" + "\n";
iimPlay(datsave);
}

var saves;
saves = "CODE:";
saves += "SAVEAS TYPE=TXT FOLDER=C:\\CAPCH FILE=dat.txt" + "\n";
saves += "WAIT SECONDS=40" + "\n";
iimPlay(saves);
}

------------------------------------------------------------

Файл для рукапчи:

SET !EXTRACT_TEST_POPUP NO
SET !ERRORIGNORE YES
SET !EXTRACT NULL
FILTER TYPE=IMAGES STATUS=OFF
TAB CLOSEALLOTHERS
ONDOWNLOAD FOLDER=C:\CAPCH\ FILE=m-mail.jpg
TAG POS=1 TYPE=IMG ATTR=WIDTH:180&&HEIGHT:100&&ALT:&&SRC://c.mail.ru/1?r=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT
WAIT SECONDS=1
SET !TIMEOUT 60
TAB OPEN
TAB T=2
URL GOTO=http://imacros2.rucaptcha.com
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:getcapcha.php ATTR=NAME:key CONTENT=ключ
TAG POS=1 TYPE=INPUT:FILE FORM=ACTION:getcapcha.php ATTR=NAME:file CONTENT=C:\CAPCH\m-mail.jpg
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:getcapcha.php ATTR=NAME:language CONTENT=2
ONDIALOG POS=1 BUTTON=OK CONTENT=
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:getcapcha.php ATTR=TYPE:*
TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT
WAIT SECONDS=1
TAB CLOSE
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:reg ATTR=TYPE:text&&VALUE:&&NAME:x_*&&CLASS:input-captcha CONTENT={{!EXTRACT}}

---------------------------------------------------------------------------
Конец.