Хочу представить небольшой мануал по скриптовому языку Epsilon’а.
Возможно назвать его скриптовым языком слишком громко, т.к. он достаточно ограничен в своих возможностях и намного проще в плане структуры, чем php в том же XHE, однако он намного более обобщен. Благодаря чему можно написать 1 скрипт под множество модификаций и движков, а не писать скрипт под каждый сайт/двиг.. Наличие скриптов позволяет очень гибко настраивать эпсилон для регистрации и постинга для тех плащадок, которые не используются другими программами.
Программа находится в стадии альфы, поэтому за косяки сильно не бить.
Все скрипты лежат в папке “base” в папке эпсилона. Везде в скриптах можно использовать макросы и вариации (если нет – значит я где то накосячил). Список макросов-ниже.
Прежде всего создается правило для инициализации скрипта – условие по которому программа будет выбирать используемый скрипт.
Эти правила лежат в “all.conf”:
“[папка]” это ставится ПЕРЕД условиями. Вместо “папка”, пишите ту директорию, в которой будет лежать скрипт.
Есть 2 вида условий (в этом файле):
1.”link=” – условие срабатывает, если в url который передан программе есть тот отрезок который тут указан.
Пример:
“link=mail.rambler.ru”, сработает при “mail.rambler.ru”, “mail.rambler.ru/help”, “http://mail.rambler.ru” и т.д.
2.”code=” – то же самое, однако поиск производится в коде страницы.
Как только скрипт доходит до подходящего условия, дальнейший поиск прекращается. Стоит вверху располагать индивидуальные скрипты (скрипт для одного движка, форума, блога и т.д.), а ниже – обобщенные (группы движков).
Тут же есть еще файл “mail.conf”. В нем указаны маски для поиска ссылок в письмах и определения подходящих скриптов.
Тут, по одной в строку, расположены маски для регулярных выражений при поиске ссылок. Над ними – принадлежность с скрипту.
Перейдем к папке скрипта:
В папке скрипта есть 4 основных файла:
- “reg1.conf”
- “reg2.conf”
- “post.conf”
- “rez.conf”
Это регистрация до подтверждения почты, действия после подтверждения, постинг и файл для определения результатов.
У первых трех файлов одинаковая структура и команды. Рассмотрим их:
Все команды, кроме команд присвоения начинаются c “@”.
“@no_alert” – в Эпсилоне реализована система подавляющая js alert(т.к. из-за него может остановиться работа потока), но система не совершенна и может поломать скрипты. Эта команда отключает системы подавления алертов, т.к. порой это единственный вариант.
“@go url” – переход на адрес URL. В адресе можно использовать макросы.
“@wait 1″ – подождать 0.1 секунду. Иногда это бывает полезно. Не забывайте, что программа сама дождется загрузки страницы, и без этой команды.
“@homeurl” – вернуться к изначально заданному адресу. Программа перейдет на ту страницу, которая была в списке.
“@getlinkN” – вместо N может быть цифра или буква. Обращение к отдельному файлу с конфигами. Имя файла с конфигурацией – текст команды + “.conf”(@ не учитывается). В данном случае “getlinkN.conf” .Позволяет кликнуть на ссылку по куску имени или анкора. Как только найдется подходящая ссылка, по ней происходит клик и дальше функция прекращает работу.
“@getcatlink” -oбращение к отдельному файлу с конфигами. Имя файла с конфигурацией – “getcatlink.conf” в папке скрипта. Там по одному в строку указываются те куски url которые должны присутствовать в адресе url для определения ссылки, как ссылки на раздел форума.
“name=>value” – присваивает однострочному полю с именем name значение value.
“name=check>1″ отмечает чекбокс с именем name.
“name=check>0″ – снимает отметку с чекбокса с именем name.
“name=sein>2″ – ставит указаны выпадающий список на указаный индекс. Индекс от имени не зависит, это только номер в списке. Начинается от 0.
“name=>in>value” – меняет значение innerhtml элемента с именем name на value. Подходит для заполнения много строчных тексбоксов.
“@captchaN” – вместо N может быть цифра или буква. Обращение к 2 файлам с конфигами. Имя файла с конфигурацией – текст команды + “_in.conf” и текст команды + “_out.conf”, при этом @ удаляется из имени.
“@click name” – эмулировать клик по элементу с именем name.
“@submit name” – эмулировать отправку формы с именем name.
“name=is>value” заполняет одно строчное тестовое поле в названии которого присутствует name значением value. Например заполнит поля “name1″, “myname” и т.д.
“name=isin>text” заполняет много строчное текстовое поле в названии которого присутствует name значением value. Например заполнит поля “name1″, “myname” и т.д.
“@click_by_value value” – эмулирует клик на кнопке (или дрегом элементе типа “input”), в поле value которого содержится (в том числе и частично) заданое значение.
“@submit_by_action value” – эмулирует отправку формы, в поле action которой входит (в том числе и частично) значение value.
“@if_code |value| then command” – условие. Искомая строка должна быть между двумя знаками “|”, если в коде странице есть совпадение, тогда выполняется команда стоящая за “then”, это может быть любая из перечисленных выше.
Макросы:
Текст автоматически заменяется на указанное значение.
{login}-логин из настроек проекта.
{mail} – почта.
{password} – пароль.
{url} -url, переданный программе
{maiserv} – сервер почты
{mailport} – порт почты
{mailogin} -логин почты
{mailpass} – пароль почты
{fio} – имя
{bday} – день из даты дня рождения
{bmonth} – месяц рождения
{byear} – год рождения
{icq} – icq
{loc} – город/место обитания
{body} – сообщение
{theme} – тема сообщения
{subtheme} – подтема
{myurl} – домашний url
Файл “rez.conf”:
Этот файл поваляет определить результат регистрации, поиском на странице опр. сообщение.
Структура:
Сначала список искомых значений, в одну строку, разделенный “;”
Затем ярлык результата, например “[INVALID]“.
Список ярлыков:
[REGISTERED]
[BANNED]
[WRONGPLACE]
[WRONGACCOUNT]
[ACTIVATION]
[PREMODERATION]
[TOOLARGE]
[BADEMAIL]
[TAKEN]
[REMOVEURL]
[WAIT=15]
[WAIT=30]
[WAIT=60]
[WAIT=6]
[WAIT=300]
[NEEDFIELD]
[REMOVED]
[POSTLIMIT]
[PICTOTRY]
[SUCCESS]
[INVALID]
[REGISTERED]
[BANNED]
[WRONGPLACE]
[WRONGACCOUNT]
[ACTIVATION]
[PREMODERATION]
[TOOLARGE]
[BADEMAIL]
[TAKEN]
[REMOVEURL]
[WAIT=15]
[WAIT=30]
[WAIT=60]
[WAIT=6]
[WAIT=300]
[NEEDFIELD]
[REMOVED]
[POSTLIMIT]
[PICTOTRY]
[SUCCESS]
[INVALID]
Думаю по названию ярлыков понятно их значение.
Если есть вопросы – пишите в комментарии.