Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Бот для чата mail.ru (https://forum.antichat.xyz/showthread.php?t=26531)

SMERSH 04.11.2006 15:13

Бот для чата mail.ru
 
Выложил исходник бота для чата mail.ru. Кому интересно - сюда

nc.STRIEM 04.11.2006 17:13

Цитата:

Сообщение от SMERSH
Выложил исходник бота для чата mail.ru. Кому интересно - сюда

Чет я там ничего не нашол! дай ссылку конкретно на файл!

tclover 04.11.2006 17:30

Цитата:

Сообщение от nc.STRIEM
Чет я там ничего не нашол! дай ссылку конкретно на файл!

Просто форум криво обрабатывает ссылки
Код:

http://www.bit-team.com/modules.php?name=Articles&file=view&articles_id=18

SMERSH 04.11.2006 22:49

http://www.bit-team.com/modules.php?name=Articles&file=view&articles_id=18

SMERSH 08.11.2006 15:47

Выложил еще один усовершенствованный исходник бота для чата mail.ru.

http://bit-team.com/modules.php?name=Articles&file=view&articles_id=20

fucker"ok 08.11.2006 23:11

Мде. Я своего бота боюсь в публик выкладывать, а ты так сразу... Щас народ понесется из него флудеры делать и всеких "мертвых" людей, для повышения рейтинга каналов. Накроется чат :)
Но все-равно ++

wffic 12.11.2006 15:56

Классно!
Автору огромный респект.
Но у мня есть пара глупых вопросов

* Почему авторизация проходит в 5 запросов? Я догадываюсь, что это как-то связано со спецификой чата, но непонятно как. То есть я прошу объяснить эту самую спецификацию (всегда думал, что авторизация проходит только по одной схеме - отправка запроса > получение кук в ответе > возможность работы в чате посредством этих кук. Теперь оказывается, что первых кук недостаточно)

Как авторизацию делает fucker"ok?

* Есть ли возможность реагировать на события типа появления новых сообщений, захода новых юзеров и т.д. не обновляя окно каждый раз? Ведь браузер не обновляется.

SMERSH 12.11.2006 18:33

Привет wffic от подельника - <b>Hrumtik</b>'а! =))

Как видно из исходника, сама авторизация проходит в 3 запроса:
1. POST .../cgi-bin/auth (в ответ куки MailUser, Mpop и t +ссылка [http://my.chat.mail.ru/cgi-bin/checkcookie?id=...])
2. GET [ссылка] (в ответ ссылка-2 [http://chat.mail.ru/?mra=&roomleft=&nick=...])
3. GET [ссылка-2] (в ответ куки MRCU и TICKET +ссылка [.../cgi-xml/chat])
Самые важные куки MRCU и TICKET получены, используя их можно общаться в чате и прочее...

Четвертый запрос - это запрос на [.../cgi-xml/chat], т.е. на страничку с тремя фрэймами (чат, лидер чата и список чатлан), которая отображается при входе в чат через браузер.

Пятый запрос - это запрос как раз на фрэйм чата [.../cgi-xml/irc] с этой страницы, т.к. для общения нужен только он... в процессе используется также фрэйм списка чатлан - это отдельная функция с запросом на [.../cgi-xml/list]... +функция с запрсом на список комнат [.../data-xml/header.html#] +фрэйм "лидер чата", ф-я с запросом на [.../home/smsleader.html].... и пр. (не включено в статью)

Очевидно что четвертый запрос можно игнорировать перескачив сразу на фрэйм чата [.../cgi-xml/irc], но возиться с этим желания нет =), тем более что функция PostGet все упращает.

Почему столько запросов, это уже фантазия майловцев.. захотят сделают и 10 запросов для авторизации... это ничего не меняет, возможно только перегрузка их сервера... хотя перегруз вряд ли им грозит =)

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

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

Хотел еще что-то понаписать.. да некогда...
Все это безобразие написано и на Delphi и пр., ... и не только для чата и не только для Mail.Ru...=))... но для статьи хватит и Mail.Ru с PHP =)

Hrumtik 12.11.2006 21:26

Вот такие вот дела, пока дождеси письма при регистрации на форуме.... мля... расхочешь вапще сюда заходить :)

wffic 13.11.2006 00:45

@Hrumtik: Я вот дождался и спросил чего хотел =)

@SMERSH: Спасибо, с запросами всё понятно =)
Я посмотрел скрипт внимательно и увидел следущее: на пятом запросе режим сокета устанавливается в "неблокирующий" и вместо чтения ответа с сервера после запроса начинается бесконечный цикл. Я понимаю так: режим неблокирующий и сокет не закрыт => в него переходит поток данных с сервера, в котором и содержатся все события. Нужно только непрерывно его читать.

Как же это сделать? =)

Цитата:

прекрасно поймете куда и что нужно вставить
К сожалению, не очень понимаю. Написать fget вместо sleep?

(Я не слишком знаю пхп и сетевое программирование... Я только начинаю =))


Время: 03:49