Author Topic: Как перенести историю из QIP в MirandaNG  (Read 6637 times)

0 Members and 1 Guest are viewing this topic.

Offline yk

  • Newbie
  • *
  • Posts: 8
История в QIP2005 (.txt, UIN ICQ), MirandaNG (0.95.11). Поиск в Интернете выдает, что раньше для этого использовали устаревший плагин ImportTXT. Как сейчас можно это сделать?
 

Offline Elzor

yk, зачем переносить историю из QIP, если ее можно будет с сервера загрузить?
Сейчас это можно сделать только одним образом: разыскать какую-нибудь сборку паругодичной давности, до того как importtxt отстрелили, сконвертировать историю в пустую базу, потом обновиться. Кажется в хоткофе нужный плагин входил, но тут я могу ошибаться.
 

Offline sky star

как я вижу популярность вопроса начинает рости

зашел в web версию icq и обнаружил что история переписки на сервере реально короче чем у меня в текстовых файлах ,
в txt 2012 Год , на серваке 2015 год :)
а значит даже если что то и подтянется , то это будет не все ,
 

Offline Apollo2k4

Я думаю имеет смысл подождать, разработчики понимают, что поток с QIP есть, и я думаю, что импорт будет, дайте отладить протокол. Ну или как описано выше, через ImportTXT и миранду предыдущей версии, её можно скачать с GitHub или офф. сайта миранды (правда придётся руками ссылку править).
«Все глупости совершаются с серьёзным выражением лица» © Кён «Меланхолия Сузумии Харухи»

Правильно заданный вопрос – 50% решения.
Правила постинга
 

Offline yk

  • Newbie
  • *
  • Posts: 8
Elzor importtxt добавляет сообщения в историю только если есть соответствующий контакт. Т.к. в чистой базе нет никаких пользователей - то он ничего не добавляет из файлов истории qip2005. А подключиться к серверу icq, чтобы получить список пользователей, в старых версиях миранды не получиться (видимо?).
А есть какие-то варианты экспорта сообщений в миранду, кроме как из формата БД миранды?
 

Offline Apollo2k4

yk, добавить контакты руками, если их конечно вменяемое количество.
А есть какие-то варианты экспорта сообщений в миранду, кроме как из формата БД миранды?
Пока, что нет.

Post Merge: 06 01 2019, 12:42:29
Сейчас даже сообщения из базы созданной SQLite нельзя импортировать в MDB
«Все глупости совершаются с серьёзным выражением лица» © Кён «Меланхолия Сузумии Харухи»

Правильно заданный вопрос – 50% решения.
Правила постинга
 

Offline yk

  • Newbie
  • *
  • Posts: 8
Apollo2k4 Количество не вменяемое (qip использовали ~30 пользователей, у многих 20 и более контактов на UIN).
А есть какой-то способ скомпилировать importtxt в том виде, как он был, для текущей версии миранды? Или там настолько все поменялось (в миранде), что нужно  переписывать плагин?
 

Offline dartraiden

Из ядра, если память не изменяет, что-то выкинули вместе с ImportTXЕ
Он же на паскале, так что выкидывание паскаля всегда радость
 

Offline dartraiden

Более перспективный путь:
- взять историю QIP 2005, благо она в txt
- выдрать из ImportTXT регулярное выражение, которым парсилась история квипа
- взять sed
- с помощью sed, регулярки и такой-то матери сконвертировать историю контакта в JSON
- всосать её импортом в Миранду

Плюсы в том, что не нужно ничего кодить, лишь шарить в регулярках, а также не нужно поддерживать плагин в дальнейшем
 

Offline yk

  • Newbie
  • *
  • Posts: 8
dartraiden Не подскажите, как должен выглядеть преобразованный в формат json фрагмент  исходной истории из файла (222222.txt) вида:
--------------------------------------<-
Andrew (12:08:19 20/01/2016)
Добрый день, аська была закрыта

-------------------------------------->-
alla (11:59:35 21/01/2016)
Добрый день.

чтобы оно при импорте (стандартным средством Mirand'ы?) попало в историю пользователя Andrew (ICQ UIN 222222) для учетной записи alla (ICQ UIN 111111)?

« Last Edit: 08 01 2019, 10:23:32 by yk »
 

Offline dartraiden

Когда вы импортируете через меню контакта (ПКМ → Импорт〉, история будет влита в историю этого контакта.

Вот так выглядит история в JSON, экспортированная плагином Msg_Export. Import обучен всасывать в таком же формате. См. аттач.

А вот так она выглядит в журнале. См. аттач.

Немного инфы по полям:
flags: очевидно, что r = входящее, m = исходящее
type: тип, 0 = обычное сообщение (EVENTTYPE_MESSAGE), остальные не знаю, надо смотреть исходники
 

Offline dartraiden

В конференции у нас проскочила ещё одна идея, которая вообще не требует регулярок.

Берёте 0.95.8 (x32). Там же берёте ImportTXT и DBEditor (оба x32, потому что 64-разрядного ImportTXT не существовало). Создаёте базу, заводите туда учётку аськи. Она, естественно, не подключается, но это и не нужно. Из актуальной 0.95.11 через редактор базы экспортируете контакты в .ini (ПКМ в редакторе базы по разделу "Контакты" → "Экспорт"). Тем же способом из .ini импортируете их через редактор базы в 0.95.8. И пытаетесь  плагином ImportTXT втянуть историю квипа для каждого контакта.

Если удалось, то запускаете Import (из главного меню 0.95.11) и втягиваете в актуальную Миранду все контакты с историей из той базы, над которой вы потрудились в 0.95.8.

Всё упирается в то, не сломана ли в ImportTXT была работа с историей альтернативных клиентов. Этого никто не знает.
 

Offline yk

  • Newbie
  • *
  • Posts: 8
Спасибо за советы.
Способ с использованием  версии 0.95.8 и ImportTXT работает (и, наверное, самый простой).
Проверял на истории QIP2005, QIP2010.
Примечание: чтобы не было проблем используйте одинаковые имена при создании профиля Mirandы и учетной записи ICQ в старой и новой версиях.

Еще вопрос:
Есть ли возможность загрузить в профиль Mirandа  историю по пользователям ICQ, хранимую на серверах ICQ (суть - при переходе с QIP на Miranda часть пользователей временно использовала родной клиент, соотв. у них сейчас отсутствует история за этот период)?
 

Offline dartraiden

Имя профиля значения не имеет. Главное, чтобы совпал порядковый номер учётки. То есть, если у экспортированных контактов значится, скажем, ICQ_1, то нужно убедиться, что в старой Миранде в базе учётка значится ICQ_1.
 

Offline yk

  • Newbie
  • *
  • Posts: 8
А по-поводу  экспорта в Mirand'у истории с серверов ICQ (за период) не подскажите?