Skip to main content


Development digest #29

Posted in

Since the last development digest we've did a bunch of improvements here or there, and added a couple of new plugins.

The most exciting improvement is that NetStoreManager now supports Google Drive service, and its core was reworked so that now it can easily support other similar cloud storage services like Yandex.Disk. For now only uploading and fetching the list of already uploaded files works. Since the original Yandex.Narod doesn't fit the new idea of NetStoreManager, its support will be removed after this milestone.

The other important module adds support for the service in LMP. Only playlists, transcoding and uploading works, but this module (and corresponding changes in LMP core) lay foundation for other services like Google Music.

The third added plugin is not that exciting, but has been requested quite a lot: it's a birthday notifier module for our Azoth IM client. It takes information about birthdays from contacts' vCards, and one can also configure the desired days on which to notify.

Среди прочих изменений:

  • Core: fallback to using external apps is now optional.
  • Core: fixed showing main window in some WMs.
  • Azoth: autoselect other resources only when a chat message is recieved.
  • Azoth: tooltip is updated on avatar changes.
  • Azoth: added default queries in Service Discovery.
  • Azoth: MUC icon is preserved on MUC tabs on account state change.
  • Azoth: MUCs with unread highlight messages are marked with "*" now.
  • Azoth: more compatibility with full Unicode JIDs.
  • Azoth: fixed a couple of bookmarks-related memory leaks.
  • Azoth ChatHistory: dates with logs for that day are displayed in bold.
  • Azoth ChatHistory: configurable amount of logs to show on one page.
  • Azoth Xoox: synced QXmpp with upstream.
  • Azoth Xoox: added icon for odnoklassniki.
  • Azoth Xoox: birthday field is now editable for self vcards.
  • Azoth Xtazy: added /np and /sharesong commands.
  • BitTorrent: optional flags for peers' countries.
  • Glance: nice Close button right on thumbnails.
  • LMP: support different sorting styles in the playlist.
  • LMP: support Drag'n'Drop and actions for reordering items in the playlist.
  • LMP: all found lyrics can be displayed, not the last found one.
  • LMP: faster prescaler for huge album arts in notifications.
  • LMP: fixed compatibility with taglib built without ASF or MP4.
  • NetStoreManager: other plugins can request uploads now.

Development digest #28

Posted in

Once again, last couple of weeks we mostly worked on LMP, or nice media player. What's also important, we've added some compatibility fixes, so BitTorrent can be built with Boost 1.50 now, and LastFMScrobble can be built with fresh liblastfm-1.0.

Adding support for liblastfm-1.0 revealed that a bunch of changes in it were like renaming a function here or a function there, and it's not clear why upstream did this in the first place: these changes bring no fixes, no new features, no improvements.

Also, small, but nice news is that Azoth now supports displaying avatars in tooltips, like this:

And here's the list of other important changes:

  • Aggregator: support exporting feeds to PDF.
  • Azoth: fixed a segfault when Ctrl+Clicking.
  • Dolozhee: fetch the list of issue categories and assign issues to them.
  • LastFMScrobble: expose some predefined radio stations like neighbour radio or loved tracks.
  • LMP: support adding artists to wishlists to plugins like Otlozhu.
  • LMP: support predefined radio stations from radio plugins.
  • LMP: playlist stats below the playlist.
  • LMP: configurable shortcuts.
  • LMP: close the Album Art display on Esc or mouse click.
  • LMP: added an option to ignore "The " when sorting artists (this way The Autumn Offering will be between August Burns Red and Behold... The Arctopus).
  • LMP: URLs are displayed in playlist instead of just the string "URL".
  • LMP: fixed background in QMLs.
  • LMP: more file types are now supported.
  • Otlozhu: support adding tasks from other plugins.
  • Vrooby: fixed a segfault on startup on some systems.

LeechCraft 0.5.75 is released

Posted in

Today LeechCraft 0.5.75 "This Glorious Nightmare" is released!

Just like in the previous release, we mostly focused on LMP module, which is our collection-oriented music player.

For example, it now supports music collection uploading to portable media players. Files can also be set to converted from lossless formats like FLACs to lossy but much smaller ones (in terms of file size) like Ogg Vorbis. One can also select the desired directory layout and file naming when uploading files. The transcoder is highly parallel: in fact, it can encode as much media files as you have CPU cores, so it makes sense to upload music in big batches. It's also run with minimum possible priority, so one can just continue to do your work while the media files are being converted. All this stuff looks like this:

Uploading progressUploading progress
Transcoding optionsTranscoding options

For now only those media players are supported that don't require any special MTP or i-device-related protocols, but support for the latter ones is planned. By the way we will be glad to get your help here — from writing protocols support and synchronization modules to testing!

Among other significant new features in LMP:

  • Support for social radio stations like Last.FM radio.
  • Obtaining personalized recommendations, recent releases by artists in user's library and biography retrieval.
  • Support for MPRIS.

