QIP Home QIP Forum

Go Back   QIP Forum > Все для QIP 2012 > QIP 2012. Доступные модули и утилиты. Plugins.

QIP 2012. Доступные модули и утилиты. Plugins. Здесь постить сами модули(плагины), утилиты и темы для их обсуждения.

Reply
 
Thread Tools Display Modes
Old 02.07.2011, 10:46   #1
sleuthhound
QIP User
 
Join Date: 07/2011
Posts: 188
Default QIPHistoryToDB - хранение истории в базе данных


QIPHistoryToDB
- Версия 2.6 (от 20.05.2014)

Плагин для хранения истории QIP 2012, RnQ, Miranda IM/NG, Skype в единой базе данных MySQL, MariaDB, PostgreSQL, SQLite, Oracle или Firebird.

Если у Вас нет возможности хранить историю в своей БД или нет навыков в её создании/администрировании, то Вы можете воспользоваться моим сервером БД. Для регистрации в моей БД напишите запрос на этой странице

Автор: Михаил Григорьев
E-Mail: sleuthhound@gmail.com
ICQ: 161867489
WWW: http://www.im-history.ru
Лицензия: GNU GPLv3

Системные требования:

ОС: Win2000/XP/2003/Vista/7
IM-клиент: QIP 2012 не ниже версии 6537
БД: MySQL 4.0, 4.1, 5.0, 5.1 или MariaDB 5.x или PostgreSQL 7.1 - 8.3 или SQLite 3.x или Oracle 8 - 11i или Firebird 2.x

Текущий функционал плагина:
1. Запись отправленных и присланных сообщений для разных протоколов в единую базу данных.
2. Запись сообщений чатов в единую базу данных.
3. Запись сообщений новостных лент Вконтакте, Twitter, Facebook в единую базу данных. (Функционал отключен начиная с версии 2.4)
4. Просмотр сообщений из единой базы данных с возможностью установки фильтра по дате (времени), поиск текста и т.д.
5. Возможность экспорта сообщений из БД в формат RTF или TXT.
6. Импорт истории сообщений из ICQ7, RnQ, QIP 2005/2010/Infium/2012 в единую базу данных.
7. Шифрование истории сообщений.

Одна из основных фишек плагина состоит в том, что структура базы данных одинакова для всей линейки плагинов под разные IM-клиенты => Что Вы можете читать одну и ту же историю пор разными IM-клиентами (RnQ, QIP, Miranda, Web-интерфейс). Необходимо лишь установить соответствующий плагин для IM-клиента.

Если сервер БД находится у вас в локальной сети, то оптимальным является метод синхронизации "По расписанию".
Если ж сервер БД находится в Интернет и ваше соединение не очень скоростное, то рекомендую выбирать "Ручной" метод
или метод "По расписанию".

Ближайшие планы:

1. Реализация Web-интерфейса чтения истории.
2. Доработка сайта, организация хранилища истории на моих серверах с возможностью чтения истории через Web.

Скриншоты:

[+] Скриншот #1. Окно истории сообщений.


[+] Скриншот #2. Окно программы синхронизации.


[+] Скриншот #3. Окно настроек плагина.


P.S. Огромная просьба ко всем кто будет качать исходники и что-то в них менять или дорабатывать. Если вы что-то доработали, то прошу Вас отправить это мне, для анализа и последующего добавления функционала в плагин. И не забываем писать комментарии в коде - это полезная вещь!

Скачать QIPHistoryToDB v2.6 плагин можно здесь
http://www.im-history.ru/get.php?file=QIPHistoryToDB

Утилита для создания и управлением собственной БД для хранения истории (описание и скриншоты ниже) - v2.0 (Обновлена 20.05.2014)
http://www.im-history.ru/get.php?fil...ryToDBCreateDB

Внимательно читаем readme.txt, там описан процесс установки для разных БД.

Исходники доступны на Google Code
http://code.google.com/p/im-history/


[+] Список изменений:



[+] FAQ


По многочисленным просьбам создана утилита HistoryToDBCreateDB для создания и управления собственной базой для хранения истории.

Утилита позволяет создать БД, создать/удалить пользователя, создать/удалить структуру таблиц, выдать/забрать права пользователю на эти таблицы.

Работа утилиты протестирована на последних версиях БД MySQL, SQLite, PostgreSQL, Firebird, Oracle


