Описание
Исходники этого бота можно рассматривать как дополнение к статье Программная отправка комментариев в livejournal. Так как все примеры в серии статей про работу с сервером ЖЖ написаны на языке C#, то я решил вынести вынести этого бота отдельно, но по сути здесь реализован все тот же алгоритм, что описан в упомянутой выше статье.
Я очень надеюсь, что вы не будете использовать этого бота для рассылки спама, а будете применять его в более полезных задачах.
Исходники и пример использования
Скачать бота вы можете здесь.
Работу бота я описывать не буду, потому что он работает точно так же, как написано в статье, а просто приведу пример его использования.
Если нужно отправить комментарий в пост, то использование бота будет выглядеть примерно так:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from bot import LJbot
if __name__ == "__main__":
try:
postUrl = "http://jenyay-test.livejournal.com/21935.html"
login = u"USERNAME"
password = u"PASSWORD"
bot = LJbot (login, password)
subj = unicode ("Превед", "utf-8")
message = unicode ("Превед, ботег!!!", "utf-8")
bot.postComment (postUrl, message, subject = subj, replyto = 0)
except ServerError:
print "Server Error"
except AuthError:
print "Auth Error"
except ParseError:
print "Parse Error"
Разумеется, что вы должны подставить свой логин и пароль.
Если нужно ответить на комментарий, то в качестве параметра replyto нужно ввести идентификатор комментария:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from bot import LJbot
if __name__ == "__main__":
try:
postUrl = "http://jenyay-test.livejournal.com/21935.html"
login = u"USERNAME"
password = u"PASSWORD"
bot = LJbot (login, password)
subj = unicode ("Превед", "utf-8")
message = unicode ("Превед, ботег!!!", "utf-8")
bot.postComment (postUrl, message, subject = subj, replyto = 189)
except ServerError:
print "Server Error"
except AuthError:
print "Auth Error"
except ParseError:
print "Parse Error"
История версий
1.2
- Изменения, связанные с изменениями на сервере ЖЖ
1.1
- Добавил возможность отвечать на комментарии.
- Почистил код.
1.0
Пожалуйста, оцените материал
Рейтинг 3.8/5. Всего 5 голос(а, ов)
Бот комментит только один раз. Если попробовать еще раз, ничего не произойдет, ровно как и если удалить коммент, и попробовать еще раз.
Jenyay 22.12.2010 - 22:28
У меня такое же было, если слать одни и те же сообщения. Если слать разные сообщения, то коммент отправлялся. Скорее всего это какой-то антиспам в ЖЖ работает.
Привет. Есть идеи как получить все комменты к любой статье? И своей, и чужой.
pstas.livejournal.com 06.03.2011 - 19:04
Прежде всего - спасибо! Я пользуюсь Вашим кодом для уведомления о рейтинге голосований в ЖЖ (http://pollswatcher.org). У меня к Вам следующий вопрос - можно ли модифицировать бот для отправки частных сообщений в ЖЖ (LJ user->profile->send message)?
Jenyay 06.03.2011 - 19:14
Я не разбирался с тем, как отправлять такие сообщения, но после Вашего коммента заинтересовался этим вопросом :) Если руки дойдут, надо будет попробовать.
pstaslivejournalcom 13.03.2011 - 18:01
Спасибо! Если будут результаты, напишите, пожалуйста, на pstas@livejournal.com
Что-то не работает. После добавления комментария пишет Your login cookie seems to have disappeared?
Jenyay 14.08.2011 - 09:13
Попозже попробую, может быть что-то изменили в движке ЖЖ.
Sanchez 17.11.2011 - 16:10
Sanchez 17.11.2011 - 16:17
Проведем эксперимент. Залогинимся, вызовем в браузере форму ответа на коммент http://aaa.livejournal.com/11111.html?replyto=999999. Отправленный при этом запрос обозначим Request1, полученный ответ - Response1. Теперь вобьем какое-нибудь body и нажмем Post Comment. Произошла коммуникация Request2/Response2. В Request2 посылаются взятые из Response1 куки с информацией о логине и форма с темой/ответом и скрытыми полями типа lj_form_auth, взятыми также из Response1.
Еще раз вызовем форму ответа на коммент, в HTTP-анализаторе скопируем из пришедшего респонса куки и скрытые поля и программно сформируем реквест с формой, как показано в С#-примере Jenyay. В ответ получим Your login cookie seems to have disappeared?
Фигня, однако :(