Главная > XRumer > Делаем мод для XRumer-а. Часть 3-я обучаем Хрумер логиниться в досках

Делаем мод для XRumer-а. Часть 3-я обучаем Хрумер логиниться в досках

3rd Декабрь, 2008

Обучаем Хрумер логиниться в досках.

Привет всем, кто с нами. Продолжаем нашу повесть про обучение Xrumer-a.
Сейчас мы научим логиниться в досках. Сразу скажу, что обычно это не нужно – Xrumer прекрасно поддерживает сессии и большинство досок считает вас залогонеными сразу после регистрации, но, как говорится, случаи бывают разные.
Первым делом обучим XRumer отличать ресурсы где мы уже залогонены, от ресурсов где нам предстоит войти под своим именем. Запускаем любимы браузер, идем в любую доску и логинимся там ручками… Сделали? Что изменилось? Правильно, появилась надпись «Ваш Профиль» — чем не флаг для XRumer-а? Смотрим как эта надпись выглядит в HTML виде и добавляем ее к списку маркеров флага LOGGEDIN (надеюсь Вы еще не забыли, что список флагов состояний программы находится в xmessages.txt). Для версии 5.02 должно получится так:

#<strong>Logged in as:;>Log Out</a>;act=Login&CODE=03;loged in;&action=logout;?action=logout;?logout=true;Ваша регистрация закончена.;вы вошли как:;registration is now complete;you may now begin posting using your new username and password;Ваша регистрация теперь завершена.;Спасибо, Вы зарегистрировались и авторизованы;logout.php;Регистрация завершена. Вход и переадресация...;Вы зашли как <b>;hello, dear <b>;Вы зашли под логином: ;>You are logged on as<br>;>0 messages</a>, 0 are new.<br;index.php?action=logout;>You may now begin posting using your new UserName and Password.<;/ubb/my_profile.;Your registration is complete and you are now logged in;>logout</a>;>log out [ ;>Вы вошли как <A href="javascript://";<p class="home"><b>Вошли как:;<a href="log_off_user.asp";>Ваш Профиль<
LOGGEDIN

Теперь научим XRumer находить форму входа. Форма во всех рассматриваемых досках находится по адресу tools.php?event=login , следовательно нам нужно прописать в файле xurl.txt правило, согласно которому хрумер будет перемещаться на страницу логина.
Добавляем в xurl.txt следующие строки:

AddLinkRule([
0,'tools.php?event=login'
],URL_TOLOGIN);

Следующий этап – заполнение и отправка формы регистрации.
Смотрим HTML код формы:

<form action="tools.php?event=regenter" method="post">
<strong>Вход в систему</strong>
Имя:<input class="miniinput" name="myname" />
Пароль:<input class="miniinput" name="mypassword" type="password" />
<input class="longok" type="submit" value="Войти" />
</form>

Как видим XRumeru нужно заполнить всего 2 поля: myname и mypassword. Добавляем эти поля в файл xas.txt, не забывая, что Хрумер учитывает и вхождение слов в поля.
В итоге xas.txt примет такой вид:

#!mail;email
EMAIL
#url
HOMEPAGE
#login;myname
NICKNAME
#!password
PASSWORD
#gorod;icq;phone;company;about

#rules
1

Может возникнуть вопрос – куда делось поле mypassword? А никуда не делось – Хрумер увидит , что описанное нами в xas.txt имя password входит в mypassword и прекрасно его заполнит.
Проверяем что у нас получилось – включаем режим «Рассылка от ранее зарегистрированного пользователя» и нажимаем кнопочку Тест. Тут нас ожидает неприятный сюрприз — Хрумер грязно выругался фразой «Result: не нашлось формы для отправки; «. Проверяем содержимое папки Debug — видим, что Хрумер таки заходил на страницу логина, но форму чего-то незаполнил… Уж не знаю с чем это связано, но сдается мне именно с этим связаны крики о плохом пробиве в режиме «Рассылка от ранее зарегистрированного пользователя» . Анализ ситуации привел меня к весьма неутешительному выводу – хрумер хочет найти полноценную форму с сабжектом и textarea, и ему абсолютно посрать на то, что мы тут должны всего-то залогониться… У нас нет особого выбора кроме как сказать ему, что на данной страничке эти поля не является жизненно необходимыми. Открываем файл флагов состояний (xmessages.txt) и добавляем признак формы логина (например строку name=mypassword) для флагов FORCE_TEXTAREA и FORCE_SUBJECT.
Получатся такие 2 строки:

#name=mypassword
FORCE_TEXTAREA
#name=mypassword
FORCE_SUBJECT

Перезапускаем XRumer и снова нажимаем кнопочку Тест.
Изучаем папку Debug и радуемся полученному результату.

З.Ы.
не забудьте по окончании теста снять галочку «Рассылка от ранее зарегистрированного пользователя», а то завтра на форуме Ботмастера будет куча гневных постов из разряда «пробив гавно» :-)

XRumer ,

Комментарии закрыты.