[+] Скриншот #1.


[+] Скриншот #2.

Обратите внимание на полезные ответы в этой теме!


Last edited by sleuthhound; 20.05.2014 at 15:15. Reason: скрины в подкат...
sleuthhound вне форума   Reply With Quote
Old 03.08.2011, 16:30   #61
sleuthhound
QIP User
 
Join Date: 07/2011
Posts: 188
Default

Quote:
Originally Posted by UksusoFF View Post
sleuthhound, да да, самое оно
Ок, записал к реализации. :)
sleuthhound вне форума   Reply With Quote
Old 03.08.2011, 16:32   #62
UksusoFF
QIP Elder
 
UksusoFF's Avatar
 
Join Date: 12/2006
Posts: 597
Default

Оффтоп:
еще бы скриншоты под спойлер, а то с мобилы долго грузится страница
UksusoFF вне форума   Reply With Quote
Old 10.08.2011, 09:24   #63
sleuthhound
QIP User
 
Join Date: 07/2011
Posts: 188
Default

Организовал на сайте RSS Feed с новостями

http://www.im-history.ru/rss.xml
sleuthhound вне форума   Reply With Quote
Old 12.08.2011, 15:03   #64
Agrrrrr
QIP User
 
Agrrrrr's Avatar
 
Join Date: 11/2007
Posts: 187
Default

Добавьте возможность создания пользовательских кнопок в плагине, за которыми можно повесить SQL код (выборки). Например:
Code:
SELECT MIN(time), MAX(time)
FROM uin_root u
WHERE uin = :UIN AND
      date(time) = :DATE
При нажатии на кнопку показывались Variables Квери, пользователь вводил бы их, и по нажатию ок на экране показывались результаты выборки

---------- Post added at 12:40 ---------- Previous post was at 11:41 ----------

И с ораклом дружить не захотел. Пишет при отправке сообщения: "Ошибка: Не удаётся подключиться к БД. Ошибка: Несовпадение типов", открыл файл логов запросов, скопировал текст запроса, выполнил в базе напрямую - все ок. Ну ладно видно застругана она только под mysql и postagesql.
Открыл исходники, а там ZEOS компоненты нужно ставить, почему не использовать стандартные ADO? Ну ладно ваше дело.

---------- Post added at 12:58 ---------- Previous post was at 12:40 ----------

И вопрос: зачем в таблицах делать индексы по полю время? Не всем полям которые используются в WHERE нужно создавать индексы. Индексом на время вы увеличите размер базы значительно.

---------- Post added at 13:44 ---------- Previous post was at 12:58 ----------

Плагин выкинул AV. Причина не понятна, но вот получилось с этого
[+] Скрин


---------- Post added at 15:03 ---------- Previous post was at 13:44 ----------

И просьба еще писать UIN с которого отправлено сообщение, а то в хистори потом не разобрать, протокол 0, а асек у меня сразу 3 штуки работают. Различить с какой аськи ушло нет возможности
__________________
Автор программы SkinMixer (http://forum.qip.ru/showthread.php?t=40137)
Автор плагинов aOC, aTextTyper, aTabber, aEsterEgg
Agrrrrr вне форума   Reply With Quote
Old 13.08.2011, 19:52   #65
sleuthhound
QIP User
 
Join Date: 07/2011
Posts: 188
Default

Quote:
Originally Posted by Agrrrrr View Post
Добавьте возможность создания пользовательских кнопок в плагине, за которыми можно повесить SQL код (выборки). Например:
Code:
SELECT MIN(time), MAX(time)
FROM uin_root u
WHERE uin = :UIN AND
      date(time) = :DATE
При нажатии на кнопку показывались Variables Квери, пользователь вводил бы их, и по нажатию ок на экране показывались результаты выборки
Сложная задачка, если делать все по уму. Обдумаю в отпуске данную тему.

Quote:
Originally Posted by Agrrrrr View Post
И с ораклом дружить не захотел. Пишет при отправке сообщения: "Ошибка: Не удаётся подключиться к БД. Ошибка: Несовпадение типов", открыл файл логов запросов, скопировал текст запроса, выполнил в базе напрямую - все ок. Ну ладно видно застругана она только под mysql и postagesql.
Открыл исходники, а там ZEOS компоненты нужно ставить, почему не использовать стандартные ADO? Ну ладно ваше дело.
Просто я отключил в ZEOS поддержку Oracle, не думал что кто-то с ним будет работать. В следующем релизе включу. :)

