Commit Graph

3266 Commits

Author SHA1 Message Date
Thomas Adamcik
b3eef8f08d Merge pull request #261 from jodal/feature/cache-models
spotify: Reuse artist, album, and track models
2012-11-25 07:52:28 -08:00
Stein Magnus Jodal
6403e3e3d1 spotify: Reuse artist, album, and track models
This adds a module-level cache of artist, album, and track models, whose
content is almost entirely static. This cache is used when we convert from
pyspotify to Mopidy objects.

Previously, an album with 15 tracks would create 15 track objects, 15 artists
objects on the tracks, 15 album objects on the tracks, and 15 artist objects on
the 15 album objects, in total 60 objects. With this change, we only create 15
track objects, 1 album object, and 1 artist object, in total 17 objects.

Measurements with 90 playlists containing about 6500 tracks in total shows that
this reduces the number of Artist objects from 13600 to 3800, and the number of
Album objects from 6500 to 4500 objects.

An unscientific measurement of memory usage using ps(1) indicated a reduction
in RSS from 71MB to 65MB, measured right after the Spotify playlists was loaded
the first time.
2012-11-23 12:48:41 +01:00
Stein Magnus Jodal
ec639d17ae docs: Unbreak build 2012-11-23 12:47:57 +01:00
Stein Magnus Jodal
b71b0751b8 Merge remote-tracking branch 'cjohansen/patch-2' into develop
Conflicts:
	docs/installation/index.rst
