Pull to refresh

Скрипт импорта хистори qutIM из Kopete

Reading time2 min
Views737
Впервые прочитал о новом ICQ клиенте для линуха, qutIM, вот тут. Почти сразу перешел на этот клиент, ибо под убунтой (и под линухом вобще) ИМХО очень сильно не хватает нормального ICQ-клиента. В винде порядка 2 лет пользовался R&Q, а под линухом уже около 4 месяцев пользовался Kopete (Pidgin мне не очень нравиться, сидел в нем достаточно долго под виндой).

Сразу перейти на новый клиент не получилось — работал он не очень стабильно, собирал последние версии из транка репозитория. А т.к. аська нужна почти всегда, то приходилось возвращаться время от времени на Kopete. Теперь вроде кутим более-менее стабилизировался, вылетает редко, поэтому сейчас уже полностью перешел на него. Но некоторые, достаточно важные разговоры остались разорванными между хистори кутима и копете. Плюс, достаточно много логов просто осталось в копете. Поэтому написал утилиту мержа хистори из копете в кутим.



Сначала задумался на каком языке реализовать утилиту импорта. Моим основным языком является PHP, но это как-то не интересно. Так же немного владею C#/.NET и JAVA, но писать на первом под линух как-то не ага, а на втором — хоть и интересно (для меня), но получилось бы достаточно громоздко. Хотя могу и ошибаться.

В итоге мой выбор пал на питон, изучить которыйя давно собираюсь, но все как-то руки не доходили. А тут вполне реальная и не очень сложная задача — чем не повод начать осваивать новый язык программирования, расхваливаемый многими авторитетными камрадами.

Сказано — сделано. На написание скрипта ушло порядка 8 часов, но результат, как и сам процесс мне очень понравился =)

Скрипт предусматривает как копирование хистори для контактов, у которых хистори еще не велась, так и мерж существующей хистори, с соблюдением хронологии диалогов.

При разработке для работы с XML пользовался DOM, а не SAX, поэтому скрипт достаточно требователен по ресурсам для разбора очень толстых логов. Но т.к. скрипт редко будет запускаться более одного раза, то это не так критично.

Из известных багов скрипта — dom parser валиться на некорректных символах. У меня из 2.5 метров логов такие символы оказались в 3 логах. Пока что это лечиться только ручной правкой логов (в ошибке указывается номер строки и столбца с некорректным символом) и перезапуском скрипта. Если кто-то предложит вариант лечение от некорректных символов — буду очень признателен.

Сам скрипт можно забрать вот тут ifolder.ru/7235826
Не уверен что это самое лучшее место для выкладывания скриптов, но другого придумать не смог. Опять же буду признателен если подскажите сервисы, специализирующиеся на простом выкладывании открытого кода.

ЗЫЖ следующим шагом будет написание скрипта для импорта хистори из R&Q, ибо со времен винды у меня там осталось порядка 25 метров логов, большую часть которых терять не хочется.

UPD: теперь можно просто посмотрть скрипт с подсветкой тут http://paste.org.ru/?vfzraa (спасибо derZellederZelle)
Tags:
Hubs:
Total votes 17: ↑15 and ↓2+13
Comments21

Articles