Плагин расширяет возможности программного управления 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 файлов.
· При отправке большого количества сообщений контролируйте очередь отправки, при массовой рассылке сообщений сервер может временно отключить протокол.
· Очищайте очередь отправки от застрявших сообщений, которые лежат там больше суток, например. Они не отправятся.
Список желаний строится на основании ваших заявок. При накоплении критической массы и наличии дотаций будет выпущена новая версия плагина.
Активные пожелания:
· Сохранять статус пользователя во входящих сообщениях
· Дату файла в папке «Sent» устанавливать в дату получения.
· Контролировать периодичность рассылки сообщений, чтобы отправлять не более заданного количества сообщений в заданный интервал времени (чтобы при большом количестве сообщений временно не отключали от сервера).
· Устанавливать в имени файла в папках InBox и SentMan номер протокола.
Пожелания, зависящие от прогресса SDK:
· Избавиться от контакта для контроля статуса протокола
· Рассылать сообщения пользователям не из контактного списка
· Убирать мигание сообщения от пользователя
В конце 2008 года я задумал написать программу-болтуна на 1С, которая бы общалась вместо меня с девушками. В отличие от аналогов, она имела бы более продвинутую базу данных. Но я не мог найти транспорт для отправки и получения сообщений.
Я нашел программу Душелова, которая управлялась по OLE, но ее нужно было использовать вместо QIP-клиента. Т.е. нужно было завести еще один UIN, или же работать со своим логином, но не в удобном QIP, а в неудобной программе 1С.
В начале 2009 года я сформулировал требования к плагину, и выложил их на форуме QIP. Желающих написать плагин, даже за деньги, не нашлось, но мне предложили поискать фрилансера.
В июне 2009 года я опубликовал заявку на работу на сайте http://www.free-lance.ru
Мне откликнулось сразу несколько разработчиков, я выбрал земляка DocX. Вместе мы довели плагин до рабочего состояния. Пришлось столкнуться с ограничениями SDK, но мы их обошли.