Делаем мод для XRumer-а. Часть 2-я регистрация в ресурсах.
Пришло время обучить XRumer регистрации в досках. Тут не все так просто. Сначала нам нужно объяснить ему, что ОБЯЗАТЕЛЬНО нужно регистрироваться иначе он будет пытаться постить анонимно… разумеется в настройках XRumer-а есть галочка «Обязательная регистрация + постинг»,

но мы не ищем легких путей :).
Давайте найдем признак, который сможет подсказать XRumer-у, что нужно обязательно зарегистрироваться. Что такое есть уникальное в движке, что может служить признаком? Да что угодно! Хоть кусок ссылки на страницу регистрации! Так и запишем!
Открываем файл xmessages.txt , находим в нем строку REGANYWAY и в конец предыдущей строки добавляем ;event=reg
Для XRumer-а это будет служить подсказкой, что первым делом надо завести тут аккаунт.
Отлично, теперь надо обьяснить ему что для регистрации аккаунта нужно перейти по ссылке tools.php?event=login . За логику перемещения XRumer-а по сайтам отвечает файл xurl.txt, читаем справку:
Синтаксис
AddLinkRule([область_поиска,'строка', необязательный_параметр_логики,
...
], метка_ссылки);
Где:
область поиска – цифровое значение, задающее, где именно производится поиск строки: 0 – ссылка в нижнем регистре, 1 – ссылка как есть в
HTML-коде, 2 – ссылка вместе с анкором в нижнем регистре
строка – строчка, которая должна входить в область поиска, чтобы данное правило выполнялось
необязательный_параметр_логики – здесь может быть прописан или не прописан false; если прописан false, это значит, что строка наоборот НЕ
должна присутствовать в области поиска
метка ссылки – это метка, которой будет помечена данная ссылка если заданное правило выполняется:
URL_TONEWPOST – ссылка на создание нового сообщения / топика
URL_TOREGISTRATION – ссылка на регистрацию
И согласно синтаксису описанному в справке добавляем в него правило:
AddLinkRule([ 0,'tools.php?event=reg' ],URL_TOREGISTRATION);
Важный момент – XRumer зверь своенравный и есть у него одна черта не описанная в справке – первое правило файла xurl.txt он игнорирует. Поэтому стоит первым правилом поставить какую-то пустышку, например
AddLinkRule([0,'action=logout' ],'');
Тогда на данном этапе наш xurl.txt примет вид:
AddLinkRule([0,'action=logout' ],''); AddLinkRule([ 0,'tools.php?event=reg' ],URL_TOREGISTRATION);
Следующий этап – обучение полям формы регистрации. Тут все очень просто – смотрим на форму
на страничке http://board.baxonet.com/tools.php?event=reg и понимаем, что нам нужно заполнить поля:
Имя Пароль E-mail Поставить галочку «С правилами ознакомлен» Ну и конечно-же URL
Остальные по желанию.
Смотрим html код странички , точнее фрагмент отвечающий за вывод формы:
<form action="tools.php?event=reguser" method="post">
<strong>Регистрация</strong>
Имя:<span style="color: #ff0000;">*</span><input class="maxiinput" maxlength="25" name="login" />
Пароль:<span style="color: #ff0000;">*</span><input class="maxiinput" maxlength="25" name="password" type="password" />
E-mail:<span style="color: #ff0000;">*</span><input class="maxiinput" maxlength="40" name="email" />
Город:<input class="maxiinput" maxlength="60" name="gorod" />
URL:<input class="maxiinput" maxlength="40" name="url" />
ICQ:<input class="maxiinput" maxlength="15" name="icq" />
Телефон:<input class="maxiinput" maxlength="20" name="phone" />
Организация:<input class="maxiinput" maxlength="50" name="company" />
Коротко о себе:<textarea class="maxiinput" name="about"></textarea>
<input name="rules" type="checkbox" />С <strong><a href="tools.php?event=about">правилами</a></strong> ознакомлен
<input class="longok" type="submit" value="Зарегистрироваться" />
</form>
Обнаруживаем, что
Имени соответствует поле – login
Паролю – password
E-mail-у – email
галочке «С правилами ознакомлен» – rules
URL – url
Важно! Мы видим, что кроме вышеперечисленных полей есть еще и поля gorod, icq, phone, company, about – нам они не нужны, но если XRumer не будет знать как их заполнять, то форму он не заполнит и не отправит. Поэтому важно собрать все поля из формы, а в файле ассоциаций присвоим им пустое значение.
Все поля собраны, открываем справку по файлу ассоциаций xas.txt:
Синтаксис
#имя_поля1;имя_поля2;…
присваиваемое_значение
Где «имя_поля» – это имя поля формы в HTML (например, в
<input name="login" />
- имя поля это login), а «присваиваемое_значение» – то значение,
которым должны заполяться данные поля:
NICKNAME – никнейм пользователя
PASSWORD – пароль
MESSAGE – текст отправляемого сообщения
EMAIL – адрес электронной почты
SUBJ1 – заголовок топика
HOMEPAGE – домашняя страница
любое другое значение – значение, указанное пользователем
Прописываем правила в соответствии с синтаксисом:
#!mail;email
EMAIL
#url
HOMEPAGE
#login
NICKNAME
#password
PASSWORD
#gorod;icq;phone;company;about
#rules
1
Пояснений, пожалуй, требуют только последние строки. Поле rules у нас фактически чекбокс и приличный браузер должен отослать 1 если этот чекбокс отмечен, соответственно мы прописываем 1 в строке «присваиваемое_значение». Поля gorod, icq, phone, company, about мы решили не заполнять, соответственно оставляем там пустую строку (но заполнить их абсолютно не проблема, кому понадобится – может сделать в рамках закрепления пройденного материала).
Ну и отдельное ВНИМАНИЕ на поле email! Все заметили, что там появилось упоминание !mail ? Это фича XRumer-а , хотя она там и не нужна (по логике), но без нее ничего работать не будет… не пытайтесь это понять, просто запомните !mail; ставить надо полюбому.
Пришло время проверить чему мы там наобучали XRumer.
Создадим простейший тестовый проект – что-то типа этого:

Запускаем хрумер, в поле урла для тестирования вводим http://board.baxonet.com, жмем на кнопку Тест, закрываем хрумер.

Идем в папку Debug ищем там файл вида LAST GET idх.htm , просматриваем его в браузере, если видим надпись типа «Вы успешно зарегистрированы.» , значит все сделали правильно. Если не видим такой надписи – значит где-то допустили ошибку – проверяйте содержимое измененных файлов.
Теперь нам нужно объяснить Хрумеру , что наличие строки «Вы успешно зарегистрированы.» является 100 процентным признаком успешной регистрации. Для начала посмотрим наш файл в виде html – обнаруживаем, что для машины наш признак будет выглядеть так:
>, Вы успешно зарегистрированы. <
Теперь добавляем этот признак в файл xmessages.txt , для этого находим в нем строку
REGISTERED
И к строке находящейся над REGISTERED добавляем
;>, Вы успешно зарегистрированы. <
Все, Хрумер обучен регистрации на досках WR-Board.
Правда просто?
А если регистрация проходит в 2-3 этапа?
NIM, смотря какие 2 этапа.
Есть вариант когда рега идет с 2 формами последовательно – там вообще без проблем (кстати на многих форумах такая рега) и вариант когда 2-й этап реги идет после активации (ссылко на активацию отправляется на мыло) – в этом случае нужно xpop.txt поправить.
Может покажешь на примере в след статье, было бы полезно для всех
NIM, кинь на форуме урл в личку. Желательно не раньше понедельника… а то несовсем понятно с чем проблема.