Skip to main content

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.

Development digest #25

Posted in

Since the 0.5.70 release, we've added the Lads plugin, which provides some basic integration facilities with Unity, like displaying LeechCraft menu in Unity's Launcher.

Except that plugin, we mostly worked on LMP, and had some fixes in other plugins. So here are some changes:

  • Azoth: updated contact list delegate.
  • Azoth: highlighting groups is now optional.
  • Azoth Xoox: always show JID in the vCard.
  • GMailNotifier: if the username isn't set, the error is shown only once.
  • Kinotify: support for X11 systems fullscreen detection.
  • LastFMScrobble: support for requesting recommended artists.
  • LastFMScrobble: support for Last.FM radios.
  • LastFMScrobble: support for requesting recent releases in user's library.
  • LastFMScrobble: some scrobbling queue fixes.
  • LastFMScrobble: fetch artists biography.
  • LMP: support radio sources & allow one to play radio streams.
  • LMP: display personal recommendations for the user.
  • LMP: display recent releases for user's musical taste.
  • LMP: display biography of the currently playing artist.
  • LMP: configurable transition time between tracks.
  • LMP: current item is saved between playlist modifications.
  • LMP: album art can be viewed in full size in some places.
  • LMP: support undo/redo in playlist.
  • LMP: notify when local collection is updated.
  • LMP: on-start directory iteration is async now.
  • LMP: many library scanning fixes.
  • LMP: album time is properly reduced on items removal.
  • Poshuku CleanWeb: fixed a segfault on premature frame destruction.
  • Sidebar: LeechCraft menu is shown here now.
  • TabSessManager: don't add empty tabs to the unclose list.
  • TabSessManager: delayed session saving.

LeechCraft 0.5.70 is released

Posted in

Today LeechCraft 0.5.70 «Hessian Blade» is released!

The most significant change since the previous release is the all-new rewritten LMP media player, which specializes on audio and is collection-oriented. For now quite basic functions are implemented, present in most other players, like, well, local collection, static and dynamic playlists (like "50 random tracks"), support for external playlists in pls, xspf and m3u8 formats, and different playback modes, like sequential, shuffled and track/album/playlist repeat.
With modules like LastFMScrobble LMP supports scrobbling listened tracks to Last.FM (and possibly other similar services), fetching missing album covers and requests for similar artists. It also can use search modules to automatically fetch lyrics for currently playing song.

Some screenshots of LMP:


Similar artistsSimilar artists


Tray iconTray icon

The following is planned in the nearest future:

  • Support for hardware (USB-pluggable) players and synchronization with them.
  • Support for audio streams and things like Last.FM radio.
  • Integration with our RSS feed reader, Aggregator, for full support for podcasts.
  • Fetching of personalized recommendations from Last.FM and similar services.
  • Automatic fetching of tabulatures.
  • Tags editor.

Some help would be needed for implementing support for hardware players, from platform-dependend things to testing different devices.

Among other changes the following can be noted:

  • Core: "back"/"forward" mouse buttons make tabs switching.
  • In the AdvancedNotifications module, responsible for rule-based advanced notifications, QML template and a couple of memory leaks were fixed.
  • In our modular IM client Azoth:
    • added support for /kick and /ban commands,
    • smiles aren't replaced anymore in the middle of the words;
    • added support for hiding and disabling accounts.
  • Azoth Autopaste module which automatically pastes long texts to pastebins was migrated to the service due to's death.
  • Azoth p100q which adds support for the microblogging service is now more compatible with Adium themes.
  • Azoth Xoox, our XMPP protocol implementation, now supports adding, editing and removing phones and emails, and some MUC reconnection issues were fixed.
  • Azoth Vader module, the Mail.Ru Agent protocol implementation, now supports assigning phone numbers to contacts, and some problems with authorization handling were fixed.
  • Visual notifications provider Kinotify now doesn't show notifications if a fullscreen application is active. This helps to distract the user less if he's playing a game or watching a movie. For now it works only on Win32, and Xlib contributions are welcome!

