Перейти к содержимому


Скриптовый язык программы Epsilon

Хочу представить небольшой мануал по скриптовому языку 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]

Думаю по названию ярлыков понятно их значение.

Если есть вопросы – пишите в комментарии.

Категории Новости.