kouzdra - September 24th, 2007
[Recent Entries][Archive][Friends][User Info]
01:57 pm
[Link] |
О методах стимулирования рождаемости: самым главным пунктом была небывало крупная сумма денег, которую адвокат завещал "той из жительниц Торонто, которая в течение десяти лет со времени моей смерти произведет на свет наибольшее количество детей". Этот пункт завещания не один раз пытались оспорить в суде, но Миллар был хорошим адвокатом, поэтому придраться было не к чему. То, что происходило затем в Канаде, назвали "большим торонтским дерби". Всплеск рождаемости в Торонто, да и по всей Канаде в это десятилетие был феноменальным. В итоге 30 мая 1938 года, ровно через десять лет после смерти Миллара, городской суд начал рассматривать заявки на наследство. Женщина, успевшая за десять лет родить десять детей, была дисквалифицирована -- оказалось, что не все ее дети от одного и того же мужчины, как этого требовал Миллар. Дисквалификации подверглась и еще одна женщина: она девять раз рожала, однако пятеро детей были мертворожденными. Обе дамы получили утешительный приз в $13 тыс. $500 тыс. были распределены в равных долях между четырьмя семьями, в которых за десять лет родилось по девять детей. Как позже сообщали газеты, больше детей в этих семьях не было http://www.kommersant.ru/doc.aspx?DocsID=807273
|
|
04:03 pm
[Link] |
"Суп Харчо - тоже три. Выкинула в пропасть" Нечеловеческой силы документ:
крыса неоднократно появлялась во время моего свидания с председателем польской делегации. Их боязни худой славы для НКИД мне приходилось каждый раз топать ногой, чтобы заставить крысу скрыться. Мой собеседник, очевидно, принимая мое топанье ногами за своеобразный способ личного с ним обращения, сильно нервничал и ушел домой совершенно расстроенный
А вышел я на это, уточняя цитату из Герцена для комментариев к не менее прекрасному:
Фрэнсис Дрейк, как известно, ограбил испанские порты и корабли на тихоокеанском побережье Южной Америки. Его корабль, "Золотая лань", имел водоизмещение 100 тонн. И вовсе не весь этот вес он мог занять награбленными ценностями. Поэтому под конец он брал только золото и драгоценные камни. Привез в Англию 26 тонн золота. В 20 веке испанские историки подсчитали в испанских архивах, сколько золота было списано "под Дрейка". Оказалось - 300 тонн
|
|
09:19 pm
[Link] |
Жестокое обращение с комментариями (1) Механически насиловать ЖЖ можно разными способами: их можно разбить на 3 категории:
Первый метод всем хорош, кроме двух моментов: 1) там можно делать далеко не все (например комменты фиг прочитаешь и фиг запостишь) 2) запросы там надо выдавать последовательно - при попытке делать это из нескольких тредов он дает отлуп. А это довольно сильно влияет на скорость. Можно пользоваться плоским интерфейсом (что imho проще и удобнее), но для фанатов XML - можно пользоваться и XMLRPC - разницы в общем никакой.
Второй метод всем замечателен, кроме того, что предназначен ровно для одной цели - экспорта дневника. Зато он работает хорошо и очень быстро - экспорт всего моего дневника занимает секунд 20 (у меня 100mbit-ный канал).
Ну а третий плох и недокументированностью и тем, что там часто приходится парсить html, отдаваемый ЖЖ (а это не очень надежно - тем более, что формат довольно сильно варируется в зависимости от настроек аккаунта)
Как логиниться в ЖЖ
Для последних двух методов нужна предварительная авторизация в ЖЖ. Самый простой способ ее получить - воспользоваться функцией протокола sessiongenerate. Она в ответ отдает куку, которую просто надо совать в заголовок всех последующих запросов к ЖЖ: Coockie: ljsession=(session-id)
При этом полезно указывать флажки expiration=short (чтобы не плодить сессии) и ipfixed=1 (на всякий случай - секурнее будет)
Жестокое обращение с комментариями
Комменты в ЖЖ можно скачивать, удалять, скринить, морозить и т.п.
Делать это не просто просто, а очень просто: все кроме удаления делается посредством запроса post на URL http://www.livejournal.com/talkscreen.bml
с параметрами:
confirm="Y" journal=(user-or-community-name) mode=(mode) ("freeze", "unfreeze", "screen", "unscreen") talkid=(thread-no) - как я уже говорил (comment-no)*256 + anum, но вместо anum можно использовать 0 (наверное и любое число)
Удаление коммента делается запросом post на http://www.livejournal.com/delcomment.bml?journal=(journal-name)&id=(номер треда) c параметрами: confirm="Delete Comments" delthread="0" или "1" (удалять подтред или нет) spam="0" или "1" ban="0" или "1"
И будет вам счастье.
Лирическое отступление - для фанатов производительности - можно попытаться воспользоваться функцией групповых операциq над комментамрями к записи - это будет наверняка быстрее, но мне было лень разбираться. Оно и так довольно резво.
Напомню, что нумерация комментов сквозная и строго последовательная. То есть - если Вам навалило кучу дерьма в фиксированный интервал времени - самый простой способ ее снести - выяснить id первого коммента с дерьмом, id последнего и пройтись в цикле от первого ко второму. Единственный недостаток этого метода - будут снесены и "честные комменты", случившиеся в означенный период времени. Зато не просто просто, а очень просто.
Tags: Слава Роботам
|
|
09:50 pm
[Link] |
Жестокое обращение с комментариями (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.
Tags: Слава Роботам
|
|