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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№121-01-2015 02:50:36

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

Мини FAQ по iMacros for Firefox

Мини FAQ по iMacros for Firefox by: InfSub



Где почитать:
Версии iMacros и Firefox:







Как запустить один скрипт из другого:

  • запуск *.iim-файла из *.iim:

    URL GOTO=imacros://run/?m=path/file.iim

  • запуск *.js-файла из *.iim:

    URL GOTO=imacros://run/?m=path/file.js

  • запуск *.iim-файла из *.js:

    iimPlay("path/file.iim")

  • запуск *.js-файла из *.js:

    iimPlayCode("URL GOTO=imacros://run/?m=path/file.js")

  • для старых версий FF, способ запуска - отличается:
    данный адрес - альтернативный, т.к. официальный более не работает

    iimPlay("CODE:URL GOTO=http://fmacros.ru/launcher.html?m=path/file.js")



где:
    path - путь до файла относительно папки Macros 1
    file.js или file.iim - имя файла

    1 для iimPlay() - путь до файла, может быть полным




Модификаторы:

  • Вкл./выкл. режима пропуска ошибок:

    SET !ERRORIGNORE YES/NO

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

  • SET !ERRORCONTINUE YES
    Для любителей бездумно копировать чужие ляпы и фейки, еще раз повторяю, такой опции НЕ СУЩЕСТВУЕТ!
  • Вкл./выкл. режима показа всплывающего окна с результатом извлечения данных со страницы:

    SET !EXTRACT_TEST_POPUP YES/NO

    Всплывающие окна требуются при написании и тестировании iim-скриптов. При цикличном запуске iim-скрипта, либо при запуске из управляющего js-скрипта, эти окна не отображаются. Данная опция используется для отключения показа тестовых окон для iim-скриптов, действие которых, не зациклено и выполняется единожды (нажатием кнопки "Воспроизвести").

  • Скорость воспроизведения макроса (быстро/нормально/медленно):

    SET !REPLAYSPEED FAST/MEDIUM/SLOW


* Режим, используемый по умолчанию - подчеркнут!



iMacros + JS:
Есть несколько js-функций для работы с iim-кодом:

iimDisplay ("Ваш комментарий")

iimPlay ("файл или код")
или
iimPlayCode ("код")

iimSet ("имя iim-переменной", "значение")



Описание и примеры использования:
скрытый текст
iimDisplay ()

  • iimDisplay ("текст вашего комментария") - функция выводит текст в информационном окне iMacros'a.

iimPlay () - отправляет iim-файл или iim-код на выполнение.

  1. iimPlay ("c:\\MyMacros\\macro.iim") - полный путь до iim-файла*;
  2. iimPlay ("Test\\macro") - относительный путь* от папки макросов до iim-файла (указывать расширение файла (.iim), при этом, не обязательно);
  3. iimPlay ("CODE:URL GOTO=....") - отправка iim-кода.

* При использовании в JS, обратные слеши "\" - должны быть экранированы еще одним обратным слешем (актуально для OS Windows).
   Либо, путь до файла, можно записать с помощью прямых слешей "
/", в таком случае, их не придётся экранировать.
   Например:

    "C:\\MyMacros\\macro.iim"
   и
    "C:/MyMacros/macro.iim"
iimPlayCode () - отправляет iim-код на выполнение.

  • iimPlayCode ("URL GOTO=....") - отправка iim-кода.

iimSet () - инициализирует переменные в iim-файле или iim-коде и передает им значения из js-скрипта.

  • iimSet ("MYVAR", "MYVALUE") - функция инициализирует (создает) переменную MYVAR в макросе и передает ей значение MYVALUE (аналог кода: SET MYVAR MYVALUE)**
    В связи с тем, что переменная !LOOP не работает, при запуске из js, iimSet() - позволяет её заменить

** Нельзя передать значение уже инициализированным переменным, таким как: !VAR0-!VAR9 и любым другим, начинающимся со знака !




Дополнительные возможности:

запуск внешней программы с аргументами из js-скрипта:
Данный способ, по сути, является хаком и может не работать в некоторых версиях Mozilla Firefox и в браузерах на его основе!
Используйте данный способ на свой страх и риск!

InfSub