Quote:
Originally Posted by Agrrrrr View Post
И вопрос: зачем в таблицах делать индексы по полю время? Не всем полям которые используются в WHERE нужно создавать индексы. Индексом на время вы увеличите размер базы значительно.
Хммм... Индекс на поле время остался с былых времен. В принципе он не нужен, удалю в сл. релизе.

Quote:
Originally Posted by Agrrrrr View Post
Плагин выкинул AV. Причина не понятна, но вот получилось с этого
[+] Скрин
Сложно сказать в чем загвоздка. Если повториться, то напишите в личку, вышлю дебаг-версию, попробуем отладить. У меня такое пока не случалось.

Quote:
Originally Posted by Agrrrrr View Post
И просьба еще писать UIN с которого отправлено сообщение, а то в хистори потом не разобрать, протокол 0, а асек у меня сразу 3 штуки работают. Различить с какой аськи ушло нет возможности
3 аськи под одним профилем QIP?
Вообще я отказался от поля От кого, ибо в QIP есть деление на профили и под каждый профиль можно сделать свои настройки плагина.
А держать в базе целое поле с кучей одинаковых значений не целесообразно. Прибегать к отдельной таблице для хранения этого поля, а в основной таблице держать id тоже нет смысла, я хотел максимально упростить структуру БД.

Если у Вас 3 аськи под одним профилем, то тут патовая ситуация, попробую подумать что можно сделать.
sleuthhound вне форума   Reply With Quote
Old 14.08.2011, 01:47   #66
UksusoFF
QIP Elder
 
UksusoFF's Avatar
 
Join Date: 12/2006
Posts: 597
Default

sleuthhound, у меня тоже две аськи в одном профиле
UksusoFF вне форума   Reply With Quote
Old 15.08.2011, 13:28   #67
Agrrrrr
QIP User
 
Agrrrrr's Avatar
 
Join Date: 11/2007
Posts: 187
Default

