Skip to main content


Development digest #12

Posted in

Last week (more or less) in LeechCraft:

  • Added autoidentify feature to Azoth Acetamide.
  • Azoth now supports for protocols that allow exchanging contacts.
  • Implemented XEP-0144: Roster Item Exchange to Azoth Xoox.
  • Allow one to set different themes for normal chats and multiuser conferences.
  • Added quite nice GoneDark theme to Azoth AdiumStyles's default themes set.
  • Fixed styling in Azoth and Azoth AdiumStyles: now more Adium themes are interpreted correctly.
  • New accounts in Azoth can now be created from the Azoth menu.
  • Fixed several bugs in Azoth Acetamide and Azoth.
  • Win32 build fixes for BitTorrent.

Development digest #11

Posted in

We haven't published development digests for almost a month, since we mostly did administrative issues, like getting into Gentoo repos, and such. Nevertheless, there is a bunch of changes:

  • Acetamide now supports configuring channels, including chanmods, banlist, except list and invite list.
  • Added support for /say command in Acetamide.
  • Support the "Important" tags for items in Aggregator.
  • Frames with ads are also hidden now in Poshuku CleanWeb.
  • Added support for running external commands in AdvancedNotifications.
  • Speed up Aggregator BodyFetch by orders of magnitude by caching scripts.
  • Disable unneeded things like JavaScript or images in Aggregator BodyFetch when parsing downloaded web pages.
  • Added KeepAllTags() getter in Aggregator BodyFetch supported scripting API.
  • Poshuku CleanWeb now supports the third-party attribute in filter lists.
  • Optimized Poshuku CleanWeb a bit: plain strings are matched using plain string matching algorithms instead of wildcard matching.
  • Allow to load default rules set in AdvancedNotifications.
  • Finally AdvancedNotifications is considered stable enough for the save procedure to be uncommented.
  • Draw own avatar and protocol icon in Azoth's contact list.
  • Automatically fix channel names in Acetamide by prepending # if it's not present.
  • Support /leave command in Azoth.
  • Added "Quote" action in Azoth.
  • Show free space in BitTorrent when adding files.
  • Moved data processing back to main thread in Aggregator BodyFetch, thus some thread-related bugs in QtWebKit don't occur anymore.
  • A whole class of bugs has been fixed, when an object mentioned in a notification was already deleted by the time the user activates the notificaton.
  • Handle self vcards correctly in Azoth Xoox.
  • Correctly handle content resend errors in Poshuku.
  • Some micro improvements in Azoth: dynamically detect rename ability, respect lack of MUC support in protocols, don't suggest registering with "Metacontacts" protocol.
  • Fixed support for notifying about each conference message from Azoth in AdvancedNotifications.
  • Fixed handling of the Ctrl+C shortcut in Azoth.
  • Fixed FlashOnClick in Poshuku CleanWeb.
  • Fixed ordering of links in Azoth p100q.
  • Fixed dependencies calculation in Core.
  • Optimized contact list delegate in Azoth.
  • Lots of fixes in Acetamide.
  • Show localized plugin descriptions in Core plugin manager.
  • Migrated to new signal/slot-style hooks in Core.
  • Initial support for Qt 4.8.

Plugins for site mirroring (Otzerkalu) and libvlc-based media player are also in progress, but they are currently not merged in the master branch. And maybe the first one, Otzerkalu, would be in the 0.5 release.

We've also begun considering implementing the VFS and dashboard in LeechCraft. But unfortunately since current support for VFS implementations in Qt is declared deprecated and nothing has been proposed instead, the VFS development is currently halted.

While it's all clear what VFS should be, things are a bit more complicated with the dashboard. The best analogue of it among the already-existing and stable projects is possibly KDE's Plasma workspace. What we are currently thinking about is a plugin that allows to open tabs populated with different widgets written in either QML or plain-old-good C++ (or, of course, Python and other scripting languages supported by LC). There will be a whole news item dedicated to dashboard things soon.

Development digest #10

Posted in

We haven't published any digests for some two weeks, and that's because we've been working very closely on the Advanced Notifications framework, and we made pretty usable already for the end-user. The corresponding plugin, AdvancedNotifications, is described in details on its page.

We also have some other news for you:

  • Added support for metacontacts via the Azoth Metacontacts plugin.
  • Support for XEP-0027 (OpenPGP) has been introduced into Azoth Xoox.
  • Azoth now supports protocols with PGP support and allows to assign private PGP keys to accounts and public keys to contacts.
  • Azoth Acetamide now supports the /msg command.
  • Bookmarks and autojoin in Acetamide.
  • Nicer contact list in Azoth.
  • Suggest rejoining a channel after being kicked.
  • Search by title in TabsList module.
  • Show tab numbers in TabsList.
  • Support data forms in messages in Azoth Xoox.
  • Allow to request voice in Azoth Xoox.
  • Allow to publish VCards for Azoth Xoox.
  • Self contact in Azoth Xoox.
  • Allow to disable by-status grouping in Azoth contact list.

