]> kaliko git repositories - mpd-sima.git/commitdiff
Use duration instead of time in Track objects (closes #37)
authorkaliko <kaliko@azylum.org>
Mon, 19 Apr 2021 15:17:13 +0000 (17:17 +0200)
committerkaliko <kaliko@azylum.org>
Mon, 19 Apr 2021 15:17:13 +0000 (17:17 +0200)
doc/Changelog
sima/lib/track.py
tests/test_track.py

index 0180c8f3e5f0af65d848688855c6757631ed7c34..9a3851407db5af83fce6424afb680559fa1d710c 100644 (file)
@@ -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)
  * 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 <kaliko@azylum.org>  UNRELEASED
 
 
  -- kaliko <kaliko@azylum.org>  UNRELEASED
 
index 329392c93746c8098cfe6b6fb99b8e63ac59c5a3..846abce0f76ba4da1347573009f320afcc0cee47 100644 (file)
@@ -31,19 +31,19 @@ class Track:
     Instantiate with Player replies.
 
     :param str file: media file, defaults to ``None``
     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``
     """
 
     :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.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)
         if not kwargs:
             self._empty = True
         self.__dict__.update(**kwargs)
@@ -84,13 +84,13 @@ class Track:
                 )
 
     def __int__(self):
                 )
 
     def __int__(self):
-        return self.time
+        return int(self.duration)
 
     def __add__(self, other):
 
     def __add__(self, other):
-        return Track(time=self.time + other.time)
+        return Track(duration=self.duration + other.duration)
 
     def __sub__(self, other):
 
     def __sub__(self, other):
-        return Track(time=self.time - other.time)
+        return Track(duration=self.duration - other.duration)
 
     def __hash__(self):
         if self.file:
 
     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
 
         """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):
     @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:
         if temps.tm_hour:
             fmt = '%H:%M:%S'
         else:
index 438233c5b26ac9f88b56708ae81dda3619fdda11..61d98cb5daaf4661a11dc221bfa1b753c8fb8607 100644 (file)
@@ -18,6 +18,7 @@ DEVOLT = {
   'musicbrainz_artistid': 'd8e7e3e2-49ab-4f7c-b148-fc946d521f99',
   'musicbrainz_trackid': 'fabf8fc9-2ae5-49c9-8214-a839c958d872',
   'time': '220',
   'musicbrainz_artistid': 'd8e7e3e2-49ab-4f7c-b148-fc946d521f99',
   'musicbrainz_trackid': 'fabf8fc9-2ae5-49c9-8214-a839c958d872',
   'time': '220',
+  'duration': '220.000',
   'title': 'Crazy',
   'track': '3/6'}
 
   'title': 'Crazy',
   'track': '3/6'}