code by: okkamas_knife

Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.




Javascript Key Codes:
KeyCode|KeyCode|KeyCode
backspace8|e69|numpad 8104
tab9|f70|numpad 9105
enter13|g71|multiply106
shift16|h72|add107
ctrl17|i73|subtract109
alt18|j74|decimal point110
pause/break19|k75|divide111
caps lock20|l76|f1112
escape27|m77|f2113
page up33|n78|f3114
page down34|o79|f4115
end35|p80|f5116
home36|q81|f6117
left arrow37|r82|f7118
up arrow38|s83|f8119
right arrow39|t84|f9120
down arrow40|u85|f10121
insert45|v86|f11122
delete46|w87|f12123
048|x88|num lock144
149|y89|scroll lock145
250|z90|semi-colon186
351|left window key91|equal sign187
452|right window key92|comma188
553|select key93|dash189
654|numpad 096|period190
755|numpad 197|forward slash191
856|numpad 298|grave accenth192
957|numpad 399|open bracket219
a65|numpad 4100|back slash220
b66|numpad 5101|close braket221
c67|numpad 6102|single quote222
d68|numpad 7103|

to be continued...

Выделить код

Код:

var prgpath="C:\\windows\\ping.exe";    // путь до исполняемого файла, не забываем про двойные косые в пути ...
// ... (экранирование обратного слеша "\\" при записи пути до exe-файла в OS Windows)
var args = ['-n','6', 'google.com'];    // аргументы, все разделены пробелом. т.е. строка bla.exe -open "c:\\program files\\ololo\\ololo.txt" ...
// ... будет иметь аргументы var args = ['-open','"c:\\program', 'files\\ololo\\ololo.txt"'];
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(prgpath);
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(file);
process.run(false, args, args.length);

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

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

Отсутствует

 

№229-09-2015 01:12:00

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

Re: Мини FAQ по iMacros for Firefox

баг функций iimGetLastExtract() и ее аналога iimGetExtract()

Добавлено 29-09-2015 01:13:53
перезапуск FF с помощью iMacros+cmd

Отредактировано InfSub (29-09-2015 01:13:53)


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

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

Отсутствует

 

№325-10-2015 14:51:15

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

Re: Мини FAQ по iMacros for Firefox


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

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

Отсутствует

 

№403-04-2016 17:32:42

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

Re: Мини FAQ по iMacros for Firefox


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

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

Отсутствует

 

№508-04-2016 22:00:04

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

Re: Мини FAQ по iMacros for Firefox


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

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

Отсутствует

 

№605-06-2016 14:42:06

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

Re: Мини FAQ по iMacros for Firefox


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

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

Отсутствует

 

№705-06-2016 15:25:27

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

Re: Мини FAQ по iMacros for Firefox


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

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

Отсутствует

 

№817-07-2016 21:36:42

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

Re: Мини FAQ по iMacros for Firefox

Как iim превратить в js

Как iim превратить в js

dvomaks пишет:

Решил добавить сюда свою старую статью, думаю многим будет полезно, единственное что сайт над которым издевались уже не работает.

Думаю многим начинающим будет интересно. Начнём пожалуй с преимусчеств проигрывания js перпед iim (актуально только для Firefox и производных).

- легко оперировать с переменными;
- гибкость;
- логические операции;
- доступ и манипуляции с DOM-деревом документа;

Давайте разберём на примере. Недавно помогал написать скрипт для сайта the-pirats.ru, на нём и поучимся.

Примерный план работ

- сбор ежедневного бонуса
- сбор и продажа алмазов
- покупка новых пиратов
- вывод при наборе минималки

У нас уже есть акаунт на данном сайте, поэтому начнём с входа на сайт. Сначала запишем макрос с помощью браузера, сделав вход вручную.

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

Выделить код

Код:

VERSION BUILD=8961227 RECORDER=FX
TAB T=1
URL GOTO=http://the-pirats.ru/
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:log_email CONTENT=mail@yandex.ru
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:pASSWORD FORM=NAME:NoFormName ATTR=NAME:pass CONTENT=superCrutoyParol
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*


Как же это будет выглядеть на js?

