# local import
from .lib.player import Player
from .lib.track import Track
-from .lib.album import Album
+from .lib.meta import Album
from .lib.simastr import SimaStr
return decorated
class PlayerClient(Player):
- """MPC Client
+ """MPD Client
From python-musicpd:
_fetch_nothing …
_fetch_item single str
_fetch_songs list of dict, especially tracks
_fetch_plugins,
TODO: handle exception in command not going through _client_wrapper() (ie.
- find_aa, remove…)
+ remove…)
"""
database = None # sima database (history, blaclist)
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-from .track import Track
-
-class MetaException(Exception):
- pass
-
-class Meta:
-
- def __init__(self, **kwargs):
- self.name = None
- self.mbid = None
- if 'name' not in kwargs:
- raise MetaException('need at least a "name" argument')
- self.__dict__.update(kwargs)
-
- def __repr__(self):
- fmt = '{0}(name="{1.name}", mbid="{1.mbid}")'
- return fmt.format(self.__class__.__name__, self)
-
- def __str__(self):
- return str(self.name)
-
- def __hash__(self):
- if self.mbid is not None:
- return hash(self.mbid)
- else:
- return id(self)
-
-
-class Album(Meta):
- __hash__ = Meta.__hash__
-
- def __init__(self, **kwargs):
- super().__init__(**kwargs)
-
- def __eq__(self, other):
- """
- Perform mbid equality test if present,
- else fallback on self.name equality
- """
- if hasattr(other, 'mbid'):
- if other.mbid and self.mbid:
- return self.mbid == other.mbid
- return str(self) == str(other)
-
- @property
- def album(self):
- return self.name
-
-# vim: ai ts=4 sw=4 sts=4 expandtab
return self.mbid == other.mbid
return SimaStr(str(self)) == SimaStr(str(other))
+ def __hash__(self):
+ if self.mbid is not None:
+ return hash(self.mbid)
+ else:
+ return id(self)
+
+
+class Album(Meta):
+ __hash__ = Meta.__hash__
+
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ def __eq__(self, other):
+ """
+ Perform mbid equality test if present,
+ else fallback on self.name equality
+ """
+ if hasattr(other, 'mbid'):
+ if other.mbid and self.mbid:
+ return self.mbid == other.mbid
+ return str(self) == str(other)
+
+ @property
+ def album(self):
+ return self.name
+
class Artist(Meta):