Changed mark_consumed to a flexible mark() function that currently allows to mark songs as consumed (that have been played full time), played (that have been played for some time) and unplayable
This commit is contained in:
parent
2c83225a1e
commit
ab85dd9d62
@ -148,7 +148,7 @@ class PlaybackController(object):
|
|||||||
else:
|
else:
|
||||||
self.stop(clear_current_track=True)
|
self.stop(clear_current_track=True)
|
||||||
|
|
||||||
self.core.tracklist.mark_consumed(tlid=original_tl_track.tlid)
|
self.core.tracklist.mark("consumed", original_tl_track)
|
||||||
|
|
||||||
def on_tracklist_change(self):
|
def on_tracklist_change(self):
|
||||||
"""
|
"""
|
||||||
@ -213,16 +213,14 @@ class PlaybackController(object):
|
|||||||
backend = self._get_backend()
|
backend = self._get_backend()
|
||||||
if not backend or not backend.playback.play(tl_track.track).get():
|
if not backend or not backend.playback.play(tl_track.track).get():
|
||||||
logger.warning('Track is not playable: %s', tl_track.track.uri)
|
logger.warning('Track is not playable: %s', tl_track.track.uri)
|
||||||
if self.core.tracklist.random and self.core.tracklist._shuffled:
|
self.core.tracklist.mark("unplayable", tl_track)
|
||||||
self.core.tracklist._shuffled.remove(tl_track)
|
|
||||||
if on_error_step == 1:
|
if on_error_step == 1:
|
||||||
self.next()
|
self.next()
|
||||||
elif on_error_step == -1:
|
elif on_error_step == -1:
|
||||||
self.previous()
|
self.previous()
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.core.tracklist.random and self.current_tl_track in self.core.tracklist._shuffled:
|
self.core.tracklist.mark("played", tl_track)
|
||||||
self.core.tracklist._shuffled.remove(self.current_tl_track)
|
|
||||||
|
|
||||||
self._trigger_track_playback_started()
|
self._trigger_track_playback_started()
|
||||||
|
|
||||||
|
|||||||
@ -434,18 +434,25 @@ class TracklistController(object):
|
|||||||
"""
|
"""
|
||||||
return self._tl_tracks[start:end]
|
return self._tl_tracks[start:end]
|
||||||
|
|
||||||
def mark_consumed(self, **kwargs):
|
def mark(self, what, tl_track):
|
||||||
"""
|
"""
|
||||||
Marks the given track as played.
|
Marks the given track as specified.
|
||||||
|
|
||||||
:param tl_track: Track to mark
|
:param tl_track: Track to mark
|
||||||
:type tl_track: :class:`mopidy.models.TlTrack`
|
:type tl_track: :class:`mopidy.models.TlTrack`
|
||||||
:rtype: True if the track was actually removed from the tracklist
|
:rtype: True if the track was actually removed from the tracklist
|
||||||
"""
|
"""
|
||||||
if not self.consume:
|
if what == "consumed":
|
||||||
return False
|
if not self.consume:
|
||||||
self.remove(**kwargs)
|
return False
|
||||||
return True
|
self.remove(tlid=tl_track.tlid)
|
||||||
|
return True
|
||||||
|
elif what == "played":
|
||||||
|
if self.random and tl_track in self._shuffled:
|
||||||
|
self._shuffled.remove(tl_track)
|
||||||
|
elif what == "unplayable":
|
||||||
|
if self.random and self._shuffled:
|
||||||
|
self._shuffled.remove(tl_track)
|
||||||
|
|
||||||
def _trigger_tracklist_changed(self):
|
def _trigger_tracklist_changed(self):
|
||||||
self._first_shuffle = True
|
self._first_shuffle = True
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user