From 2eb10e391a4c31228b3e55fec9527e47504283e3 Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Wed, 21 Jul 2010 23:01:32 -0700 Subject: [PATCH] add "format" field to MediaFile for getting the file type This allows using $format in your path format string, which is nice. --- beets/library.py | 1 + beets/mediafile.py | 15 +++++++++++++++ test/rsrc/test.blb | Bin 5120 -> 5120 bytes test/test_db.py | 6 ++++++ test/test_mediafile_basic.py | 5 +++++ 5 files changed, 27 insertions(+) diff --git a/beets/library.py b/beets/library.py index cb5ddeb77..2e639e334 100644 --- a/beets/library.py +++ b/beets/library.py @@ -60,6 +60,7 @@ ITEM_FIELDS = [ ('length', 'real', False, True), ('bitrate', 'int', False, True), + ('format', 'text', False, True), ] ITEM_KEYS_WRITABLE = [f[0] for f in ITEM_FIELDS if f[3] and f[2]] ITEM_KEYS_META = [f[0] for f in ITEM_FIELDS if f[3]] diff --git a/beets/mediafile.py b/beets/mediafile.py index 74dc00b11..7581c57f4 100644 --- a/beets/mediafile.py +++ b/beets/mediafile.py @@ -50,6 +50,18 @@ class FileTypeError(UnreadableFileError): pass +# Constants. + +# Human-readable type names. +TYPES = { + 'mp3': 'MP3', + 'mp4': 'AAC', + 'ogg': 'OGG', + 'flac': 'FLAC', + 'ape': 'APE', +} + + # Flags for encoding field behavior. class Enumeration(object): @@ -660,3 +672,6 @@ class MediaFile(object): else: return self.mgfile.info.bitrate + @property + def format(self): + return TYPES[self.type] diff --git a/test/rsrc/test.blb b/test/rsrc/test.blb index 15d3d859d8f2345f393ae159528b0fe0b9c42215..aba567880745da92ac12a1549f1635f586302a38 100644 GIT binary patch delta 88 zcmZqBXwaA-Ehxf(3WO)>Sn@MgGO#dAW?=4Oj%K{YFnOY*{KU!6Sbz!>C)YB@ay8X4 fvx|$1Gqy%=Zf4A6