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

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№117-07-2016 18:12:56

dvomaks
Участник
 
Группа: Members
Зарегистрирован: 01-07-2016
Сообщений: 33
UA: Firefox 45.0

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

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

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

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

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

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

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

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

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


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

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

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


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

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


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

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

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


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


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

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

скрытый текст
c766943bc938.jpg

Откроем firebug и помотрим как мы можем определить наличие этого элемента.
скрытый текст
5ba13fbae6ee.jpg

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


После запуска в консоли видим печальную картину
скрытый текст
96e33cce1d15.jpg

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


Повторный запуск выдаёт нужный нам результат
скрытый текст
042f2fec95df.jpg

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


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

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


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

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

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

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

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


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


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

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


исправлено - код публикуется в тегах code внутри спойлера, а не в source или каких либо иных
картинки (скрины) должны быть загружены на фото-хостинг анонимно, без использования собственных аккаунтов, на данном хостинге

InfSub

Выделить код

Код:

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=*

Отредактировано dvomaks (17-07-2016 18:17:00)

Отсутствует

 

№217-07-2016 21:38:02

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

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

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


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


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

Отсутствует

 

№313-11-2016 18:39:05

7buldozer7
Участник
 
Группа: Members
Зарегистрирован: 31-10-2016
Сообщений: 5
UA: Chrome 54.0

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

Спасибо, классная статья:)

Отсутствует

 

Board footer

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