Есть два варианта
Не правильный но рабочий: каждую строку воспроизвести через iimPlayCode(). Вот как будет выглядеть результат (первую строку с версией можно проигнорировать):
скрытый текст

Выделить код

Код:

iimPlayCode('TAB T=1');
iimPlayCode('URL GOTO=http://the-pirats.ru/');
iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:log_email CONTENT=mail@yandex.ru');
iimPlayCode('SET !ENCRYPTION NO');
iimPlayCode('TAG POS=1 TYPE=INPUT:pASSWORD FORM=NAME:NoFormName ATTR=NAME:pass CONTENT=superCrutoyParol');
iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');


и второй вариант сформировать макрос и воспроизвести одной командой

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

Выделить код

Код:

//Создаём пременную в которую будем записывать строку с макросом
var macros = '';

//Создаём пременную с переносом строки (можно и без неё, покажу дальше как)
var n = '\n';

//Вписываем первую строку макроса и в конце знак переноса строки
macros += 'TAB T=1' + n;
//Вписываем следущую строку макроса и в конце знак переноса строки,
//как видите здесь я показал пример записи без использования переменной переноса строки
macros += 'URL GOTO=http://the-pirats.ru/ \n';
//Вписываем оставшиеся строки
macros += 'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:log_email CONTENT=mail@yandex.ru' + n;
macros += 'SET !ENCRYPTION NO' + n;
macros += 'TAG POS=1 TYPE=INPUT:pASSWORD FORM=NAME:NoFormName ATTR=NAME:pass CONTENT=superCrutoyParol' + n;
macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*' + n;

Воспроизводим записаный макрос
iimPlayCode(macros);


Стоит немного остановится на стоке iimPlayCode(macros);.
Варианты:
  iimPlayCode(macros); - проиграть макрос с параметрами по умолчению
  iimPlayCode(macros,50); - проиграть макрос и дать на выполнение макроса 50 секунд, не путайте с другими таймаутами. По умолчанию таймаут равен 600 секунд.
  var resultat = iimPlayCode(macros); - таким образом можно унать результат выполнения макроса, что иногда бывает очень полезно. resultat будет равен 1 если макрос выпонился без ошибок.

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

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

Выделить код

Код:

//Функции и пременные
var n = '\n';

function Avtorizacia(){
  var macros = '';
  macros += 'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:log_email CONTENT=mail@yandex.ru' + n;
  macros += 'SET !ENCRYPTION NO' + n;
  macros += 'TAG POS=1 TYPE=INPUT:pASSWORD FORM=NAME:NoFormName ATTR=NAME:pass CONTENT=superCrutoyParol' + n;
  macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*' + n;

  iimPlayCode(macros);

}

// Тело скрипта
var macros = '';
macros += 'TAB T=1' + n;
macros += 'URL GOTO=http://the-pirats.ru/ \n';
iimPlayCode(macros);

Avtorizacia();


Для удобства размножения скрипта для нескольких акаунтов стоит почту и пароль вынести в отдельные переменные. Также можно чуть дописать нашу функцию чтобы она возвращала результат выполнения макроса
скрытый текст

Выделить код

Код:

//Функции и пременные
var n = '\n';
var email = 'mail@yandex.ru';
var pass = 'superCrutoyParol';

function Avtorizacia(){
  var macros = '';
  macros += 'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:log_email CONTENT=' + email + n;
  macros += 'SET !ENCRYPTION NO' + n;
  macros += 'TAG POS=1 TYPE=INPUT:pASSWORD FORM=NAME:NoFormName ATTR=NAME:pass CONTENT='+ pass + n;
  macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*' + n;

  var rezultat = iimPlayCode(macros);

  if(rezultat > 0){
    return true;
  }
  return false;

}

// Тело скрипта
var macros = '';
macros += 'TAB T=1' + n;
macros += 'URL GOTO=http://the-pirats.ru/' + n;
iimPlayCode(macros);

if(Avtorizacia()){
  window.console.log('Удачная авторизация');
}else{
  window.console.log('Возникли ошибки при авторизации');
}


Добавлено 17-07-2016 18:15:01
Продолжим ;)

