Skip to content
fxh32 edited this page Nov 15, 2011 · 1 revision

Goals

The primary goals of v0.2 were to provide improvements and amenities to the user interface to make using Partify less work and more fun, as well as fixing various high-priority bugs throughout the project.

Features Implemented

  • (#18) Ordering of Search Results - When search results are returned from Mopidy, Partify attempts to order them by a rough 'relevance score' - that is, results that match the search terms exactly are returned first. Results are also grouped by album and artist, making search easier to sift through when exact terms aren't known.

  • (#19) Player State Consistency - Partify now ensures that Mopidy's options are in the desired state every time it receives an update. While Partify is designed to be used in an environment where it is the only client to a Mopidy server, these checks will help to smooth out any abnormal conditions that might arise, as well as ensuring that consume mode, which is needed to provide functional queueing, is always on.

  • (#35) Sort Search Fields - Search fields (artist, album, title, etc.) are now sortable in the search results view.

  • (#38) Top-Bar - Added a 'top-bar' to the top of every logged-in Partify page. The top-bar shows the current user, the current user's avatar, and a link to logout.

  • (#39) Avatars - Added minimal support for user avatars. Users cannot upload their own avatars at this time, but avatars are provided via the excellent robohash.org project, using simply the user's username as the hash. Gravatar support may eventually be added.

  • (#40) Track-Player Use Information - Added minimal user information (display name, avatar) to the now-playing track information so users can see who caused the currently playing track to be queued.

  • (#41) Voluntary Track Skip - Provided a way for users to voluntarily have their track skipped while it is playing. Only the user who queued the current track can cause that track to be skipped.

  • (#47) Now-Playing Artist Image - Enabled support for Last.fm in the client to be able to pull down images of the artist playing the current track.

  • (#48) Added server technology: Tornado - Added support for the Tornado project as a server that can be used with Partify. Using a production-ready web server is important because the built-in web server included with Flask is good for debugging but not for heavy-duty serving. Tornado is pure python and easy to drop in. http://www.tornadoweb.org/

Bugs Fixed

  • (#28) Hide User's Currently Playing Track - If the first track in a user's play queue is the track that's currently playing, hide it. This is important because we don't want the user to rearrange the currently playing track and mess up the global play queue/Mopidy.

  • (#29) Don't rely on server-side timing information for lag correction - As it turns out, using server-side timing information to correct for the lag between the server and the client is a Bad Thing, because there is no guarantee that the server's clock is in sync with the clients. This can lead to some very funky behaviour and is best avoided for right now - it would be more accurate to make estimates.

  • (#32) Make sure last-update time is a float - In some cases the last-update time for the playlist update checking could be rounded off to an int, losing a little precision, especially when lots of playlist changes occurred very close in time. This cleaned up some of these instances and tried to make sure that the float-precision of update times is retained.

  • (#42) Logout Link - Prior to this bug fix, there was no logout link anywhere in the project! This has been fixed.

  • (#44) Empty Queue Styling - When a queue (user or global) was empty, the styling was very poor and quite ugly. This has been rectified.

  • (#46) Fix Link Styling - Prior to this fix, each link in the project would end up being styled with it's endpoint URL trailing the link text. This was due to an error with the way a Blueprint file was imported, and was rectified.

  • (#50) Top-Bar Width Restriction - The topbar was at one point restricting the width of its user content display unnecessarily. This was fixed by floating right instead of left.

  • (#52) Fix Crash in Playlist Update Listener - Forgetting to check for a None value was causing a crash in the playlist update listener.

  • (#53) Smooth Out Elapsed Time Display - After fixing #29, a good smoothing for the elapsed time was needed to estimate the lag from the server and provide at least an illusion of a smooth elapsed progress timer, even if it is slightly off.

Clone this wiki locally