From 6052b321d0ac422af68da0732a5814394291e83b Mon Sep 17 00:00:00 2001 From: kaliko Date: Mon, 19 Apr 2021 17:17:13 +0200 Subject: [PATCH] Use duration instead of time in Track objects (closes #37) --- doc/Changelog | 1 + sima/lib/track.py | 26 ++++++++------------------ tests/test_track.py | 1 + 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 0180c8f..9a38514 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,7 @@ MPD_sima v0.16.2.dev0 * Fixed issue with un-tagged titles (closes #40) * Fixed "artist with quotes not found" (closes #41) * Fixed bad pid in Uniq core plugin (closes #32) + * Use duration instead of time in Track objects (closes #37) -- kaliko UNRELEASED diff --git a/sima/lib/track.py b/sima/lib/track.py index 329392c..846abce 100644 --- a/sima/lib/track.py +++ b/sima/lib/track.py @@ -31,19 +31,19 @@ class Track: Instantiate with Player replies. :param str file: media file, defaults to ``None`` - :param int time: duration in second, defaults to 0 + :param int duration: duration in second, defaults to 0 :param int pos: position in queue, defaults to -1 :param str title|artist|album: defaults to "" :param str musicbrainz_artistid|musicbrainz_albumartistid: MusicBrainz IDs, defaults to ``None`` """ - def __init__(self, file=None, time=0, pos=-1, **kwargs): + def __init__(self, file=None, duration=0, pos=-1, **kwargs): self.title = self.artist = self.album = self.albumartist = '' self.musicbrainz_artistid = self.musicbrainz_albumartistid = None self.pos = int(pos) self._file = file self._empty = False - self._time = time + self.duration = float(duration) if not kwargs: self._empty = True self.__dict__.update(**kwargs) @@ -84,13 +84,13 @@ class Track: ) def __int__(self): - return self.time + return int(self.duration) def __add__(self, other): - return Track(time=self.time + other.time) + return Track(duration=self.duration + other.duration) def __sub__(self, other): - return Track(time=self.time - other.time) + return Track(duration=self.duration - other.duration) def __hash__(self): if self.file: @@ -113,20 +113,10 @@ class Track: """file is an immutable attribute that's used for the hash method""" return self._file - def get_time(self): - """get time property""" - return self._time - - def set_time(self, value): - """set time property""" - self._time = int(value) - - time = property(get_time, set_time, doc='song duration in seconds (use :attr:`length` for human readable time)') - @property def length(self): - """Get a fancy duration as ``%H:%M:%S`` (use :attr:`time` to get duration in second only)""" - temps = time.gmtime(int(self.time)) #TODO: returns a date not a duration + """Get a fancy duration as ``%H:%M:%S`` (use :attr:`duration` to get duration in second only)""" + temps = time.gmtime(self.duration) #TODO: returns a date not a duration if temps.tm_hour: fmt = '%H:%M:%S' else: diff --git a/tests/test_track.py b/tests/test_track.py index 438233c..61d98cb 100644 --- a/tests/test_track.py +++ b/tests/test_track.py @@ -18,6 +18,7 @@ DEVOLT = { 'musicbrainz_artistid': 'd8e7e3e2-49ab-4f7c-b148-fc946d521f99', 'musicbrainz_trackid': 'fabf8fc9-2ae5-49c9-8214-a839c958d872', 'time': '220', + 'duration': '220.000', 'title': 'Crazy', 'track': '3/6'} -- 2.39.5