Было бы глупо пытаться авторизироваться на сайте если этого не требуется, поэтому напишем проверку нужно нам это или нет. Есть много вариантов, но я выбрал может не самый лучший но как мне показалось более наглядный для обучения. Будем проверять наличие элемента на странице. Если пользователь авторизирован то на всех основных станицах присутсвует состояние его счёта
скрытый текст
http://s019.radikal.ru/i602/1702/ee/c766943bc938.jpg

Откроем firebug и помотрим как мы можем определить наличие этого элемента.
скрытый текст
http://s014.radikal.ru/i328/1702/cb/5ba13fbae6ee.jpg

Как мы видим это ссылка с атрибутом href="/account/insert". Предлагаю извлекать колличество денег на счёте для покупок (оно нам ещё пригодится в будущем) и если там не пусто пропускать авторизацию. Можно сразу записать это действие в виде функции. Ну и плюс добавить новые возможности в тело скрипта.
скрытый текст

Выделить код

Код:

function getBalancePokupki(){
  iimPlayCode ('TAG POS=1 TYPE=A ATTR=HREF:/account/insert EXTRACT=TXT');
  var balance = iimGetLastExtract();
  window.console.log(balance);
  if(balance!='#EANF#'){
    return balance;
  }
  return false;
}

function getBalanceVivod(){
  iimPlayCode ('TAG POS=1 TYPE=A ATTR=HREF:/account/payment EXTRACT=TXT');
  var balance = iimGetLastExtract();
  window.console.log(balance);
  if(balance!='#EANF#'){
    return balance;
  }
  return false;
}

// Тело скрипта
var macros = '';
macros += 'TAB T=1' + n;
macros += 'URL GOTO=http://the-pirats.ru/ \n';
iimPlayCode(macros);

var pokupki = getBalancePokupki();
if(!pokupki){
  Avtorizacia();
  var pokupki = getBalancePokupki();
}
var vivod = getBalanceVivod();


После запуска в консоли видим печальную картину
скрытый текст
http://s020.radikal.ru/i723/1702/f5/96e33cce1d15.jpg

Оказывается элементов с такими атрибутами несколько. Исправить ситуацию можно указав позицию элемента. В нашем случае POS=2
скрытый текст

Выделить код

Код:

function getBalancePokupki(){
  iimPlayCode ('TAG POS=2 TYPE=A ATTR=HREF:/account/insert EXTRACT=TXT');
  var balance = iimGetLastExtract();
  window.console.log(balance);
  if(balance!='#EANF#'){
    return balance;
  }
  return false;
}

function getBalanceVivod(){
  iimPlayCode ('TAG POS=2 TYPE=A ATTR=HREF:/account/payment EXTRACT=TXT');
  var balance = iimGetLastExtract();
  window.console.log(balance);
  if(balance!='#EANF#'){
    return balance;
  }
  return false;
}


Повторный запуск выдаёт нужный нам результат
скрытый текст
http://s13.radikal.ru/i186/1702/e9/042f2fec95df.jpg

Функции для бонуса и для сбора алмазов делаем просто записав макросы и использовав методы описаные в предыдущем посте
скрытый текст
Пример макроса для бонуса который зделан с помощю записи в браузере

Выделить код

Код:

VERSION BUILD=8961227 RECORDER=FX
TAB T=1
URL GOTO=http://the-pirats.ru/account/bonus
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:bonus

Пример макроса для сбора алмазов который зделан с помощю записи в браузере

Выделить код

Код:

VERSION BUILD=8961227 RECORDER=FX
TAB T=1
URL GOTO=http://the-pirats.ru/account/store
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:sbor
TAG POS=1 TYPE=FONT ATTR=TXT:Рынок<SP>сбыта
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:sell

Сами функции

Выделить код

Код:

function bonus(){
  var macros = '';
  macros += 'URL GOTO=http://the-pirats.ru/account/bonus' + n;
  macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:bonus' + n;
  var rezultat = iimPlayCode(macros);
  window.console.log(rezultat);
  if(rezultat > 0){
    return true;
  }
  return false;
}

function almazy(){
  var macros = '';
  macros += 'URL GOTO=http://the-pirats.ru/account/store' + n;
  macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:sbor' + n;
  macros += 'TAG POS=1 TYPE=FONT ATTR=TXT:Рынок<SP>сбыта' + n;
  macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:sell' + n;
  var rezultat = iimPlayCode(macros);
  window.console.log(rezultat);
  if(rezultat > 0){
    return true;
  }
  return false;
}


