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

0 Members and 1 Guest are viewing this topic.

Offline ykTopic starter

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

Offline Elzor

  • Developer
  • *****
  • Posts: 489
  • Country: ru
  • Karma: 64
  • Jabber ID
  • Version Info
yk, зачем переносить историю из QIP, если ее можно будет с сервера загрузить?
Сейчас это можно сделать только одним образом: разыскать какую-нибудь сборку паругодичной давности, до того как importtxt отстрелили, сконвертировать историю в пустую базу, потом обновиться. Кажется в хоткофе нужный плагин входил, но тут я могу ошибаться.
 

Offline sky star

  • Newbie
  • *
  • Posts: 10
  • Karma: 0
как я вижу популярность вопроса начинает рости

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

Offline Apollo2k4

  • Hero Member
  • *****
  • Posts: 729
  • Country: 00
  • Karma: 44
    • apollo2k4
  • Jabber ID
  • Version Info
Я думаю имеет смысл подождать, разработчики понимают, что поток с QIP есть, и я думаю, что импорт будет, дайте отладить протокол. Ну или как описано выше, через ImportTXT и миранду предыдущей версии, её можно скачать с GitHub или офф. сайта миранды (правда придётся руками ссылку править).
«Все глупости совершаются с серьёзным выражением лица» © Кён «Меланхолия Сузумии Харухи»

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

Tox ID: apollo2k4@toxme.io
 

Offline ykTopic starter

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

Offline Apollo2k4

  • Hero Member
  • *****
  • Posts: 729
  • Country: 00
  • Karma: 44
    • apollo2k4
  • Jabber ID
  • Version Info
yk, добавить контакты руками, если их конечно вменяемое количество.
А есть какие-то варианты экспорта сообщений в миранду, кроме как из формата БД миранды?
Пока, что нет.

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

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

Tox ID: apollo2k4@toxme.io
 

Offline ykTopic starter

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

Offline dartraiden

  • Beta Tester
  • *****
  • Posts: 759
  • Country: ru
  • Karma: 26
  • Version Info
Из ядра, если память не изменяет, что-то выкинули вместе с ImportTXЕ
Он же на паскале, так что выкидывание паскаля всегда радость
_██_
(°ᴗƪ)
 

Offline dartraiden

  • Beta Tester
  • *****
  • Posts: 759
  • Country: ru
  • Karma: 26
  • Version Info
Более перспективный путь:
- взять историю QIP 2005, благо она в txt
- выдрать из ImportTXT регулярное выражение, которым парсилась история квипа
- взять sed
- с помощью sed, регулярки и такой-то матери сконвертировать историю контакта в JSON
- всосать её импортом в Миранду

Плюсы в том, что не нужно ничего кодить, лишь шарить в регулярках, а также не нужно поддерживать плагин в дальнейшем
_██_
(°ᴗƪ)
 

Offline ykTopic starter

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
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

  • Beta Tester
  • *****
  • Posts: 759
  • Country: ru
  • Karma: 26
  • Version Info
Когда вы импортируете через меню контакта (ПКМ → Импорт〉, история будет влита в историю этого контакта.

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

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

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

Offline dartraiden

  • Beta Tester
  • *****
  • Posts: 759
  • Country: ru
  • Karma: 26
  • Version Info
В конференции у нас проскочила ещё одна идея, которая вообще не требует регулярок.

Берёте 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 была работа с историей альтернативных клиентов. Этого никто не знает.
_██_
(°ᴗƪ)