Мои программки для работы с LiveJournal и другими сайтами в рамках СГО.

Программки написаны на языке python версии 2.4.3 (настоятельно рекомендую всем интересующимся темой скачать и установить себе freeware интерпретатор этого замечательного языка, объем около 10 мегабайт). Для визуализации сетей я пользуюсь программкой Pajek, которая кушает файлы вида *.net и позволяет сделать с ними много интересного. Ну а теперь - собственно программки:

pylj.py 0.2 - библиотека функций для работы с livejournal, которую требуют некоторые другие программки, ее нужно загрузить по-любому;

lj_archiver.py 0.24 - программка-аналог LJSM, позволяет создавать на диске архив неподзамочных записей для ЖЖ любого автора, работает как для ЖЖ-юзеров, так и для коммьюнити:
> lj_archiver.py lj-user [deep-in-month] [-c],
где -c флаг для комьюнити; пример использования:
> lj_archiver.py - обновляет все архивы
> lj_archiver.py schegloff 3 - обновляет архив schegloff на глубину 3 месяца
> lj_archiver.py neurosocium 3 -c- обновляет архив комьюнити на глубину 3 месяца

История версий:
- в версии 0.24 исправлена ошибка в считывании основной записи, возникавшая из-за выделения ее текста по < div >, а не по более надежным тэгам
- в версии 0.23 добавлен обход уже созданных каталогов с архивами (в архивы комьюнити для опознания их "комьюничности" нужно добавить файл is_comm.txt, содержащий 1 байт - '1') при запуске без параметров, тем самым архиватор превратился в своего рода "агрегатор" архив-ленты
- в версии 0.22 изменен способ доступа к записи на ?format=light, что позволяет архивировать ЖЖ даже самых навороченных стилей. При запуске без параметра глубины просмотра она принимается максимальной, и архивируется весь журнал, что может занять изрядное время, а программа - вылететь где-то в середине работы. В последнем случае следует найти в каталоге архива файл ?????_index.bak и переименовать его в ?????_index.html, чтобы при следующем запуске программа учла ранее загруженный индекс.

В плане очередных улучшений - 1) выдача сообщений в случае нештатного завершения работы, 2) флаг конвертации/неконвертации UTF8=>cp1251 (сейчас конвертируется в обязательном порядке), 3) импорт картинок, 4) сборка exe-дистрибутива.

lj_readpost.py 0.32 - программка-аналог AVThreader, позволяющая вытянуть из ЖЖ и сохранить на диск в виде одного html-файла длинную (свыше 50 комментариев) дискуссию вокруг какой-нибудь интересной записи в ЖЖ; версия уже с ?format=light, работает с журналами любых стилей;

lj_sgolist.py 0.1.- программка, формирующая сводную статистику и *.net файл для подсети ЖЖ-юзеров, включивших в свои интересы "СГО"; путем замены  "СГО" в исходнике на другой интерес можно аналогичным образом выделить и другие подсети;

lj_finf.py - определяет "информационную проводимость" и "коэффициент мультипликации" между базовым ЖЖ-юзером (в тексте schegloff) и тестируемым ЖЖ-юзером, заданным в диалоге. "Информационная проводимость" - число ЖЖ-юзеров, которых читает получатель потенциальной новости (например, Вы), одновременно читающих источник этой самой новости (например, тестируемый ЖЖ-юзер). "Коэффициент мультипликации" - отношения числа ЖЖ-юзеров, которые читают Вас и не читают источник потенциальной новости (тестируемого ЖЖ-юзера) к числу Ваших читателей и к числу читателей источника.

lj_foaf.py - считает статистику по читателям и писателям заданного ЖЖ-юзера, и выводит списки в *.csv файл для последующей обработки (далее будет дорабатываться, например, делать еще и *.net, и *.stat файлы)

lj_clique.py - использует алгоритм Nikita Borisov быстрого определения максимальной клики (функция largest_cliques_among в pylj.py) для нахождения этой самой максимальной клики среди френдов заданного ЖЖ-юзера; пре-альфа версия, очень хочу расширить ее до нахождения всехклик в графе

yahoo_mh.zip - по просьбе jan_y, скрипт для суммирования данных Yahoo Finance - Major Holders по списку крупнейших компаний (а вот скрипта для определения этих компаний я не написал, ручками делал) - любопытные данные получаются

Буду благодарен за любые замечания,
schegloff.livejournal.com, С.Щеглов
Hosted by uCoz