Добавлено 17-07-2016 18:17:00
Следующими пунктами будет организация покупки пиратов и вывод средств. Здесь есть пара моментов которые стоит учесть. Функции getBalancePokupki() и getBalanceVivod() возвращают строку, а нам нужно число для нормального оперирования получеными данными. Увидеть это можно выполнив window.console.log(getBalancePokupki()+123), в консоли покажет 25.00123. Произошла конкатенация двух строк '25.00' и '123' вместо нужного сложения двух чисел. Для получения желаемого результата нужно преобразовать строку в число. В js для этого применяют:

parseFloat (для преобразования в число с плавающей точкой\запятой)


parseInt (для преобразования в целое число).

Видел также варианты с умножением на 1, но это может привести к непредсказуемым результатам, хотя можно взять на заметку. Для нас же вполне приемлемо оперировать целыми числами.

Теперь непосредсвенно к коду. Адгоритм наших действий будет следующим.

  • узнём баланс
  • сравниваем с самой дешевой покупкой
  • пока больше покупаем самого дорогого пирата исходя из состояния баланса
  • отминусовываем покупку от баланса
  • перходим к п3
  • узнаём баланс на вывод
  • если больше минималки выводим средства

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

    Выделить код

    Код:

    var pokupki = getBalancePokupki();
    var vivod = getBalanceVivod();
    
    if(pokupki){
      iimPlayCode ('URL GOTO=http://the-pirats.ru/account/farm');
      var balPokupki = parseInt(pokupki);
      while(balPokupki>100){
    
        if(balPokupki>1250000){
          iimPlayCode ('TAG POS=5 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
          balPokupki = balPokupki-1250000;
          continue;
        }
    
        if(balPokupki>250000){
          iimPlayCode ('TAG POS=4 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
          balPokupki = balPokupki-250000;
          continue;
        }
    
        if(balPokupki>50000){
          iimPlayCode ('TAG POS=3 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
          balPokupki = balPokupki-50000;
          continue;
        }
    
        if(balPokupki>1000){
          iimPlayCode ('TAG POS=2 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
          balPokupki = balPokupki-1000;
          continue;
        }
    
        iimPlayCode ('TAG POS=5 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
        balPokupki = balPokupki-100;
      }
    }
    
    if(vivod){
      var balVivod = parseInt(vivod);
      if(balVivod>10){
        var macros = '';
        macros += 'URL GOTO=http://the-pirats.ru/account/payment' + n;
        macros += 'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:sum CONTENT='+ balVivod + n;
        macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:swap' + n
        iimPlayCode (macros);
      }
    }


    Полный код нашего скрипта
    скрытый текст

    Выделить код

    Код:

    //Функции и пременные
    var n = '\n';
    var email = 'mail@yandex.ru';
    var pass = 'superCrutoyParol';
    
    function Avtorizacia(){
      var macros = '';
      macros += 'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:log_email CONTENT=' + email + n;
      macros += 'SET !ENCRYPTION NO' + n;
      macros += 'TAG POS=1 TYPE=INPUT:pASSWORD FORM=NAME:NoFormName ATTR=NAME:pass CONTENT='+ pass + n;
      macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*' + n;
      var rezultat = iimPlayCode(macros);
      if(rezultat > 0){
        return true;
      }
      return false;
    
    }
    
    function getBalancePokupki(){
      iimPlayCode ('TAG POS=2 TYPE=A ATTR=HREF:/account/insert EXTRACT=TXT');
      var balance = iimGetLastExtract();
      window.console.log(balance);
      if(balance!='#EANF#'){
        return balance;
      }
      return false;
    }
    
    function getBalanceVivod(){
      iimPlayCode ('TAG POS=2 TYPE=A ATTR=HREF:/account/payment EXTRACT=TXT');
      var balance = iimGetLastExtract();
      window.console.log(balance);
      if(balance!='#EANF#'){
        return balance;
      }
      return false;
    }
    
    function bonus(){
      var macros = '';
      macros += 'URL GOTO=http://the-pirats.ru/account/bonus' + n;
      macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:bonus' + n;
      var rezultat = iimPlayCode(macros);
      window.console.log(rezultat);
      if(rezultat > 0){
        return true;
      }
      return false;
    }
    
    function almazy(){
      var macros = '';
      macros += 'URL GOTO=http://the-pirats.ru/account/store' + n;
      macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:sbor' + n;
      macros += 'TAG POS=1 TYPE=FONT ATTR=TXT:Рынок<SP>сбыта' + n;
      macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:sell' + n;
      var rezultat = iimPlayCode(macros);
      window.console.log(rezultat);
      if(rezultat > 0){
        return true;
      }
      return false;
    }
    
    // Тело скрипта
    var macros = '';
    macros += 'TAB T=1' + n;
    macros += 'URL GOTO=http://the-pirats.ru/ \n';
    iimPlayCode(macros);
    
    var pokupki = getBalancePokupki();
    if(!pokupki){
      Avtorizacia();
    }
    
    bonus();
    almazy();
    
    var pokupki = getBalancePokupki();
    var vivod = getBalanceVivod();
    
    if(pokupki){
      iimPlayCode ('URL GOTO=http://the-pirats.ru/account/farm');
      var balPokupki = parseInt(pokupki);
      while(balPokupki>100){
    
        if(balPokupki>1250000){
          iimPlayCode ('TAG POS=5 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
          balPokupki = balPokupki-1250000;
          continue;
        }
    
        if(balPokupki>250000){
          iimPlayCode ('TAG POS=4 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
          balPokupki = balPokupki-250000;
          continue;
        }
    
        if(balPokupki>50000){
          iimPlayCode ('TAG POS=3 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
          balPokupki = balPokupki-50000;
          continue;
        }
    
        if(balPokupki>1000){
          iimPlayCode ('TAG POS=2 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
          balPokupki = balPokupki-1000;
          continue;
        }
    
        iimPlayCode ('TAG POS=5 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');
        balPokupki = balPokupki-100;
      }
    }
    
    if(vivod){
      var balVivod = parseInt(vivod);
      if(balVivod>10){
        var macros = '';
        macros += 'URL GOTO=http://the-pirats.ru/account/payment' + n;
        macros += 'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:sum CONTENT='+ balVivod + n;
        macros += 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=NAME:swap' + n
        iimPlayCode (macros);
      }
    }
    
    


    сылка на pastebin http://pastebin.com/YYWJ6r3J

    P.S. Прошу простить за возможные орфографические ошибки (при указании исправлю), адекватная критика приветствуется. Стоит учитывать что скрипт носит обучающий характер и не претендует на чистоту кода и оптимальность алгоритма действий.

  • Отредактировано InfSub (05-11-2016 19:20:26)


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

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

    Отсутствует

     

    №919-11-2016 22:32:27

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

    Re: Мини FAQ по iMacros for Firefox

    решение для смены личности в Tor

    решение для смены личности в Tor:

    Выделить код

    Код:

    var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] 
                 .getService(Components.interfaces.nsIWindowMediator)
                 .getMostRecentWindow("navigator:browser");        
    
    
    // Пример использования
    iimPlayCode('URL GOTO=https://whoer.net');
    iimPlayCode('WAIT SECONDS=5');
    wm.torbutton_new_circuit(); // Меняем цепочку соединения
    iimPlayCode('URL GOTO=https://whoer.net');
    
    

    code by: Nagibaka


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

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

    Отсутствует

     

    №10Сегодня 10:20:32

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

    Re: Мини FAQ по iMacros for Firefox

    Примеры имитации клика мыши на Javascript

    Примеры имитации клика мыши на Javascript:

    Выделить код

    Код:

    // Кликнет по кнопке субмита
    window.document.querySelector("input[type=submit]").click();
    
    // Кликнет по элементу с id="sbm"
    window.document.querySelector("#sbm").click();
    
    // Кликнет по первому элементу с классом class="btn"
    window.document.querySelector(".btn").click();
    
    // Кликнет по второму элементу с классом class="btn"
    window.document.querySelectorAll(".btn")[1].click();

    code by: Nagibaka


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

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

    Отсутствует

     

    Board footer

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