[Assorted-commits] SF.net SVN: assorted:[957] sandbox/trunk/src/one-off-scripts
Brought to you by:
yangzhang
From: <yan...@us...> - 2008-08-31 03:03:19
|
Revision: 957 http://assorted.svn.sourceforge.net/assorted/?rev=957&view=rev Author: yangzhang Date: 2008-08-31 03:03:26 +0000 (Sun, 31 Aug 2008) Log Message: ----------- added cddb flac tagger Added Paths: ----------- sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/ sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/pretty.py sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/raw.py Added: sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/pretty.py =================================================================== --- sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/pretty.py (rev 0) +++ sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/pretty.py 2008-08-31 03:03:26 UTC (rev 957) @@ -0,0 +1,35 @@ +#!/usr/bin/env python + +from __future__ import with_statement +from mutagen.flac import FLAC +from re import compile + +with file('id.txt') as f: lines = f.read().split('\n') + +albumartist_pattern = compile( r'Artist: (.*)' ) +album_pattern = compile( r'Title: (.*)' ) +totaltracks_pattern = compile( r'(\d+) tracks' ) +track_pattern = compile( r" \[(?P<trackno>\d\d)\] '(?P<title>.+)' by (?P<artist>.+) \(.+\)" ) + +for line in lines: + m = albumartist_pattern.match(line) + if m: albumartist = m.group(1).strip() + + m = album_pattern.match(line) + if m: album = m.group(1).strip() + + m = totaltracks_pattern.match(line) + if m: totaltracks = m.group(1) + + m = track_pattern.match(line) + if m: + trackno = int( m.group('trackno') ) + f = FLAC('track%02d.cdda.flac' % trackno) + f.clear() + f['albumartist'] = albumartist + f['album'] = album + f['totaltracks'] = totaltracks + f['tracknumber'] = str(trackno) + f['title'] = m.group('title') + f['artist'] = m.group('artist') + f.save() Property changes on: sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/pretty.py ___________________________________________________________________ Added: svn:executable + * Added: sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/raw.py =================================================================== --- sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/raw.py (rev 0) +++ sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/raw.py 2008-08-31 03:03:26 UTC (rev 957) @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +from __future__ import with_statement +from mutagen.flac import FLAC +from re import compile + +with file('id.txt') as f: + lines = [ tuple( line.split('=') ) + for line in f.read().strip().split('\n') + if not line.startswith( '#' ) ] + +titlepat = compile('TTITLE(\d+)') +totaltracks = max( int( m.group(1) ) + for m in + ( titlepat.match( field ) for field, value in lines ) + if m is not None ) + 1 + +for field, value in lines: + if field == 'DTITLE': albumartist, album = value.split(' / ') + + m = titlepat.match( field ) + if m: + trackno = int( m.group(1) ) + 1 + f = FLAC('track%02d.cdda.flac' % trackno) + f.clear() + f['albumartist'] = albumartist + f['album'] = album + f['totaltracks'] = str(totaltracks) + f['tracknumber'] = str(trackno) + f['title'] = value + f['artist'] = albumartist + f.save() Property changes on: sandbox/trunk/src/one-off-scripts/cddb-flac-tagger/raw.py ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |