Жестокое обращение с комментариями (2)
Еще бывает, хочется постить комментарии (что в частности делают сральные роботы):
Я с этим возился разбираясь, как сделать импорт комментов средствами ЖЖ (получилось довольно прилично - пример восстанавливалки:
(оригинал).
Там гемморою несколько больше, а как сделать неанонимный комментарий я пока не разобрался (понятно, что просто какие-то параметры указать правильно):
Для ответа в корень или в тред надо сделать запрос get на URL вида:
http://user.livejournal.com/xxxxxx.html?mode=reply
или
http://user.livejournal.com/xxxxx.html?thread=yyyyyy#tyyyyyy
В ответ приедет нудная html-ка в которой будет форма для ответа. Из нее надо вычучить два поля:
<input type='hidden' name='chal' id='login_chal'
value='c0:1190656800:83:900:DNooOKZ0pugJdWXZ9YPj:21a9bcf339cc2559d70a41e112a21b91' />
и:
<input type='hidden' name="chrp1"
value="471973-2371938-1190656800-CWhs5XiUu8eu90Anx5Pi-9551383c08447e996544d31e76c74b52" />
интересуют имнно значиния value (в необходимости второго я не уверен). После чего можно делать запрос POST на URL:
http://www.livejournal.com/talkpost_do.bml с параметрами:
login_chal=(challenge)
login_response=(response) -- response это MD5-хеш от (login_chal || MD5 (пользовательского пароля))
password=""
submitpost="1"
subject=(subject)
body=(comment-body)
itemid=(entry-url-no) (а вот тут anum принципиален)
journal=(journal-name) (имя пользователя или сообщества, куда постится коммент)
prop_opt_preformatted="0" или "1"
chrp1=(chrp1) (не уверен, что нужно)
Если ответ идет на другой коммент необходимо задать еще
replyto=(thread-no)
parenttalkid=(thread-no) (а вот в этих полях номер коммента идет без anum и умножения на 256)
После чего наступит счастье. В качестве ответа на запрос в случае успеха будет выдан текст, содержащий строчку вида:
The document has moved
<A HREF="http://kouzdra.livejourna.com/xxxxx.html?view=yyyyyy#tyyyyyy">here</A>
где yyyyyy - номер (с anum) нового комментария. Полезно, если нужно узнать его id.