# -*- coding: utf-8 -*-
-# Copyright (c) 2009, 2010, 2011, 2013 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2009, 2010, 2011, 2013, 2014 Jack Kaliko <kaliko@azylum.org>
# Copyright (c) 2009 J. Alexander Treuman (Tag collapse method)
# Copyright (c) 2008 Rick van Hattem
#
import time
+from .meta import Artist
-class Track(object):
+class Track:
"""
Track object.
Instanciate with Player replies.
def __init__(self, file=None, time=0, pos=-1, **kwargs):
self.title = self.artist = self.album = self.albumartist = ''
+ self.musicbrainz_artistid = self.musicbrainz_albumartistid = None
self.pos = int(pos)
self._empty = False
self._file = file
if not kwargs:
self._empty = True
- self.time = time
+ self._time = time
self.__dict__.update(**kwargs)
self.tags_to_collapse = ['artist', 'album', 'title', 'date',
- 'genre', 'albumartist']
+ 'genre', 'albumartist',
+ 'musicbrainz_artistid',
+ 'musicbrainz_albumartistid']
# have tags been collapsed?
- self.collapse_tags_bool = False
self.collapsed_tags = list()
# Needed for multiple tags which returns a list instead of a string
self.collapse_tags()
if tag not in self.tags_to_collapse:
continue
if isinstance(value, list):
- self.collapse_tags_bool = True
self.collapsed_tags.append(tag)
self.__dict__.update({tag: ', '.join(set(value))})
fmt = '%M:%S'
return time.strftime(fmt, temps)
-
-def main():
- pass
-
-# Script starts here
-if __name__ == '__main__':
- main()
+ def get_artist(self):
+ """Get artist object from track"""
+ name = self.artist
+ mbid = self.musicbrainz_artistid
+ if self.albumartist and self.albumartist != 'Various Artists':
+ name = self.albumartist.split(', ')[0]
+ if (self.musicbrainz_albumartistid and
+ self.musicbrainz_albumartistid != '89ad4ac3-39f7-470e-963a-56509c546377'):
+ mbid = self.musicbrainz_albumartistid.split(', ')[0]
+ return Artist(name=name, mbid=mbid)
# VIM MODLINE
# vim: ai ts=4 sw=4 sts=4 expandtab