Доброй ночи, XGM!!!
Недавно обратил внимание на такую скромную, но достаточно популярную вещь на нашем сайте, в частности форуме - оффтоп зона, кто не знает что это, вперед на форум и листаем вниз страницы.
Стало очень интересно как была реализована эта интересная штука. Немного покопавшись в исходниках страницы и скриптах, нашел очень интересный запрос, благодаря которому держится вся эта штуковина. Немного изучив передаваемые параметры, понял что писали хорошие люди =) Лишнее число постов из чата не получишь, что очень удобно. Решил таки прокачать скилл работы с запросами на C#.
Пораскинул мозгами, подумал, а что вроде ничего сложного, чтобы реализовывать простенький клиент. Быстро набросал код для получения списка последних сообщений. После первого же теста, потерпел неудачу. Вернулся не тот код, который я ожидал. Я был просто в шоке - опера, выдает одно, программа другое. потом все таки вспомнил, что есть куки =). Перебрал все куки, нашел подходящие и все заработало. Теперь у меня есть получение списка недавних сообщений из оффтопки форума.
Дальше решил прикрутить аватарки пользователей. Посмотрел пару профилей, как формируются URI авы, но увы не доперло. В итоге оказалось, что там как то криворуко всё сделано, хотя это еще мягко сказано, URI зависит от кол-ва ранее загруженных картинок в профиль. В общем бред полный. Пришлось грузить страницу профиля и тырить от туда. Ну это еще фигня. Сделалось за один присест. Дальше сделал отправку сообщений, ну это было не сложно, простой POST запрос и никаких подводных камней. Но всё это я пока что делал со статическими кукисами, скопированными вручную из оперы. Пришло время пилить авторизацию. Вот тут то я и встретил 1000 и еще 24 камня проблем. Решил попробовать авторизацию через форму входа форума. Посмотрел код формы, проверил всё это прокси. Собрал запрос. Выполняю его, и ...
... получаю фиг с маслом. Сравниваю запрос от оперы и от моего приложения. Идентичны, но почему то опере в ответ приходят новые куки с подтвержением авторизации, выдачей пользователя и пароля сессии. Моему же приложению, как говорил выше ничего. Мучился с этой фигней пару дней. Забил. Вот буквально пару часов назад загорелся идеей доделать эту гребаную авторизацию. Поэтому вооружившись моим треклистом с металлом и здравым смыслом, открыл прокси с оперой и стал изучать процесс авторизации. После часа бредовых идей, наконец то понял всю тайну, спасибо кст. скорпу, что немного намекнул. В общем прикрутив авторизацию я получил такой вот простенький клиент.
Недавно обратил внимание на такую скромную, но достаточно популярную вещь на нашем сайте, в частности форуме - оффтоп зона, кто не знает что это, вперед на форум и листаем вниз страницы.
Стало очень интересно как была реализована эта интересная штука. Немного покопавшись в исходниках страницы и скриптах, нашел очень интересный запрос, благодаря которому держится вся эта штуковина. Немного изучив передаваемые параметры, понял что писали хорошие люди =) Лишнее число постов из чата не получишь, что очень удобно. Решил таки прокачать скилл работы с запросами на C#.
Пораскинул мозгами, подумал, а что вроде ничего сложного, чтобы реализовывать простенький клиент. Быстро набросал код для получения списка последних сообщений. После первого же теста, потерпел неудачу. Вернулся не тот код, который я ожидал. Я был просто в шоке - опера, выдает одно, программа другое. потом все таки вспомнил, что есть куки =). Перебрал все куки, нашел подходящие и все заработало. Теперь у меня есть получение списка недавних сообщений из оффтопки форума.
Дальше решил прикрутить аватарки пользователей. Посмотрел пару профилей, как формируются URI авы, но увы не доперло. В итоге оказалось, что там как то криворуко всё сделано, хотя это еще мягко сказано, URI зависит от кол-ва ранее загруженных картинок в профиль. В общем бред полный. Пришлось грузить страницу профиля и тырить от туда. Ну это еще фигня. Сделалось за один присест. Дальше сделал отправку сообщений, ну это было не сложно, простой POST запрос и никаких подводных камней. Но всё это я пока что делал со статическими кукисами, скопированными вручную из оперы. Пришло время пилить авторизацию. Вот тут то я и встретил 1000 и еще 24 камня проблем. Решил попробовать авторизацию через форму входа форума. Посмотрел код формы, проверил всё это прокси. Собрал запрос. Выполняю его, и ...
... получаю фиг с маслом. Сравниваю запрос от оперы и от моего приложения. Идентичны, но почему то опере в ответ приходят новые куки с подтвержением авторизации, выдачей пользователя и пароля сессии. Моему же приложению, как говорил выше ничего. Мучился с этой фигней пару дней. Забил. Вот буквально пару часов назад загорелся идеей доделать эту гребаную авторизацию. Поэтому вооружившись моим треклистом с металлом и здравым смыслом, открыл прокси с оперой и стал изучать процесс авторизации. После часа бредовых идей, наконец то понял всю тайну, спасибо кст. скорпу, что немного намекнул. В общем прикрутив авторизацию я получил такой вот простенький клиент.
Скачать чат
Качаем, пробуем, комментируем
Качаем, пробуем, комментируем
Поскольку другие хостинги изображений запретили, а screenweb не поддерживается, то я в следующий раз попробую написать простенький скриншотер для xgm, уже есть идеи реализации.
В-третьих, получил опыт
а ещё:
Ну, в общем для сумрака там у tr class=deleted, а для репортов report
И раз GadenbIsh сказал как отличить обычный пост, от сумрака и репорта, то какие цвета вам нужны?
Т.е. без сообщений =)