summaryrefslogtreecommitdiff
path: root/nephilim/clSong.py
diff options
context:
space:
mode:
authorAnton Khirnov <wyskas@gmail.com>2009-03-07 14:14:03 +0100
committerAnton Khirnov <wyskas@gmail.com>2009-03-07 14:14:03 +0100
commit2b72b4e8f8b00f9835e376b7a10bea78df5d93de (patch)
tree64c07b2cb790769ef5eb6b45b75beb11da48b8c8 /nephilim/clSong.py
parent011c8f43a9fa9a12c72535f5b719c713578f55e7 (diff)
clSong->song
Diffstat (limited to 'nephilim/clSong.py')
-rw-r--r--nephilim/clSong.py76
1 files changed, 0 insertions, 76 deletions
diff --git a/nephilim/clSong.py b/nephilim/clSong.py
deleted file mode 100644
index 3bd319c..0000000
--- a/nephilim/clSong.py
+++ /dev/null
@@ -1,76 +0,0 @@
-from PyQt4 import QtCore
-import os
-
-from misc import sec2min
-
-class Song:
- """The Song class offers an abstraction of a song."""
- _data = None
-
- def __init__(self, data):
- self._data = data
- if 'id' in self._data:
- self._data['id'] = int(self._data['id'])
- if 'track' in self._data:
- # make sure the track is a valid number!
- t=self._data['track']
- for i in xrange(len(t)):
- if ord(t[i])<ord('0') or ord(t[i])>ord('9'):
- try:
- self._data['track']=int(t[0:i])
- except TypeError:
- self._data['track']=-1
- break
- self._data['track']=int(self._data['track'])
-
- # ensure all string-values are utf-8 encoded
- for tag in self._data.keys():
- if isinstance(self._data[tag], str):
- self._data[tag] = self._data[tag].decode('utf-8')
- if 'time' in self._data:
- self._data['time'] = int(self._data['time'])
- self._data['timems'] = '%i:%i'%(self._data['time'] / 60, self._data['time'] % 60)
- self._data['length'] = sec2min(self._data['time'])
-
- def id(self):
- """Get the song's playlist ID. (-1 if not in playlist)."""
- return self.tag('id', -1)
-
- def title(self):
- """Get the song's title (or filename if it has no title)."""
- return self.tag('title', self._data['file'])
-
- def artist(self):
- """Get the song's artist."""
- return self.tag('artist')
-
- def track(self):
- """Get the song's track number."""
- return self.tag('track')
-
- def album(self):
- """Get the album."""
- return self.tag('album')
-
- def filepath(self):
- """Get the filepath."""
- return self._data['file']
-
- def tag(self, tag, default=''):
- """Get a tag. If it doesn't exist, return default."""
- if tag in self._data:
- return self._data[tag]
- if tag=='song':
- return self.__str__()
-
- return default
-
- def expand_tags(self, str):
- """Expands tags in form $tag in str."""
- ret = str
- ret = ret.replace('$title', self.title()) #to ensure that it is set to at least filename
- for tag in self._data:
- ret = ret.replace('$' + tag, unicode(self._data[tag]))
- ret = ret.replace('$songdir', os.path.dirname(self.filepath()))
- return ret
-