трактат

о соединении спирта с водой друпала с жэжэй :)

В качестве бэкапа решил слить все записи из жывого Жэ к себе в песочницу. Друпаловские контрибуты не дофига вариантов предлагают: ljxp - кросспостер в жж и ljsync - синхронизатор, соответственно. И если кросспостер работает как часики, то с синхронизатором пришлось поработать напильником.

Ljsync, если кто не в курсе, использует перловый скрипт jbackup.pl, изготовленный еще достопочтенным sixapart-ом для бэкапа жж. Скрипт сливает все посты из жж в свою базу данных и делает из нее один большой xml-файл. Потом этот файл парсится ljsync-ом и вливается в базу данных друпала в виде постов с комментариями. При это для каждого(!) комментатора из вашего жж создает openID аккаунт на вашем сайте.

Итак, для начала надо было докрутить perlовку в нашем ингерманладском дремучем лесу :) Пришлось поставить модули перла GDBM_File, SOAP-Lite и version. Установка в $HOME делается по учебнику:
make Makefile.pl --PREFIX=/path/to/your/home
make
make test
make install
:)

 

Далее, правим собственно jbackup.pl. В начале скрипта дописываем пути к нашим модулям-библиотекам в $HOME, плюс подключаем модуль utf8
use lib "/path/to/compiled/modules";
use utf8;
Чтобы не возникало дурацких предупреждений в логах типа "Wide characters in bla-bla-bla...", перед вызовом print FILE $content , примерно на 550-й строчке файла jbackup.pl, добавляем нужный binmode. Должно получиться чтото типа:
open FILE, ">$opts{file}"
or die "do_dump: unable to open file: $!\n";
binmode FILE,"::utf8";
print FILE $content;

Если скрипт не cможет создать рабочий файл вида %ljuser%-lj.xml, в журнале друпала появится сообщение вида "cant open file... bla-bla-bla", несмотря на нужные права доступа. Создайте этот файл ручками :)
touch %ljuser%-lj.xml
где %ljuser%, имя живого журнала из настроек модуля ljsync в админке друпала.

Последней проблемой с этим модулем ( ljsync v. 6-x-1.2) было использование оным библиотек Tidy for PHP. Как выяснилось уже поздно за полночь, библиотека сия нужна исключительно ради одного вызова одной функции tidy_repair_string в файле ljsync_parser.cls.php. Не заморачиваясь с установкой этого самого tidy, тупо вырезал этот вызов, угробив очистку кода от незакрытых тегов и прочего html-мусора, как говорится, на свой стар и риск :) В результате получаем следующий код:
в функции clean_body($content) комментарим весь код, кроме посленего return-a. Его заменяем следующей строчкой:
return tidy_repair_string($content, $config, 'utf8');
return $content;

На этом обработка напильником заканчивается :) Что получилось, можно посмотреть в песочнице. Проблема с дублированием кросспостов пока не решена, однако ж рецепт есть у автора модуля. За остальные идеи спасибо А.Тутубалину, который с шашкой наголо друпал воевал :)

Комментарии

tyc4000 аватар

Aphorism

Случайные афоризмы:
Ученье Фото знаменитостей свет, а неученье - чуть свет на работу !
Адриана Лима - не кнопка, а печальная необходимость.
Познакомлюсь с доброй и Айшвария Рай девушкой... устал трахать злых и страшных.
Женился... Алсу зарплаты стало не хватать в два раза больше.
Анджелина Джоли трудно: обо всем нужно говорить с умным видом.
Подруга ето такой хороший друг которого можна даже Энн Хэтэуэй
Призывы жить Аврил Лавин дураков можно расценить как геноцид.
Адреналин стекал Бритни Спирс ботинки...
Для утвердительного ответа достаточно слова «да», все прочие слова придуманы, чтобы сказать Кристина Агилера
Даже Деми Мур больнице сомалийские пираты стараются захватить чужое судно.
Иногда шаг вперед является Эмма Уотсон хорошего пинка сзади.
Водка способна сегодняшний вечер Джессика Альба прекрасным, но за счет завтрашнего утра.

tyc4000 аватар

Aphorism

В постели я звезда - раскину руки, ноги и сплю....
Шведская поговорка: «Четвертый - лишний».
Не имей сто друзей, а ИМЕЙ сто подруг.
Девушка, а можно с вами не знакомиться?
Долгое время работал натурщиком у Фаберже...

tyc4000 аватар

Aphorism

Обычно на дне рождения именинник нужен только на первые 5-10 рюмок.
Уборка - это неравномерное распределение мусора с равномерным размазыванием грязи.
У семерых козлов и волк без глазу.
Если бы люди любили работать, они бы не назвали включатель «выключателем».
Бог наградил ее внешностью в надежде, что она найдет кого-нибудь с умом.