Open source / Вышел LeechCraft 0.5

в 15:01, , рубрики: c++, jabber, open source, qt, xmpp, метки: , , , ,

Привет!
Пару дней назад вышла новая версия интернет-комбайнаклиента LeechCraft — 0.5.0. На Хабре несколько лет назад уже пролетала новость об этой программе, а теперь пришло время рассказать о ней снова, ибо с тех пор изменилось действительно много чего.
Если вкратце, LeechCraft — модульное кроссплатформенное приложение «обо всем» на C++ и Qt, сочетающее в себе браузер, RSS-читалку, торрент-клиент, а теперь еще и IM. Модульность приложения означает не просто поддержку этих самих модулей, а то, что, во-первых, каждая функция, от самых крупных (браузер, читалка, ядро IM) до самых мелких (блокировка рекламы, поддержка стилей в IM, антиспам) реализованы отдельными слабо связанными модулями, так или иначе взаимодействующими друг с другом. Описание архитектурных решений и возникших там за время жизни проекта костылей тянет на отдельную статью, так что не будем углубляться в это, разве что, ответим сразу на один частый вопрос — да, сейчас все это дело крутится в одном процессе, но в перспективе (и это действительно планируется к следующему релизу) модули будут разнесены в различные процессы с сохранением всех (ну, или почти всех :)) плюшек от их взаимодействия друг с другом. Благодаря Qt'шным метаобъектам это вполне реализуемо.
После версии 0.3, о которой была публикация по ссылке в начале этой статьи, в версии 0.4 появилась куча новых модулей: например, модуль поддержки скриптовых плагинов (само приложение-то написано на C++/Qt), юзерспейс-менеджер пакетов, менеджер паролей и многое другое. Но на этом мы не будем подробно останавливаться сегодня, а лучше расскажем про новое в версии 0.5.
Пожалуй, самое главное изменение в этой версии — новый модуль Azoth, IM-клиент, мультипротокольный и тоже модульный (да, в LeechCraft у каждого модуля могут быть свои модули, и так сколь угодно глубоко). Например, как-то так выглядит конференция в Azoth:
или вот, с улучшенной в master поддержкой Adium-тем:
или вот, например, XMPP-команды:
В версию 0.5 включены модули поддержки XMPP (вместе с кучей расширений протокола) и IRC, а в master-ветке уже реализована начальная поддержка MRIM и MSN, и начата работа над адаптером для фреймворка Telepathy.
Отдельным модулем поддерживаются так же Adium-стили:
Есть модуль для автоматического TeX-форматирования:
Также есть плагины, реализующие историю сообщений, автоматическую вставку длинных текстов на пейстбины (удобно в конференциях кидаться исходниками, например), антиспам, публикацию текущих песен и многое другое. Есть и модули интеграции с сервисами микроблоггинга через XMPP типа Psto.net.
В этом релизе также появилась новая подсистема уведомлений, Advanced Notifications, позволяющая гибко конфигурировать реакции на различные события. Например, можно настроить особое оповещение звуком на сообщения от людей в группе «Личное», а при получении сообщения от контакта «Любимая» вообще вызывать команду для мигания LED'ами на клавиатуре. Управление этими реакциями чем-то похоже на конфигурирование цепочек правил в iptables:
Также в этом релизе были добавлены модуль поддержки GreaseMonkey-скриптов и модуль синхронизации с социальными сервисами хранения закладок.
Напоследок приведем еще пару скриншотов.
Менеджер пакетов:
RSS-читалка:
Веб-браузер с открытым рядом ростером Azoth:
и без ростера:
LeechCraft лучше всего работает под различными Linux'ами, тем не менее, есть и Windows-версия, но в силу разных причин она имеет чуть меньший приоритет. Чтобы эту статью не считали совсем пиаром, прямых ссылок на страницы закачки приводить не буду — на сайте проекта все есть :)
Ну и о планах на будущее. В основной ветке уже пилится новая система работы со вкладками (видно такой сайдбар сбоку на одном из скриншотов в начале), почтовый клиент, интеллектуальное семантическое хранилище, инфраструктура синхронизации данных/настроек, и еще куча всего. Планируется переход и на WebKit2, в котором многопроцессность в стиле хрома реализована «из коробки», но для этого придется дождаться выхода Qt 5.

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js