#!/usr/bin/python # this is probably hideously non-idiomatic python, but i'm a ML/C/ASM # coder and this is my first python program. at least it works. import os, CDDB, DiscID cdrom = DiscID.open() disc_id = DiscID.disc_id(cdrom) (query_status, query_info) = CDDB.query(disc_id) if query_status == 210 or query_status == 211: # multiple matches, assume the last is best for i in query_info: print i['title'] query_info = i elif query_status == 403 or query_status == 409: sys.exit(1) (read_status, read_info) = CDDB.read(query_info['category'], query_info['disc_id']) rawtitle = read_info['DTITLE'] (artist, title) = rawtitle.split('/') year = read_info['DYEAR'] genre = read_info['DGENRE'] for i in range(disc_id[1]): human_num = str(i + 1) track_title = read_info['TTITLE' + `i`] track_title = track_title.strip() track_filename = track_title.replace(' ', '_') track_filename = track_filename.lower() trackname = human_num + '-' + track_filename if (i + 1) < 10: trackname = '0' + trackname L = ['cdparanoia', human_num, trackname + '.wav'] os.spawnvp(os.P_WAIT, 'cdparanoia', L) L = ['mppenc', '--xlevel', '--album', title.strip(), '--title', track_title.strip(), '--year', year.strip(), '--track', human_num, '--genre', genre.strip(), '--artist', artist.strip(), trackname + '.wav', trackname + '.mpc'] os.spawnvp(os.P_WAIT, 'mppenc', L) L = ['rm', trackname + '.wav'] os.spawnvp(os.P_WAIT, 'rm', L)