From 48540940b6c28bb4378abfeb500ec45a625b37b6 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Tue, 15 May 2012 10:38:20 +0000 Subject: initial commit git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/ImportTXT/doc/changelog_ru.txt | 77 ++++++++++++ plugins/ImportTXT/doc/examples_ru.txt | 169 ++++++++++++++++++++++++++ plugins/ImportTXT/doc/importtxt_translate.txt | 105 ++++++++++++++++ plugins/ImportTXT/doc/pattern_cfg_ru.txt | 77 ++++++++++++ plugins/ImportTXT/doc/readme_ru.txt | 78 ++++++++++++ 5 files changed, 506 insertions(+) create mode 100644 plugins/ImportTXT/doc/changelog_ru.txt create mode 100644 plugins/ImportTXT/doc/examples_ru.txt create mode 100644 plugins/ImportTXT/doc/importtxt_translate.txt create mode 100644 plugins/ImportTXT/doc/pattern_cfg_ru.txt create mode 100644 plugins/ImportTXT/doc/readme_ru.txt (limited to 'plugins/ImportTXT/doc') diff --git a/plugins/ImportTXT/doc/changelog_ru.txt b/plugins/ImportTXT/doc/changelog_ru.txt new file mode 100644 index 0000000000..9ce2fe5298 --- /dev/null +++ b/plugins/ImportTXT/doc/changelog_ru.txt @@ -0,0 +1,77 @@ +v. 0.0.1.9 +* исправлено дублирование сообщения, если оно совпадает с первым в базе +* поддержка исправленного xml_api и поддержка плагина XML Driver (для седьмой ветки) + +v. 0.0.1.8 +* !важный фикс проверки дубликатов ++ добавлена возможность показывать дубликаты ++ автоскролл в окне сообщений ++ добавлена возможность отключить проверку на дубликаты +* баг с кривым выводом статусных сообщений ++ добавлен параметр Codepage в шаблон +- убрана возможность одновременного импорта ++ иконка в окне импорта ++ перечитывание шаблонов, при открытии окна и в Мастере ++ запоминание последнего шаблона ++ полностью переделан импорт из ICQ6 + +v. 0.0.1.7 ++ добавлен шаблон D[i]chat ++ добавлен импорт из ICQ6 ++ добавлен импорт из XML файлов ICQ5 + +v. 0.0.1.6 +* исправлена блокировка папки с импортируемыми файлами ++ добавлен шаблон Pigeon + +v. 0.0.1.5 +* исправлено расширение по умолчанию при выборе папки + +v. 0.0.1.4 ++ добавлена поддержка Updater +* когда не найден заголовок, не загоралась кнопка "завершить" +* исправлен шаблон mContacts + +v. 0.0.1.3 ++ добавлена поддержка бинарных файлов qhf + +v. 0.0.1.2 ++ добавлен параметр DefaultExtension в шаблон ++ добавлена поддержка бинарных файлов, пока только mContact + +v. 0.0.1.1 ++ добавлена возможность автостарта +* обновление списка аккаунтов при его изменении :) + +v. 0.0.1.0 +* пункт меню добавляется всем контактам +* добавлен мастер массового импорта + +v. 0.0.0.6 +* переработан формат файлов шаблона, теперь это ini файлы +* выделен обработчик сообщений перед импортом (удаление переводов строк и пробелов) ++ добавлена поддержка Message Export +* мелкие исправления + +v. 0.0.0.5 +* добавлена поддержка файлов с заголовком, с ником в заголовке сообщениия, но без направления + (History++) + +v. 0.0.0.4 +* добавлена поддержка мультиаккаунтности для 0.8+ +* пункт меню теперь добавляется для всех ICQ протоколов (если несколько копий DLL) + +v. 0.0.0.3 +* изменены процедуры преобразования кодировок +* убраны утечки памяти ++ добавлена собственная иконка + +v. 0.0.0.2 +* изменен способ работы с рег. выражениями (pcre3.dll) ++ сообщения импортируются в базу в UTF8 или ANSI в зависимости от версии Миранды ++ разные кодировки входных файлов ++ фикс перевода + + +v. 0.0.0.1 ++ первый релиз \ No newline at end of file diff --git a/plugins/ImportTXT/doc/examples_ru.txt b/plugins/ImportTXT/doc/examples_ru.txt new file mode 100644 index 0000000000..2120fd2b72 --- /dev/null +++ b/plugins/ImportTXT/doc/examples_ru.txt @@ -0,0 +1,169 @@ + +Пример файла: +************ + + История сообщений с Неизвестный (000000000) + Сохранено из Jimm 07.06.2008 11:49:17 + + +------------------------------------>>>- + Abyss (06.09.2007 17:52:51): +Привет! + +------------------------------------<<<- + Неизвестный (06.09.2007 18:03:09): +Хай + +************ + +Шаблон такой: + +[General] +Name=Jimm import pattern +Charset=ANSI +UseHeader=2 +UsePreMsg=1 +[Message] +Pattern=^------------------------------------(<<<|>>>)-\r\n\s([^\r\n]+?)\s\((\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\):$ +In=<<< +Out=>>> +Direction=1 +Day=3 +Month=4 +Year=5 +Hours=6 +Minutes=7 +Seconds=8 +[PreMessage] +PreRN=1 +AfterRN=2 +[Header] +Pattern=^\r\n\tИстория сообщений с ([^\r\n]+?)\s\((\d{5,})\)\r\n\tСохранено из Jimm\s[^\r\n]+?\r\n +InNick=1 +InUID=2 + +Коментарии: основные моменты содержаться в pattern_cfg, +Такие значения RN потому что: +считаем... + +Привет!{\r\n} Раз +{\r\n} два после +------------------------------------<<<- + Неизвестный (06.09.2007 18:03:09):{\r\n} Один до +Хай + +UseHeader=2 используем заголовок только для определения контакта назначения + + +==================================================================================================================================== +Для History++ +============= + +Пример файла +************ + +### +### Полная история +### Abyss (ICQ: 0000000) - Неизвестный (ICQ: 00000000) +### (создана модулем history++) +### + +[06.09.2007 17:52:51] Abyss: +Привет! + +[06.09.2007 18:03:09] Неизвестный: +Хай + +************ +Файл шаблона выглядит так: +************************** +[General] +Name=History++ pattern +Charset=UCS2 +UseHeader=3 +UsePreMsg=1 +[Message] +Pattern=^\[(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\]\s([^\r\n]+?):$ +Direction=7 +Day=1 +Month=2 +Year=3 +Hours=4 +Minutes=5 +Seconds=6 +[Header] +Pattern=^###\r\n###\s[^\r\n]+?\r\n###\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\s-\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\r\n###\s[^\r\n]+?\r\n###\r\n +In=3 +Out=1 +InNick=3 +OutNick=1 +InUID=4 +OutUID=2 +[PreMessage] +PreRN=1 +AfterRN=2 +************************** + +Все аналогично только добавляется обработка заголовка, получаем ник для того чтобы потом его использовать в качестве маркера направления + +======================================================================================================================================== + +Для Message Export +================== +Файл: +***** +------------------------------------------------ + History for +User : Неизвестный +Protocol : ICQ +UIN : 00000000 +FirstName : Mister +LastName : X +Age : 0 +Gender : M +e-mail : +Nick : Неизвестный +City : +State : 66 +Phone : +Homepage : +- About - + +------------------------------------------------ +Abyss 06.09.2007 17:52:51 Привет + Как дела? +Неизвестный 06.09.2007 18:03:09 Хай, нормально + +******************* + +[General] +Name=Message export import pattern +Charset=UTF8 +UseHeader=3 +UsePreMsg=1 +[Message] +Pattern=^([^\r\n]+?)[\s]+?(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\s +Direction=1 +Day=2 +Month=3 +Year=4 +Hours=5 +Minutes=6 +Seconds=7 +[Header] +Pattern=^------------------------------------------------\r\n[\s]+?History for\r\nUser[\s]+?:\s([^\r\n]+?)\r\n(.*\r\n)+?Nick[\s]+?:\s([^\r\n]+?)\s\r\n(.*\r\n)+?^------------------------------------------------$ +In=1 +InNick=3 +[PreMessage] +PreRN=0 +AfterRN=1 +PreSP=-2 +********************* + + +Добавлено удаление пробелов в многострочных сообщениях PreSP=-2 + +С этим форматом сообщений бардак: 1) если протокол НЕ ICQ то UID мы не увидим, тоесть ни JID ни что-то там еще не сохраняются + приходится использовать Ник, что не есть гуд + 2) Ник! Зачем писать в файлы пробел после ника???? + Все строчки (Potocol, User, email) нормальные, а после ника пробел. \ No newline at end of file diff --git a/plugins/ImportTXT/doc/importtxt_translate.txt b/plugins/ImportTXT/doc/importtxt_translate.txt new file mode 100644 index 0000000000..4220d2e02d --- /dev/null +++ b/plugins/ImportTXT/doc/importtxt_translate.txt @@ -0,0 +1,105 @@ +;============================================================ +; Module: importtxt.dll +; Plugin: Imports history saved in TXT files from other clients +; Versions: 0.0.0.1 - 0.0.1.2 +; Translators: Abyss +; Dates: 6.09.08 +; Template: +; URL: +;============================================================ +[Imports history saved in TXT files from other clients] +Импортирует историю из текстовых файлов +[Import history to ] +Импортировать историю в +[Import history] +Импорт истории +[Choose a file...] +Выберите файл... +[Choose a pattern...] +Выберите шаблон... +[Choose a file for import...] +Выберите файл для импорта... +[Text files (*.txt)] +Текстовые файлы (*.txt) +[All files (*.*)] +Все файлы (*.*) +[Start] +Старт +;[Close] +[Error in cfg file: ] +Ошибка в cfg файле: +[No Files Patterns Found] +Не найдены файлы шаблонов +[No messages in this file] +В этом файле нет сообщений +[Import started...] +Импорт запущен... +[Added: %d messages] +Добавлено: %d сообщений +[Duplicates: %d messages] +Дубликатов: %d сообщений +[In: %d:%d:%d] +За: %d:%d:%d +[Import not finished. Do you realy want close?] +Импорт не закончен. Вы действительно хотите закрыть? + +[Error adding message to DB] +Ошибка добавления сообщения в Базу + +[Error opening file] +Ошибка открытия файла +[Error mapping file] +Ошибка отображения файла +[Error mapping] +Ошибка отображения + +[Header not found] +Заголовок не найден + +[Import Text Files Wizard] +Мастер Импорта Текстовых Файлов + +[This wizard will help you import message history from some other clients and Miranda plugins, stored in text files.] +Этот мастер поможет вам импортировать сообщения из некоторых других клиентов и плагинов Миранды, хранящуюся в текстовых файлах. +[Click ""Next"" to choose the information you wish to import, or click ""Cancel"" to exit the wizard and continue using Miranda.] +Нажмите "Далее" чтобы выбрать информацию для импортирования, или "Отмена" чтобы выйти из этого мастера. +[It is recommended that you create a backup of your current Miranda profile before importing.] +Рекомендуется создать резервную копию текущего профиля перед импортированием. + +[Choose type of imported files:] +Выберите тип импортируемых файлов: + +[Select files or the whole directory for import:] +Выберите файлы или целую директорию для импорта: +[Files...] +Файлы... +[Path:] +Путь: +[Files:] +Файлы: +[Directory...] +Директория... + +[All previous chosen files will try to import to this protocol.] +Все ранее выбраные файлы будут импортированы в этот протокол. +[Select protocol or account:] +Выберите протокол или аккаунт: +[Click "Next" to start Import or "Cancel" to Abort.] +Нажмите "Далее" для начала Импорта или "Отмена" для выхода. +[Now importing...] +Импортируется... + + +[Select folder for import...] +Выберите папку для импорта... +[File: %s] +Файл: %s +[To: %s] +В: %s +[Can''t determine destination contact] +Не могу определить контакт назначения + +[Default extension] +Расширение по умолчанию +[Its not %s file] +Это не файл %s diff --git a/plugins/ImportTXT/doc/pattern_cfg_ru.txt b/plugins/ImportTXT/doc/pattern_cfg_ru.txt new file mode 100644 index 0000000000..e27cf4bb1d --- /dev/null +++ b/plugins/ImportTXT/doc/pattern_cfg_ru.txt @@ -0,0 +1,77 @@ +Структура файла шаблона плагина importtxt начиная с версии 0.0.1.2 +Расширение файла .ini + +[General]* Общие параметры +Name=* Имя шаблона, выводится в списке +Type=* Тип импорта возможные значения + 1 - импорт из текстовых файлов + 2 - импорт из бинарных файлов +*******параметры для импорта текста********* +Charset=* кодировка ANSI, UTF8, UCS2 +Codepage= кодовая страница для ANSI +UseHeader= 0..3 - использовать заголовок + первый бит использовать заголовок для распознавания направления + второй бит использовать заголовок для распознования контакта назначения +UsePreMsg= 0 - не использовать предварительную обработку сообщений, + даже если не используется, то всё равно будут удаляться все переводы строки в конце и в начале + 1 - использовать предварительную обработку +*******параметры для бинарного импорта********* +BinProcedure= Используется для установки процедуры бинарного импорта (обязательна при Type=2) + Возможные значения: + 1 - mContacts + 2 - QHF + 3 - ICQ6 + 4 - ICQ5 +*******общие параметры********* +UseFileName= использовать имя файла для определения UID +DefaultExtension= Расширение файлов по умолчанию (если нет то txt) +*******параметры для импорта текста********* +[Message]* Сообщение +Pattern=* рег. выражение для разбора заголовка сообщения +In= варианты направления, если нет или пустые то используется из заголовка +Out= если UseHeader=0 и In пустой, то ошибка +Direction=* номер подвыражения определяющее направление сообщения (либо жестко заданное либо ник или уин) +Day=* номер подваражения дня +Month=* номер подваражения месяца +Year=* номер подваражения года +Hours=* номер подваражения часов +Minutes=* номер подваражения минут +Seconds= номер подваражения секунд (может быть 0, тогда при импорте принимается за 00) + +[Header] Заголовок файла +Pattern=* рег. выражение заголовка +In=* подвыражение определяющее то что сообщение входящее (Ник, Уин) +Out= подвыражение определяющее то что сообщение исходящее (Ник, Уин) + может быть 0 или отсутствовать, если при импорте Direction<>In тогда оно исходящее, такая случайная фишка, но очень помогающая +InNick=* Ник собеседника +OutNick= Ваш Ник //не используется +InUID=* UID собеседника +OutUID= ваш UID //не используется + +[PreMessage] Обработка сообщения перед импортом в базу +PreRN= удалить переводы строк в начале сообщения (целое число или -1 тогда все) +AfterRN= удалить переводы строк в конце сообщения (целое число или -1 тогда все) +PreSP= удалить пробелы в начале каждой строки сообщения +AfterSP= удалить пробелы в конце каждой строки сообщения + возможные значения: + целое число + -1 все + -2 кол-во равно длине распознаного шаблона заголовка сообщения (актуально для Message Export) + любой параметр может отсутствовать или быть равен нулю, тогда не используется + SP использовать только в случае крайней необходимости, потому что замедляется работа +*******общие параметры********* +[FileName] Имя файла +Pattern=* шаблон для распознования +InNick=* Ник собеседника +OutNick= Ваш Ник //не используется +InUID=* UID собеседника +OutUID= Ваш UID //не используется + + + * обязательная секция, если указаны UseHeader=1, а секции [Header] нет, то ошибка, аналогично с [PreMessage] и [FileName] + * обязательный параметр в секции, если параметр не обязателен то по умолчанию используется либо 0 для PS, либо -1 для RN , либо пустая строка + * если в UseHeader включен второй бит, то обязателен либо InUID, либо InNick, приоритетом распознавания является UID + * в Имени файла аналогично + + UID означает Уникальный ИДентификатор :) это может быть UIN, JID и т.д. + \ No newline at end of file diff --git a/plugins/ImportTXT/doc/readme_ru.txt b/plugins/ImportTXT/doc/readme_ru.txt new file mode 100644 index 0000000000..2c7e4c3ebb --- /dev/null +++ b/plugins/ImportTXT/doc/readme_ru.txt @@ -0,0 +1,78 @@ +Import TXT plugin for Miranda IM +================================ +Плагин предоставляет возможность импортировать историю контактов +из других клиентов, хранящуюся в текстовых файлах. + +Copyright and License +=============================== + +Copyright (C) 2008 Andrey Kunitsyn (Abyss) All Rights Reserved +Some procedures are used written by Alexey Kulakov + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + + +Установка: +========== +1. Сделайте бэкап Базы Миранды +2. Скопируйте importtxt.dll, папку importtxt и всё её содержимое в папку Plugins каталога Миранды. +3. Скопируйте файл pcre3.dll в корень миранды или system32 +4. Содержимое файла importtxt_translate.txt добавьте в конец Лангпака +5. Запустите миранду +В меню контактов появится пункт "Import history..." ("Импортировать историю") +В главном меню появиться такой же пункт - это мастер импорта. + +Для автостарта мастера нужно прописать в базе ImportTXT/AutoStart значение 1 типа byte + +ВАЖНО: +====== +Обязательно сделайте бэкап базы! +Файлы шаблонов должны быть в кодировке ANSI. + + +Описание: +========= +Плагин написан с нацеленностью на универсальность, вы можете написать +свои правила разбора файлов и положить в папку importtxt. +НО есть некоторые ограничения: +1. Входные файлы могут быть в любой кодировке (ANSI, UTF8, UCS2) + (перекодирование происходит с кодовой страницей лангпака, если его нет то с системной) +2. Каждое сообщение в файле должно содержать заголовок с полной информацией о нем: + - направление (входящее или исходящее) + - таймштамп (полная дата, полное время (можно без секунд, но это должно быть обозначено в шаблоне) + - текст сообщения :) +3. Начиная с версии 0.0.0.5 поддерживаются входные файлы следующего вида: + в файле есть заголовок с никами переписывающихся , в заголовке каждого сообщения есть Ник, но нет направления сообщения + (под этот тип подходят файлы экспортируемые History++) +4. Для массового импорта необходима информация о контакте назначения (UID или Ник), в заголовке файла или имени файла. + +Начиная с версии 0.0.1.2 реализована поддержка некоторых бинарных файлов. +(каких именно смотрите pattern_cfg) +Начиная с версии 0.0.1.7 добавлен импорт из XML файлов ICQ5 (для импорта нужно ядро не ниже 0.8.0.21) + +Примерный алгоритм работы: +========================== +В файле ищется регулярное выражение описанное в шаблоне, при помощи подвыражений выделяется дата, время и тд. +Всё что находится после него и до следующего считается текстом сообщения. + +Дубликаты +========= +При импорте происходит простая проверка на дубликаты (направление, таймштамп, размер сообщения) как в import.dll + +Написание шаблона: +================== +Формат файлов шаблона описан в pattern_cfg +Примеры написания с комментариями в examples + +Подробнее о регулярных выражениях вы можете почитать в интернете ;). -- cgit v1.2.3