2012-11-23 01:19:32 +01:00
Christian Johansen
c53f6838a6 Un-"fix" Ubuntu typo 2012-11-23 00:54:38 +01:00
Christian Johansen
18b5496aff Typo! python-pip is actually pip-python
Mass confusion: The package is called python-pip, the binary is pip-python
2012-11-23 00:46:05 +01:00
Stein Magnus Jodal
42c7db0018 Merge pull request #259 from cjohansen/patch-1
Add installation instructions for Fedora
2012-11-22 15:41:56 -08:00
Christian Johansen
622b98502c Add installation instructions for Fedora 2012-11-23 00:38:36 +01:00
Stein Magnus Jodal
d153fa6b59 Remove rogue commas making tuples of my strings 2012-11-21 10:42:33 +01:00
Stein Magnus Jodal
6cb2d6293d Improve fix for #256
- Forgot to decode result from glib.get_user_config_dir()
- glib.USER_DIRECTORY_MUSIC isn't always defined
2012-11-21 10:30:06 +01:00
Stein Magnus Jodal
26e6b2e730 Fix crash when XDG variables contain non-ASCII characters (fixes #256) 2012-11-21 10:20:08 +01:00
Stein Magnus Jodal
33e268c79b docs: Create changelog for v0.10 2012-11-21 10:17:25 +01:00
Stein Magnus Jodal
5a463cfef9 Release v0.9.0 2012-11-21 01:43:46 +01:00
Stein Magnus Jodal
a5d222dee3 Update changelog for v0.9.0 2012-11-21 01:43:16 +01:00
Stein Magnus Jodal
88eef7de49 Bump version number to 0.9.0 2012-11-21 01:42:51 +01:00
Stein Magnus Jodal
bb32ff6b6b mpd: Don't use the \S regexp group 2012-11-21 01:35:21 +01:00
Stein Magnus Jodal
ab906c5684 Revert "mpd: Change to interpret regexp groups with the old locale semantics"
This reverts commit 50708f9fd7.
2012-11-21 01:34:49 +01:00
Stein Magnus Jodal
50708f9fd7 mpd: Change to interpret regexp groups with the old locale semantics 2012-11-21 01:30:07 +01:00
Stein Magnus Jodal
3af3eb5127 mpd: Make 'decoders' return an empty response to please ncmpcpp 2012-11-21 01:29:14 +01:00
Stein Magnus Jodal
512b95fdb0 docs: Update changelog with MPD search/find change 2012-11-21 01:18:19 +01:00
Stein Magnus Jodal
0bc8fc6bf1 mpd: Interpret regexp groups with unicode semantics
Compiling the regexpes with either re.UNICODE or re.LOCALE both seems to fix
the mystical failure of test_listplaylistinfo.
2012-11-21 01:14:12 +01:00
Stein Magnus Jodal
09d7279b6b mpd: Compile protocol matching regexpes
This caused a single test failure, which was fixed.
2012-11-21 01:13:05 +01:00
Stein Magnus Jodal
39b9429dfc tests: Use track URIs matching the backend in use 2012-11-21 01:04:11 +01:00
Stein Magnus Jodal
dc24876f66 mpd: Allow bad 'search' requests 2012-11-21 00:49:11 +01:00
Stein Magnus Jodal
5fbb6328d6 mpd: list shouldn't return blank artist names, album names, or dates 2012-11-21 00:48:08 +01:00
Stein Magnus Jodal
72574c1ae0 mpd: listplaylists should not return playlists without a name 2012-11-21 00:32:46 +01:00
Stein Magnus Jodal
f313d9d446 spotify: Ignore playlists without a name 2012-11-21 00:23:10 +01:00
Stein Magnus Jodal
02345beb0e docs: Add major docs changes to the changelog 2012-11-20 23:57:06 +01:00
Stein Magnus Jodal
174d38b790 docs: Clean changelog for v0.9 2012-11-20 23:34:21 +01:00
Thomas Adamcik
4d908b5bf2 Merge pull request #254 from jodal/feature/playback-options-cleanup
core: Add getters/setters for consume/random/repeat/single
2012-11-20 13:49:58 -08:00
Thomas Adamcik
87fea9e12b Merge pull request #253 from jodal/feature/tracklist-cleanup
core: Tracklist cleanup
2012-11-20 13:46:47 -08:00
Stein Magnus Jodal
8f1b98b306 core: Don't fail when adding tracks after end of tracklist 2012-11-20 22:36:39 +01:00
Stein Magnus Jodal
acbde530c2 core: Add getters/setters for consume/random/repeat/single
Also, the properties and methods was sorted alphabetically. The `state` and
`time_position` properties were out of order.
2012-11-20 22:23:48 +01:00
Stein Magnus Jodal
ae9a257091 Make tracklist.add() only take and return lists 2012-11-20 22:12:09 +01:00
Stein Magnus Jodal
3dc1586213 core: Remove tracklist.append() 2012-11-20 21:55:51 +01:00
Stein Magnus Jodal
1ed56c9ed7 Use tracklist.add() instead of tracklist.append() 2012-11-20 21:55:51 +01:00
Stein Magnus Jodal
70dbf81191 mpd: Simplify 'addid' implementation using improved tracklist.add() 2012-11-20 21:55:51 +01:00
Stein Magnus Jodal
efe7247407 core: Merge functionality of tracklist.append into tracklist.add 2012-11-20 21:55:51 +01:00
Thomas Adamcik
52d643ed51 Merge pull request #252 from jodal/feature/playback-cleanup
core: Playback cleanup
2012-11-20 12:54:46 -08:00
Stein Magnus Jodal
d107b13fcb core: Remove playback.current_tlid 2012-11-20 21:48:19 +01:00
Stein Magnus Jodal
2f27167677 core: Remove playback.track_at_previous 2012-11-20 21:48:03 +01:00
Stein Magnus Jodal
4c19321500 core: Remove playback.track_at_eot 2012-11-20 21:48:03 +01:00
Stein Magnus Jodal
70d4dba7aa core: Remove playback.track_at_next 2012-11-20 21:47:44 +01:00
Thomas Adamcik
81466c0ab9 Merge pull request #251 from jodal/feature/core-getters-and-setters
core: Expose getters/setters for all properties
2012-11-20 12:36:50 -08:00
Stein Magnus Jodal
fd49faeed3 spotify: Fix resume which was broken by fix for #227 2012-11-20 15:11:29 +01:00
Stein Magnus Jodal
16518697c8 spotify: Only pause on connection error if playing
Spotify has availability issues today, which makes this easy to reproduce and
improve. Before this patch, the following was logged on a Spotify connection
error when not playing:

ERROR    Spotify connection error: Can not connect to Spotify
WARNING  Setting GStreamer state to GST_STATE_PAUSED failed
ERROR    Resource not found. gstplaybin2.c(3824): setup_next_source ():
/GstPlayBin2:playbin20

With this patch, only the first and relevant error message is logged.
2012-11-20 15:08:17 +01:00
Stein Magnus Jodal
e87f6f70b1 docs: Add Spotify proxy support to changelog 2012-11-20 14:30:41 +01:00
Stein Magnus Jodal
4b62720371 settings: Tweak docstrings 2012-11-20 14:30:25 +01:00
Stein Magnus Jodal
6db50c4306 Merge pull request #248 from Dvad/develop
spotify: Add proxy support
2012-11-20 05:27:08 -08:00
Stein Magnus Jodal
f8bd291d5f spotify: Require pyspotify 1.9 2012-11-20 14:26:06 +01:00