Table of Contents
Плагины Psi+
В данной статье приведены ключевые моменты проделанной работы по расширению функционала плагинной системы приложения.
Также подробно рассмотрены вопросы описания, настройки и работы с плагинами Psi+.
Изменения в системе плагинов Psi
- Изменён дизайн окна настроек плагинов (автор - Dealer_WeARE)
- Добавлено отображение версии плагина в окне настроек плагинов (автор - VampiRUS)
- Добавлена возможность подключать, отключать и обновлять плагины без перезагрузки приложения (автор - Dealer_WeARE)
- Добавлена возможность читать/писать настройки из плагина (автор - C.H.)
- Добавлена возможность назначать горячие клавиши из плагина
- Добавлена возможность передавать и получать иконки (авторы - VampiRUS, Dealer_WeARE)
- Реализован доступ к параметрам активной вкладки (автор - VampiRUS)
- Реализован доступ к различной информации о приложении
- Реализован доступ к информации об аккаунте (автор - Dealer_WeARE)
- Добавлена возможность вызывать попапы из плагинов (автор - Dealer_WeARE)
- Добавлена возможность изменения событий из плагина (метод processEvent – в Juick Plugin, в Gmail Service Plugin), автор - VampiRUS
- Добавлена возможность отображения кнопки вызова метода плагина на тулбар (ToolbarIconAccessor, GCToolbarIconAccessor, пример использования – Image Plugin), автор - VampiRUS
- Добавлена возможность отображения кнопки вызова метода плагина из меню заголовка аккаунта и из меню контакта в ростере (автор - Dealer_WeARE)
- Добавлена возможность установки и настройки настроения, активности и мелодии для указанного контакта (необходимо для работы Qip X-statuses Plugin), автор - Dealer_WeARE
- Добавлена кнопка в опции плагинов, при нажатии на которую показывается информация о плагине (автор - Dealer_WeARE)
- Добавлена возможность изменять статус для аккаунта (автор - Dealer_WeARE)
Пример компиляции плагина для Psi+
Пример компиляции плагина рассмотрим на примере Conference Logger Plugin:
- Скачиваем исходный код Psi из git-репозитория (https://github.com/psi-im/psi.git)
- Скачиваем исходные коды плагинов из git-репозитория (https://github.com/psi-im/plugins.git)
- Переходим в каталог plugins/generic/conferenceloggerplugin
- Выполняем команды:
mkdir -p build && cd build
cmake ..
cmake –build .
- Видим результат компиляции в каталоге plugins/generic/conferenceloggerplugin/build
См. также пример автоматической компиляции плагинов Psi+: здесь.
Плагины от команды Psi+
Зачеркнуты плагины, которые больше не поддерживаются разработчиком и удалены из основных сборок
Attention Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для отправки и приёма сообщений типа Attention.
Для работы необходимо, чтобы клиент собеседника поддерживал XEP-0224 (например: Pidgin, Miranda IM с плагином Nudge).
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Autoreply Plugin
Автор: Dealer_WeARE
Данный плагин выполняет роль автоответчика. Имеет ряд несложных настроек, с помощью которых можно:
- задать текст сообщения для автоответа
- исключить определённые jid'ы, включая конференции, из объектов для автоответа (если задан jid конференции, то в исключения попадают все приватные сообщения)
- отключить автоответчик для некоторых ваших аккаунтов
- задать количество посылок автоответа
- задать интервал времени, по истечении которого счётчик количества автоответов будет обнулён
- отключить автоответчик для активной вкладки/таба
- отключить автоответчик для контактов не из вашего ростера
Список исключений для jid'ов имеет два режима работы:
- автоответчик выключен для списка исключений, для остальных – включён (Disable mode)
- автоответчик включён для списка исключений, для остальных – выключен (Enable mode)
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Birthday Reminder Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для напоминаний о приближающихся днях рождения.
Если плагин установлен впервые, то необходимо выйти всеми своими аккаунтами в “онлайн”, затем зайти в настройки плагина и нажать кнопку Update Birthdays. В результате будет собрана доступная информация о днях рождения пользователей из всех аккаунтов ростера, а если выбрать соответствующую опцию, то и информация о пользователях, vCard'ы которых находятся в кэше на локальном диске.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Captcha Forms Plugin
Автор: Dealer_WeARE
ДАННЫЙ ПЛАГИН УДАЛЕН ИЗ ТЕКУЩИХ СБОРОК PSI+ ВВИДУ ПЕРЕНОСА ЕГО ФУНКЦИОНАЛА НЕПОСРЕДСТВЕННО В САМУ PSI
Данный плагин предназначен для прохождения капчи непосредственно из Psi+.
В данный момент функционал весьма ограничен. Работает только в случае, если картинка посылается непосредственно в теле сообщения (загрузка контента из интернета пока не поддерживается).
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Chess Plugin
Автор: Dealer_WeARE
Данный плагин позволяет играть в шахматы с пользователями из ростера.
Плагин совместим с аналогичным плагином в jabber-клиенте Tkabber.
Для передачи команд используются обычные сообщения, поэтому плагин будет работать везде, где у Вас есть возможность выйти в “онлайн”.
Чтобы пригласить друга в игру, можно воспользоваться пунктом меню контакта или кнопкой на тулбаре в окне чата.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Cleaner Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для очистки кэша аватар, сохранённых локальных копий vCard, а также логов истории переписки.
Имеется возможность предварительного просмотра элементов перед их удалением с локального диска.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Client Switcher Plugin
Автор: liuch
Данный плагин предназначен для подмены версии XMPP-клиента, его названия и типа операционной системы. Имеется возможность вручную указать версию клиента и операционной системы или выбрать их из заданного списка.
Примечание: Рекомендуется использовать плагин только в случае реальной необходимости. Следует помнить, что подмена имени и версии клиента может негативно сказаться на поддержке в соответствующих конференциях.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Conference Logger Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для записи (сохранения) логов конференций, в которых находится пользователь Psi+.
Логи конференций можно просмотреть из настроек плагина, либо нажав соответствующую кнопку на тулбаре в активном окне/табе конференции.
Примечание: Для корректной работы опция options.ui.chat.central-toolbar должна быть установлена в положение true.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Content Downloader Plugin
Автор: taurus
Данный плагин предназначен для скачивания из Интернет наборов иконок и прочих дополнительных ресурсов для Psi+.
Примечание: В настоящее время плагин умеет скачивать и устанавливать наборы иконок для ростера и смайлпаки.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Extended Menu Plugin
Автор: Dealer_WeARE
Данный плагин добавляет в контекстное меню контакта ростера подменю “Extended Actions”. На данный момент имеются следующие пункты: “Скопировать JID”, “Скопировать ник”, “Скопировать статусное сообщение” и “Ping”.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Extended Options Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для более удобной настройки дополнительных параметров Psi+.
Плагин предоставляет доступ к дополнительным настройкам приложения, которые не имеют своего графического интерфейса.
Важно: бОльшая часть настроек имеет системный характер и требует внимания и понимания смысла изменяемых функций.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Gmail Service Plugin
Автор: VampiRUS, Dealer_WeARE
ДАННЫЙ ПЛАГИН УДАЛЕН ИЗ СБОРОК КАК ЗАБРОШЕННЫЙ
Данный плагин предназначен для работы с уведомлениями о поступлении новых писем в почтовый ящик Gmail, а также с прочими дополнительными сервисами.
Примечание: Плагин проверяет корень почтового каталога Inbox в Gmailbox на предмет наличия новых писем. Если фильтрация (пересортировка) писем осуществляется непосредственно на сервере Gmail, то нотификаций о новой почте не будет.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Gomoku Game Plugin
Автор: liuch
Данный плагин позволяет играть с контактами ростера и конференции в игру Гомоку. Реализована разновидность правил “Международное гомоку”.
О правилах и самой игре можно прочитать тут.
Для передачи команд используются обычные сообщения, поэтому плагин будет работать везде, где есть возможность выйти в онлайн.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
History Keeper Plugin
Автор: Dealer_WeARE
ДАННЫЙ ПЛАГИН УСТАРЕЛ И НЕ УДАЛЯЕТ ИСТОРИЮ ИЗ БАЗЫ ДАННЫХ, В КОТОРОЙ PSI+ ТЕПЕРЬ ХРАНИТ ИСТОРИЮ
Данный плагин предназначен для удаления истории переписки с отмеченными контактами при выходе из Psi+.
Отметить контакт или удалить отметку можно из контекстного меню контакта, либо через окно с настройками плагина.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
ICQ Must Die Plugin
Автор: ivan1986
Данный плагин призван помочь Вам перевести как можно бОльшее количество Ваших контактов с ICQ на XMPP.
Плагин имеет ряд несложных настроек, с помощью которых можно:
- Задать текст сообщения
- Исключить определённые ICQ номера
- Задать интервал времени, по истечении которого сообщение будет повторено
- Отключить сообщения для активного окна/таба
- Отключить сообщения для контактов не из Вашего ростера
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Image Plugin
Автор: VampiRUS
Данный плагин предназначен для отправки собеседнику графического изображения.
Клиент собеседника должен поддерживать XEP-0071: XHTML-IM и поддерживать схему data:URI.
Примечание: Для корректной работы плагина опция options.ui.chat.central-toolbar должна быть установлена в положение true.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
XMPP Disk Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для комфортной работы с файловыми хранилищами XMPP Disk.
Реализовано через соответствующую команду в контекстном меню контакта ростера.
Работа с файлами представлена в виде графического интерфейса.
Добавлять/удалять/редактировать глобальные настройки плагина можно на вкладке Plugins в настройках приложения.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Juick Plugin
Автор: VampiRUS
Плагин предназначен для эффективной и комфортной работы с сервисом микроблогов Juick.
На данный момент плагин умеет:
- Раскрашивать @ники, *тэги, #id_сообщений в сообщениях от бота juick@juick.com
- Распознавать >цитаты в сообщениях
- Кликабельные @ники, *тэги, #id_сообщений и другие управляющие элементы для подстановки их в строку ввода
Примечание: Для корректной работы плагина опция options.html.chat.render (“Использовать формат текста отправителя”) должна быть установлена в положение true.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
PEP Change Notify Plugin
Автор: Dealer_WeARE
Плагин предназначен для показа всплывающих уведомлений о смене настроений, занятий и мелодий у контактов из ростера. В настройках можно выбрать для каких именно событий включены уведомления, задать время, в течение которого уведомление будет показываться, а также указать проигрываемый звук.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Qip X-statuses Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для отображения х-статусов контактов, использующих в качестве jabber-клиента QIP Infium.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Screenshot Plugin
Авторы: C.H., Dealer_WeARE
Данный плагин позволяет делать снимок (скриншот) экрана, редактировать видимую область на сделанном скриншоте и сохранять снимок на локальный диск или загружать на HTTP/FTP-сервер.
Плагин имеет следующие настройки:
- Shortcut – горячая клавиша для вызова плагина (по умолчанию, Ctrl+Alt+P)
- Format – тип графического файла, в котором будет сохранён снимок экрана (по умолчанию, png)
- File Name – формат имени графического файла (по умолчанию, pic-yyyyMMdd-hhmmss, где yyyyMMdd=ГГГГММДД, hhmmss=ччммсс - текущая дата в формате годмесяцдень-часминутасекунда; например, pic-20100711-135132.png)
Адрес FTP-сервера задаётся в виде ftp://ftp.domain.tld/path1/path2.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Примечание: Для работы со скриншотами также можно использовать отдельное (самостоятельное) приложение qScreenshot. Доступно на различных платформах (в т.ч. и под MS Windows).
Skins Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для создания и использования скинов в Psi+.
Скин - это набор пользовательских настроек.
Для того, чтобы применить новый скин для Psi+, можно использовать различные способы:
- Создать в каталоге PsiData папку skins и расположить в ней предварительно скачанный скин (по умолчанию плагин “смотрит” в папку PsiData).
- Открыть файл скина из любого места локального диска при помощи команды Open в настройках плагина.
Каждый скин должен лежать в отдельной папке. Рядом с файлом скина можно также положить скриншот скина.
В большинстве случаев для того, чтобы быть уверенным, что скин применился правильно, необходимо выполнить следующую последовательность действий:
- Применить скин
- Перезапустить Psi+
- Применить этот же скин повторно
Такая последовательность действий позволит всем настройкам (иконкам, положению панелей инструментов) примениться правильно и до конца.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Stop Spam Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для блокировки получения в ростер пользователя Psi+ рассылок спама и другой нежелательной информации.
Функционал плагина основан на принципе “вопрос - ответ”.
С помощью настроек плагина можно:
- Ввести контрольный вопрос и ответ на него
- Задать набор правил, определяющих, будет ли срабатывать плагин для данного контакта
- Задать текст сообщения, посылаемого в случае правильного ответа
- Включить уведомления при помощи всплывающих окон
- включить сохранение заблокированных сообщений в истории контакта
- Задать количество посылок вопроса
- Задать интервал времени, по истечении которого счетчик количества отправленных вопросов будет обнулён
- Включить блокировку приватных сообщений в конференциях
- Выбрать для каких рангов и ролей участников конференции блокировка сообщений будет отключена
- Включить полную блокировку приватных сообщений для участников конференции, которые не попадают в список исключений и для ролей и рангов которых включена блокировка.
Правила проверяются сверху вниз. Если напротив правила стоит галочка Enabled, то стоп-спам сработает, в противном случае – не сработает.
В случае когда ни одно из правил не сработало, для сообщений из ростера можно задать, сработает ли плагин или нет. Для приватных сообщений из конференций – всегда сработает.
Контрольный вопрос и ответ, а также список правил является общим, как для обычных сообщений, так и для приватных сообщений в конференциях.
Также пользователю, успешно прошедшему тест, придётся заново запрашивать авторизацию. Это стОит отметить в сообщении, отсылаемом в случае правильного ответа на контрольный вопрос.
Плагин ведёт лог заблокированных сообщений, который можно просмотреть командой View log.
Команда Reset позволяет удалить этот лог и сбросить счётчик заблокированных сообщений.
ВНИМАНИЕ!!! Перед регистрацией на новом транспорте рекомендуется добавить JID транспорта в исключения. Это связано с тем, что после регистрации транспорт запрашивает авторизацию для всех контактов и если его не добавить в исключения, то плагин заблокирует все запросы.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Storage Notes Plugin
Автор: Dealer_WeARE
Данный плагин представляет собой реализацию XEP-0049: Private XML Storage.
Плагин полностью совместим с заметками, сохранёнными из клиента Miranda IM.
Плагин предназначен для хранения заметок на jabber-сервере с возможностью доступа к ним из любого места через клиент Psi+ или Miranda IM.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Translate Plugin
Автор: VampiRUS
Данный плагин позволяет конвертировать выделенный текст в другую языковую раскладку.
Исходный код плагина можно взять здесь или здесь.
Video Status Changer Plugin
Авторы: Dealer_WeARE, KukuRuzo
Плагин предназначен для установки заданного статуса во время просмотра видео в указанном видеопроигрывателе.
Связь с проигрывателями осуществляется посредством D-Bus.
Важно: Работа с видеопроигрывателями осуществляется ТОЛЬКО в операционных системах семейства Linux/BSD. В MS Windows реализовано ТОЛЬКО определение полноэкранного режима работы другого приложения на машине пользователя.
- Для работы с Totem необходимо в самом проигрывателе включить соответствующий плагин (Правка\Модули\Служба D-Bus);
- Для работы с VLC необходимо в расширенных настройках проигрывателя на вкладке “Интерфейс\Интерфейсы управления” включить опцию “Интерфейс управления D-Bus”;
- Для работы с Kaffeine необходимо иметь плеер версии (>=1.0), дополнительных настроек не нужно;
- Для работы с GNOME MPlayer дополнительных настроек не нужно.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Watcher Plugin
Автор: Dealer_WeARE
Данный плагин предназначен для наблюдения за статусом определённых пользователей в ростере, а также для подмены стандартных звуковых событий входящих сообщений.
На первой вкладке настраивается список контактов, за статусом которых осуществляется наблюдение. При смене статуса таких контактов будет показываться всплывающее окно, а при смене статуса на “онлайн” - ещё и проигрываться указанный звук.
На второй вкладке настраивается список элементов, за сообщениями которых ведётся наблюдение.
Каждый элемент может содержать:
- Регулярное выражение для проверки на совпадение с JID, от которого приходит сообщение;
- Список регулярных выражений для проверки на совпадение с текстом входящего сообщения;
- Путь к звуковому файлу, который будет проигран в случае совпадения;
- Настройку для воспроизведения звукового файла всегда, даже если глобальные звуки выключены.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Yandex Narod Plugin (Deprecated)
Автор: Dealer_WeARE
ДАННЫЙ ПЛАГИН УДАЛЕН ИЗ ВСЕХ СБОРОК КАК УСТАРЕВШИЙ
Данный плагин является портированной версией соответсвующего плагина для QutIM.
Плагин позволяет передавать файлы с помощью сервиса Яндекс.Диск (через пункт меню контакта).
Также плагин позволяет управлять файлами, загруженными на данных сервис (пункт меню аккаунта).
В версиии плагина для Psi+ (по сравнению с оригиналом) добавлена поддержка proxy-серверов, исправлено удаление файлов и некоторые другие исправления и улучшения.
Подробную историю версий можно найти здесь.
Исходный код плагина можно взять здесь или здесь.
Бинарные версии плагинов
Готовые к использованию версии плагинов под MS Windows можно скачать отсюда.