Okay, so today I restarted working at JulTagger after the initial prototype that was something like february or anyway quite early this year. I basically left it untouched when I found that the rubytag bindings I was using sucked because I had no access to advanced tags (not like right now I do have access to all of them, as some of them are hidden inside subclasses, like I’m not yet able to get the total amount of tracks in the album or the composer and encoder, but that’s mostly matter of knowing how TagLib works (thing that I don’t actually know that much right now).
But why should I be talking again about JulTagger without specific news? Well first of all I’d like to draw some attention on it, hoping to find more help with it 😉 and then, I do have some interesting news that shows how quick is to write applications using Ruby and Korundum.
What I had today was an application which displayed some tags when selecting a file, what I do have now is an application that shows you the tag when selecting a file, and shows you the common subset of tags when selecting multiple files.
Other than that, I’ve written a “backbuffer” with the tags read from files, so that I don’t have to re-read them every time I change a file, and that’s needed to be able to change the tags to the files especially when doing multi-select.
Tomorrow I’ll be implementing a status bar with an icon showing if the files of a directory are changed or not, and then finally I’ll implement the actual “Save tags” feature.
The problem of “Save tags” will be being able to save only the selected files, and give a “Select All” option, kinda like EasyTag does. I should also look if I have a way to get different color for the changed files.
After this, I have to find a way to do the CDDB lookup. I’d like not to reimplement it by myself, as it’s quite a big thing to do, especially parsing the reply from server, but the only implementation of cddb in ruby I found in portage is ruby-freedb, and although that implements CDDB lookup, it doesn’t allow me to specify the tracks “by hand”, and instead relies on reading them from a CD-Rom device, which is quite a problem.
I surely hope not to have to implement another CDDB lookup ruby extension, as I don’t really like that idea, especially since it will be another custom dependency on JulTagger, which will make it more difficult to be seen in use this way.
I’ll also try to follow Ian’s suggestion and get an Amazon lookup, if Amazon provides the service via XML it should be simple, although I’ll have to look at the TOS and in case provide a “opt-in” option in JulTagger to enable that.
It’s 2am, I should be sleeping or reading, instead of writing 😀