Плагин MsgBox для QIP Infium

Плагин расширяет возможности программного управления QIP. Особенности:

·         Позволяет программно отправлять сообщения

·         Позволяет программно проверять статусы пользователей

·         Работает только с пользователями из списка контактов

·         Управление и получение результата осуществляется простейшим способом - через текстовые файлы. Каждое входящее, исходящее, отправленное сообщение и заявки на проверку статуса хранятся в отдельном  текстовом файле.

·         Позволяет работать со всеми протоколами, для которых созданы учетные записи в qip (icq, qip, lj, magent, …)

·         Ведет историю  всех сообщений – полученных, отправленных вручную и через этот плагин.

·         Гарантирует доставку сообщения, не пропускает сообщения. Из-за недоработки SDK для контроля доставки использует контакт-семафор статуса онлайн протокола.

Лицензия

Плагин заказал я, Осипов Сергей Александрович (http://fixin.com.ru), написал программист-фрилансер Алексей Солодкий DocX (doc.x@qip.ru) за 2000 RUR (70$).

Программа dotation-ware. Если ее разработка окупится, то будут заказаны еще много других интересных и бесплатных плагинов для других программ, поэтому, если программа пригодилась, прошу перечислить любую, даже смешную сумму на указанные счета.

Право на плагин и исходный код принадлежат мне. Код открыт. Разрешается абсолютно свободное использование и переделка кода, при условии ссылки на автора, заказчика и указания реквизитов для дотаций: Web-money Z667446785248, R883290290994; Яндекс-деньги 4100195816684 (указывайте, пожалуйста, за что дотация). Запрещается продажа плагина и его доработок.

Инсталляция

1.       Создайте папку MsgBox в папке Plugins программы QIP

2.       Распакуйте файлы из архива msgbox.zip в папку MsgBox

3.       Перезапустите QIP.

4.       Проверить статус плагина можно на закладке Настройки – Модули – MsgBox.

5.       Настройте файл протоколов «s.txt». Смотрите «Настройка файла протоколов»

Для проверки работоспособности плагина скопируйте файл «203136830#example for test - thank you sponsor.txt» в папку OutBox, при этом через некоторое время файл переместится в папку Sent. Также после запуска плагина в папках InBox и SentMan должна вестись история полученных и отправленных вручную сообщений.

Настройка файла протоколов

Файл «s.txt» используется для настройки протоколов.

В файле поставки он выглядит так:

mblogi@mblogi.qip.ru 1
203136830 3

Файл нужно изменить вручную.

Каждая строка описывает отдельный протокол. Нужно перечислить все протоколы, для которых используем плагин.

В строке сначала указывается идентификатор пользователя для проверки статуса онлайн протокола, затем указывается номер протокола.

Номер не отключаемого протокола QIP всегда 1. Номер протокола 2 зарезервирован для системы поиска.

Номера остальных протоколов можно посмотреть в Настройки – Учетные записи: первый протокол всегда QIP, остальные нумеруются последовательно, начиная с номера 3.

Необходимость в указании пользователя для проверки он-лайн статуса связана со следующими недостатками SDK:

1.       Невозможно получить статус протокола

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

Обычно для контроля онлайн статуса протокола можно использовать самого себя – т.е. добавить самого себя в список контактов. Для ICQ такой метод работает. Для QIP у некоторых пользователей статус самого себя всегда оффлайн. В таких случаях можно использовать службы, которые всегда онлайн у данного протокола, например сервисные службы. Для QIP это служба микроблогов mblogi@mblogi.qip.ru.

После настройки файла нужно перезапустить плагин, смотрите «Перезапуск плагина».

Перезапуск плагина

В разделе Настройки – Модули – MsgBox выберите команду «Отключить», а затем «Включить». Или просто выйдите, и снова зайдите в QIP.

Структура директорий

Внутри папки MsbBox используются следующие директории:

·         Inbox – ведение истории файловых сообщений

·         OutBox – папка, в которую помещаются сообщения для отправки

·         OutStat – папка, в которую помещаются заявки на проверку статуса

·         Sent – папка, в которую помещаются отправленные сообщения

·         SentMan – папка, в которую помещаются отправленные вручную сообщения

Имена файлов

В файлах хранятся входящие, исходящие сообщения, заявки на проверку статуса и результаты проверки статусов.

В файлах сообщений в тексте файла содержится сообщение. Файлы статусов пустые.

Вся служебная информация о сообщении или проверке статуса содержится в имени файла.

[Номер протокола «#»][Идентификатор пользователя][«#» Маркер][«_» Дата и время] [«_» Статус]

·         Номер протокола – необязательное поле для протоколов ICQ или QIP. Задает номер протокола, по которому передавать сообщение. Если не указано, то если в идентификаторе пользователя содержится «@qip.ru», считается, что это протокол QIP, иначе считается, что это протокол ICQ.

·         Идентификатор пользователя – идентификатор пользователя.

·         Маркер – любая текстовая строка, которая не содержит «#» или « _». Например, можно указывать GUID сообщения.

·         Дата и время – дата и время обработки сообщения. Подставляется плагином.

·         Статус – статус, результат заявки на получение статуса или статус получателя при получении сообщения, записывается латинскими прописными буквами: ONLINE, OFFLINE, HOME и т.д.

Дата создания и изменения файла не изменяются плагином.

Примеры:

·         doc.x@qip.ru#YOUY_20090629152215_ONLINE.txt

·         203136830.txt

·         #1_doc.x1@qip.ru#YOUY.txt

·         mblogi@mblogi.qip.ru_20090705151739.txt

История входящих сообщений

Все входящие сообщения отправляются в папку Inbox. При этом в имени файла устанавливается идентификатор и маркер. К имени файла дописывается дата и время получения сообщения.

История отправленных вручную сообщений

Отправляемые пользователем вручную сообщения копируются в папку SentMan. При этом в имени файла сохраняется идентификатор и маркер. К имени файла дописывается дата и время отправки сообщения и статус получателя при отправке сообщения.

Отправка сообщений

Сообщение нужно разместить в папку Outbox. Если сообщение может быть отправлено, оно перемещается в папку Sent. При этом в имени файла сохраняется номер протокола, идентификатор и маркер. К имени файла дописывается дата и время отправки сообщения и статус получателя при отправке сообщения.

Если сообщение не может быть отправлено, оно остается в папке Outbox.

Проверка статусов

Заявку на проверку статуса нужно разместить в папку OutStat. Если заявка может быть отправлена, она перемещается в папку OutStat. При этом в имени файла сохраняется номер протокола, идентификатор и маркер. К имени файла дописывается дата и время проверки статуса и статус проверяемого пользователя.

Если заявка не может быть обработана, она остается в папке OutStat.

Рекомендации

·         Если у вас QIP на флешке, не забывайте периодически очищать папки, обычно файловая система флешки не поддерживает более 10000 файлов.

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

·         Очищайте очередь отправки от застрявших сообщений, которые лежат там больше суток, например. Они не отправятся.

Пожелания (wish-list)

Список желаний строится на основании ваших заявок. При накоплении критической массы и наличии дотаций будет выпущена новая версия плагина.

Активные пожелания:

·         Сохранять статус пользователя во входящих сообщениях

·         Дату файла в папке «Sent» устанавливать в дату получения.

·         Контролировать периодичность рассылки сообщений, чтобы отправлять не более заданного количества сообщений в заданный интервал времени (чтобы при большом количестве сообщений временно не отключали от сервера).

·         Устанавливать в имени файла в папках InBox и SentMan номер протокола.

Пожелания, зависящие от прогресса SDK:

·         Избавиться от контакта для контроля статуса протокола

·         Рассылать сообщения пользователям не из контактного списка

·         Убирать мигание сообщения от пользователя

История плагина

В конце 2008 года я задумал написать программу-болтуна на 1С, которая бы общалась вместо меня с девушками. В отличие от аналогов, она имела бы более продвинутую базу данных. Но я не мог найти транспорт для отправки и получения сообщений.

Я нашел программу Душелова, которая управлялась по OLE, но ее нужно было использовать вместо QIP-клиента. Т.е. нужно было завести еще один UIN, или же работать со своим логином, но не в удобном QIP, а в неудобной программе 1С.

В начале 2009 года я сформулировал требования к плагину, и выложил их на форуме QIP. Желающих написать плагин, даже за деньги, не нашлось, но мне предложили поискать фрилансера.

В июне 2009 года я опубликовал заявку на работу на сайте http://www.free-lance.ru

Мне откликнулось сразу несколько разработчиков, я выбрал земляка DocX. Вместе мы довели плагин до рабочего состояния. Пришлось столкнуться с ограничениями SDK, но мы их обошли.

Скачать.

Скачать исходники .

Обсудить на форуме QIP.