Слетает плагин с AV. Причина - сообщение с текстом "Здравствуйте"
__________________
Автор программы SkinMixer (http://forum.qip.ru/showthread.php?t=40137)
Автор плагинов aOC, aTextTyper, aTabber, aEsterEgg
Agrrrrr вне форума   Reply With Quote
Old 15.08.2011, 15:10   #68
sleuthhound
QIP User
 
Join Date: 07/2011
Posts: 188
Default

Quote:
Originally Posted by Agrrrrr View Post
Слетает плагин с AV. Причина - сообщение с текстом "Здравствуйте"
что значит AV?

По поводу нескольких асек под одним профилем - решил добавить 2 поля в таблицу, получиться огромная избыточность данных, но что поделаешь.

Думаю к концу недели выпущу новую версию плагина с редизайном интерфейса и обновлением структуры БД.
sleuthhound вне форума   Reply With Quote
Old 15.08.2011, 15:39   #69
Dr.Boom
QIP Elder
 
Dr.Boom's Avatar
 
Join Date: 06/2007
Posts: 1,558
Default

Quote:
Originally Posted by sleuthhound View Post
что значит AV?
sleuthhound, типичная ошиба при неверном обращении к ссылкам\указателям в памяти -- Access Violation.
__________________
Ӈе шалю, ӈикого ӈе трогаю, починяю примус...
И ҽщё считаю долгом предупредить, что ӄот древнее и ӈеприкосновенное животное.
© Булгаков
Dr.Boom вне форума   Reply With Quote
Old 19.08.2011, 15:00   #70
tyoma53
QIP Newcomer
 
Join Date: 05/2008
Posts: 7
Default

я уже успел 1.3 себе поставить. там очень критичная ошибка?
tyoma53 вне форума   Reply With Quote
Old 19.08.2011, 15:31   #71
Dr.Boom
QIP Elder
 
Dr.Boom's Avatar
 
Join Date: 06/2007
Posts: 1,558
Default

tyoma53, без паники. Тестовая версия удалена до её исправления в соответствии с правилами разработки плагинов (П.5).
Репорты (если таковые имеются) можете оставлять.
__________________
Ӈе шалю, ӈикого ӈе трогаю, починяю примус...
И ҽщё считаю долгом предупредить, что ӄот древнее и ӈеприкосновенное животное.
© Булгаков
Dr.Boom вне форума   Reply With Quote
Old 15.09.2011, 17:00   #72
sleuthhound
QIP User
 
Join Date: 07/2011
Posts: 188
Default

Выкладываю QIPHistoryToDB v2.0 Beta 1

Все приведено в соответствие с правилами написания плагинов. Поэтому кураторы могут быть спокойны.

Из изменений:

v2.0 Beta 1 от 15.09.2011:
+ Функционал по просмотру истории вынесен в отдельную программу (HistoryToDBViewer).
+ Функционал по синхронизации истории так же вынесен в отдельную программу(HistoryToDBSync).
+ Реализованы все методы синхронизации (Автоматический, Ручной и По расписанию).
+ Добавлена поддержка БД Oracle.
+ Добавлено автоматическое обновление БД при запуске новой версии плагина.
+ Добавлена возможность сохранения истории выбранного контакта в формате TXT или RTF.
+ Добавлена возможность удаления истории выбранного контакта.
* Исправлены проблемы с кодировкой UTF8

Теперь о самом главном, как обновиться с версии 1.2.

В новую версию встроен функционал по автоматическому обновлению БД на основе данных из таблицы config
Как только вы запустите плагин и при условии верных настроек БД и наличию прав на обновление таблиц, так сразу же произойдет обновление структуры БД.

Но все же из-за досадного бага с кодировками вкравшегося в версии 1.2 (двойное кодирование информации в таблицах) я бы порекомендовал пересоздать БД с нуля
К официальному релизу версии 2.0 я добавлю к функции обновления БД еще и автоматическое конвертирования базы в нормальный вид. А пока либо пересоздать базу с нуля, либо выгрузить из неё данные после обновления плагином, перекодировать поля в нормальный вид и залить назад в БД.

Качаем
http://www.im-history.ru/get.php?fil...yToDBv20-Beta1

Принимаются замечания и пожелания.

P.S. Если какой-то функционал о котором писалось на форуме не был реализовал в 2.0 Beta, значит он появиться в релизе. У меня все записано. Постараюсь все сделать.

Last edited by sleuthhound; 22.09.2011 at 19:00.
sleuthhound вне форума   Reply With Quote
Old 16.09.2011, 22:06   #73
UksusoFF
QIP Elder
 
UksusoFF's Avatar
 
Join Date: 12/2006
Posts: 597
Default

sleuthhound,
если появится конвертер, то можно будет объединить истории myHistory, sHistory и qhf?
UksusoFF вне форума   Reply With Quote
Old 17.09.2011, 13:04   #74
sleuthhound
QIP User
 
Join Date: 07/2011
Posts: 188
Default

Quote:
Originally Posted by UksusoFF View Post
sleuthhound,
если появится конвертер, то можно будет объединить истории myHistory, sHistory и qhf?
Конечно можно :) Конвертер из qhf уже почти готов, из myHistory, sHistory в процессе написания.
sleuthhound вне форума   Reply With Quote
Old 22.09.2011, 16:55   #75
sleuthhound
QIP User
 
Join Date: 07/2011
Posts: 188
Default

Выкладываю QIPHistoryToDB v2.0 Beta 2

Из изменений:

v2.0 Beta 2 от 22.09.2011:
+ Добавлен импорт истории из QIP Infium (Формат QHF).
* Обновлена библиотека по работе с БД SQLite до версии 3.7.8 (Увеличена скорость работы с базой под Windows)



Качаем
http://www.im-history.ru/get.php?fil...yToDBv20-Beta2

Принимаются замечания и пожелания.

P.S.
Импорт работает так:
1. Программа импортирует историю из QHF в HistoryToDBMes.sql в каталог профиля пользователя QIP
2. В момент следующей синхронизаций программой HistoryToDBSync, файл HistoryToDBMes.sql засасывается в БД.
Погонял у себя, из замеченных проблем только одна - иногда в insert запросах в HistoryToDBMes.sql не удаляется символ ENTER и запросы бьются. Но это редкость.

Last edited by sleuthhound; 22.09.2011 at 18:52.
sleuthhound вне форума   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +4. The time now is 13:47.


Powered by vBulletin.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
©2004 - 2012 QIP.RU