"Damon Timm" <damont...@gmail.com> wrote

I am struggling, on a theoretical level, on how to map the various
filetype's tag/key naming conventions.  I have already created my own
MusicFile objects to handle each filetype (with functions for
encoding/decoding) but I can't wrap my head around how to map the
tags.

I'd define a mapping table per file type that maps from a standad
set of keys to the file specific tag.

Then define a class that works with the generic tags.
You can then eirther subclass per file type and use the file specific
mapping(a class variable) to translate internally or just create a function
that takes the file mapping as a parameter(maybe in the init() ) and sets
it up for the generic methods to use.

And here is what I would need to do to find the song's TITLE text:

flac['title']
[u'Christmas Waltz']
mp3['TIT2'].text #notice this one takes another additional step, as well, by specifying text !
[u'Christmas Waltz']
mp4['\xa9nam']
[u"Christmas Waltz"]

So if the file is mp3 the generic

foo.setTag('title')

will inside the setTag method do

def setTag(self, tag, value)
      key = self.mapping[tag]   # get file specific tag
      fileData[key] = value       # and use it
      # or
      self.value = fileData[key]

approach this.  I know I could manually assign each key to a class
property (using the @property tag) ... but this seems tedious:

That would definitely be overklilll and not bvery flexible for adding new file types.

HTH,


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to