diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2012-02-13 23:35:38 +0100 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2012-02-13 23:35:38 +0100 |
commit | 8d7473e603817d6857873d2a960769ec09a4c5ab (patch) | |
tree | ec8cdea548e387e6da397ace4d841c725fc3f079 /db.py | |
parent | 0d8e86265f74ee36503bbcec445dcefdea208df0 (diff) |
Implemented a simple directory and track lister.
Diffstat (limited to 'db.py')
-rw-r--r-- | db.py | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -20,7 +20,6 @@ class Directory(Base): parent_id = Column(Integer, ForeignKey('directories.id')) parent = relationship('Directory', backref = backref('children'), remote_side = [id]) - #children = relationship('Directory', lazy = 'joined', join_depth = 2) def __init__(self, path, parent_id = None): self.path = path @@ -39,6 +38,16 @@ class Directory(Base): session.commit() return directory + def get_relpath(self): + return os.path.relpath(self.path, config.get('music_root')) + + def dict(self): + return { + 'type': 'dir', + 'name': self.get_relpath(), + 'metadata': {}, + } + class Artist(Base): __tablename__ = 'artists' @@ -160,6 +169,14 @@ class Track(Base): metadata['album'] = self.album.name return metadata + def dict(self): + return { + 'type': 'track', + 'name': self.get_relpath(), + 'track': self.file_index, + 'metadata': self.get_metadata(), + } + Base.metadata.create_all(engine) from sqlalchemy.orm import sessionmaker |