Development digest #9

Posted in

On last week a huge and long-awaited change has been incorporated into LeechCraft main source tree: Chrome-style tabbar. Well, actually it's no so Chromish, as the title bar is still present and not replaced by tabs. The new tabbar is placed above the tab toolbar, which is more intuitive, and it also contains the menu button and quick launch area, so there is no need for a separate toolbar for that anymore, and that frees space a lot. The new tabbar system also supports pinning tabs, but currently the pinning state isn't saved between launches.

New tabsNew tabs

Unfortunately, Tab++ still doesn't work with the new tabs, but hopefully that would be fixed soon.

Thanks to some fixes in Azoth Xoox, XMPP protocol now should be much more robust, and PEP-based features should work with ejabberd-based servers as well.

There are lots of other changes as well, among them:


  • Added Azoth LastSeen for client-side recording of contacts' last online and availability time.
  • Added new module, TabsList, that allows one to show the list of currently opened tabs and quickly select one of them.
  • Glance feature moved from the Core to a separate plugin (thanks Maledictus).
  • Added full support for CAPTCHA-protected rooms in Azoth Xoox: no links should be clicked now to enter CAPTCHA.
  • Azoth now loads last few messages (amount is configurable) from the history when opening new chat.
  • Begun work on nice QML-based popup for tray notifications in the AdvancedNotifications module.
  • Begun work on metacontacts support.
  • Laid foundation for PGP support in Azoth and Azoth Xoox (thanks Alex Ermolov).
  • Added actions for viewing VCard and history to chat tab toolbar.
  • Added smiles chooser to message formatter bar in chat tabs.
  • Added buttons for recommending and adding to bookmarks for posts and comments in Azoth p100q.
  • Number of MUC participants is shown now in MUC chat tabs.
  • A huge fix for entity caps in Azoth Xoox: now they are calculated correctly.
  • Fixed spaces after some commands in Azoth p100q.
  • Fixed status changes and status handling in Azoth.
  • ShellOpen now offers to open things by notification instead of a modal dialog. Less annoying.
  • Fixes and kludges in FB2 export feature in Aggregator.
  • Fixed quite a big memory leak in tabs tooltip handling.
  • Fixed leaking toolbars in Azoth.
  • Lots of bugfixes in Azoth Acetamide.
  • Azoth HiLi doesn't check big message bodies for highlights now.

This digest was against 0.4.80-539-gb671ae4 as HEAD.

Development digest #8

Posted in

This week we also mostly focused on the Azoth IM in LeechCraft, but, unlike the previous week, we mostly focused on features not directly related to XMPP rather than implementation of lots of XEPs. Some other plugins, like Aggregator, weren't forgotten as well.

LaTeX formula with ModnokLaTeX formula with Modnok

An Adium styleAn Adium style

Another Adium styleAnother Adium style

So, the list of changes since previous devel digest follows:

  • A new plugin, SecMan SecureStorage, has been merged into master branch. This plugin provides an AES256-secured storage area for passwords and personal data (thanks Akon32).
  • Added Azoth Modnok plugin for inline in-chat LaTeX rendering and display.
  • Added Azoth AdiumStyles plugin for, well, support for Adium styles. It is still experimental and quite basic, but, nevertheless, already usable.
  • Added Azoth Autoidler plugin for automatic change of status due to inactivity period.
  • Added Aggregator BodyFetch plugin for automatic fetching of full news bodies.
  • Implemented rich text formatting support in Azoth with the ability to format outgoing messages as well.
  • Added support for XHTML-IM to Azoth Xoox.
  • Added support for publishing geolocation information to Azoth.
  • Azoth Xoox now also supports Geolocation.
  • Azoth now exposes options to add MUC participants to the contact list if their ID is known.
  • Improved rendering of history in Azoth ChatHistory, with saner nicks, for example.
  • Azoth now allows to set pre-nick and post-nick strings to be used when displaying nicks in chats.
  • fb2 export dialog in Aggregator now allows to set custom book name and genres.
  • Fixed generation of exported fb2 documents in Aggregator.
  • Updated Hunspell implementation in Azoth Rosenthal which hopefully would fix segfaults with some dictionaries.
  • Fixed segfault in LeechCraft Core when disabling Azoth but leaving plugins for it enabled.
  • Lots of bugfixes in Azoth ChatHistory, p100q, and such.

We've also renamed the libplugininterface support library and corresponding header files to liblcutil to better reflect the purpose of that library.

And, well, we've finally introduced the "Prioritized handlers" concept, but it isn't much used yet, so we'll write about it when it'd be used more.

This digest was written with 0.4.80-248-gd746dae as HEAD.

Syndicate content