More information about other changes is available in corresponding development digests: #23 and #24.

Packages and builds for supported distros and OSes will be available soon. Watch your package manager or our download page!

As always, feature requests and bug reports are welcome, and we will be happy to get any help — from code (like hardware players support) to translations and artwork!

Development digest #24

Posted in

Last two weeks were mostly dedicated to the LMP media player and everything that's around it. Some other plugins also got their fair share of improvements, so let's just move to the changes list:

  • Core: fixed a rare bug preventing to edit shortcuts.
  • Overall: changed tabs system to delegate tabs recovering to modules like TabSessManager.
  • Azoth: properly handle removal of styles.
  • Azoth: don't replace smiles in the middle of words.
  • Azoth: support showing/hiding accounts.
  • Azoth Rosenthal: get rid of bundled Hunspell, use system's one instead.
  • Azoth Vader: support assigning phones to contacts.
  • Azoth Vader: protocol logging is now optional.
  • Azoth Vader: removed excessive auth requests.
  • Azoth Vader: fixed a rare segfault on giving authentication.
  • Azoth Vader: better buddy handling on authentication operations.
  • Azoth Xoox: enable to add/edit/remove phones and emails in VCards.
  • BitTorrent: show more information in Summary like uploading speed and number of seeders/leechers.
  • DeadLyrics: rewritten to provide texts to LMP using Amarok descriptions.
  • Kinotify: disable notifications on fullscreen apps so that user isn't distracted if he plays a fullscreen game or watches a movie (Win32 only yet).
  • LMP: support requesting lyrics.
  • LMP: manipulate collection via the FS tree.
  • LMP: allow one to stop after a given track.
  • LMP: automatically request album art for collection.
  • LMP: added system tray icon.
  • LMP: save last played song and play mode.
  • LMP: support for Drag-n-Drop here or there.
  • LMP: support for XSPF and PLS playlists.
  • LMP: support rescanning collection.
  • LMP: fixed issues with TagLib reentrancy.

Development digest #23

Posted in

We have a new major plugin since the 0.5.65 release: the all-new rewritten LMP! It's now a music-only player, still Phonon-based though. It is inspired by players like Amarok and Clementine, and is built around collections. For now, it has only basic functionality like playback, playlists, collection, basic scrobbling to services like Last.FM and a couple of others.

Directory and clipboard watching was moved out of the Core to a separate new plugin, Nacheku, so make sure to install it if you feel like missing this functionality.

But there are some other changes as well, for example:

  • Core: handle back/forward mouse buttons on tabs and scroll the tabs accordingly.
  • Core: always bring to front the main window on tray icon click.
  • AdvancedNotifications: fixed QML file for the notification.
  • AdvancedNotifications: fixed leaking of some objects and views.
  • Azoth: don't suggest already existing items in RIEX.
  • Azoth: handle /kick and /ban commands.
  • Azoth: fixed avatars cropping.
  • Azoth: fixed a rare segfault in search.
  • Azoth Autopaste: migrate to since is dead.
  • Azoth p100q: working addition and configuration buttons.
  • Azoth p100q: fixed compatibility with some Adium themes.
  • Azoth Xoox: stubs for microblogging support according to XEP-0277.
  • Azoth Xoox: proper conferences rejoining.
  • Azoth Xoox: rejoin to conferences on disconnect.
  • Azoth Xoox: updated VK icon.
  • LastFMScrobble: scrobbler now obeys official guidelines.
  • LastFMScrobble: save scrobbling queue between runs.
  • LastFMScrobble: support requesting similar artists.
  • LastFMScrobble: support searching for album arts.
  • LastFMScrobble: support marking tracks as loved.
  • LastFMScrobble: handle auth errors.
  • Poshuku: handle back/forward mouse buttons.