Implementing collection synchronization support required us to make yet one more plugin: Vrooby. Vrooby is responsible for working with the underlying platform/backend to obtain information about removable storage devices. Other plugins then may query it to know what devices are available and where they are mounted, for example. It also allows the user to mount and unmount them via LeechCraft UI:

Devices popupDevices popup

Several things were optimized a lot, thanks to the Intel VTune profiler being for non-commercial use (it's available in Gentoo's science overlay, BTW). Particularly, startup times were reduced a lot (especially if all the required libraries are already in disk cache), and some places like contact list drawing in Azoth, our IM client, were optimized.

We've also worked hard on a couple of new plugins, one of which is Monocle, a modular document reader. It would be officially announced next time in milestone 0.5.80, though, so stay tuned!

There was a bunch of minor fixes and enhancements in other plugins, so check out our development digests, where all this is listed in more detail: #25, #26 and #27. One can especially highlight two small but highly requested features:

  • First, a nickname can be inserted into current chat tab message edit by Ctrl+clicking it in the roster.
  • Second, Azoth ChatHistory module finally got a small calendar widget to select dates to view history for, and links in chat logs are now clickable.

Packages and builds for supported distros and OSes will be available soon. Watch your package manager or our download page! By the way, the source archive is already available.

Development digest #27

Posted in

We have some good news: finally LMP is able to upload tracks from local music collection to portable media players! For now it supports only basic media players for which no MTP or iPod-related stuff is required. Support for MTP players and i-devices will be added later.

Of course, transcoding is supported, so that you can automatically convert big FLAC files in your local collection to a smaller lossy format like Ogg Vorbis. Anyway, it hardly makes sense to keep these large FLACs on players with such limited memory and typically crappy sound.

For this to work, a new plugin has been introduced: meet Vrooby! It is LeechCraft's removable storage device manager, allowing the user to mount and unmount devices as well as aiding other plugins in working with such devices.

Poshuku WYFV plugin has been removed as obsolete and unsupported.

Among other changes:

  • Core: tab bar can be moved to the bottom.
  • Core: allow to disable resource caching via the new --no-resource-caching flag.
  • Core: lots of optimizations.
  • Core: fixed a possible segfault when there are no handlers for entity.
  • AdvancedNotifications: fixed QML notifier on some multimonitor systems.
  • Azoth: support inserting corresponding nicknames via clicking in the roster.
  • Azoth Herbicide: block authorization requests as well.
  • Azoth p100q: fixed recommending comments.
  • Azoth Xoox: action for modifying self vCard in account menu.
  • Azoth Xoox: fix for client connection handling, and a possible segfault.
  • LastFMScrobble: added support for liblastfm-1.0.
  • LMP: show full-scale album art when requested.
  • LMP: support copying properties from the properties display widget.
  • LMP: properly handle collections with unscannable items.
  • LMP: fixed a segfault on certain loaded plugins combinations.

Development digest #26

Posted in

This week we got a license for Intel VTune CPU profiler for non-commercial use, so some stuff was heavily optimized. For example, LeechCraft now starts much faster, especially if Azoth has a bunch of items in its contact list.

So, here's the changelog:

  • Core: added --list-plugins and --safe-mode options. The former just lists the plugins that LeechCraft has found, and the latter starts LeechCraft without any of them, allowing to disable those failing.
  • Core: added Select All and Select None buttons to the plugin manager.
  • AdvancedNotifications: added Urgent hint handler.
  • Azoth: message text is stored in tab info, so it's recovered as well.
  • Azoth: MUCs are rejoined on tab recovery.
  • Azoth: added an option to alias KP_Enter to Enter.
  • Azoth: even non-chat nicknames can be dragged now from contact list.
  • Azoth: multiple performance improvements.
  • Azoth AdiumStyles: support for SenderColors.txt.
  • Azoth ChatHistory: added a calendar for choosing dates.
  • Azoth ChatHistory: clickable links in History.
  • Azoth StandardStyles: added a bunch of standard styles by Pendruk.
  • Azoth Xoox: severely optimized load time, especially with big roster.
  • LastFMScrobble: allow the user to choose the language of the info.
  • Liznoo: hide the dialog after second click on its action.
  • LMP: added support for MPRIS.
  • LMP: directory iteration now optionally supports symlinks.
  • LMP: track properties for Now Playing, FS, Collection and playlist.
  • LMP: EnableScrobbling setting is now respected.
  • LMP: some scanning fixes, a couple of segfaults has been fixed too.
  • LMP: fixed compatibility with TagLib < 1.7.
  • LMP: fixed some segfaults.
  • Poshuku: removed tooltips generation.
  • Sidebar: support embeddind dock visibility actions.
  • TabSessManager: fixed Select All and Select None buttons.
  • TabSessManager: fixed tab close handling.
Syndicate content