Skip to content
Commits on Jul 24, 2011
  1. fix bugs handling unicode file names

    committed Jul 24, 2011
    Fix crashes when handling non-ASCII characters in directory names and in
    track titles.  In two places filenames were inadvertantly left as, or
    converted to, a plain non-unicode byte string.  This caused decode
    errors when we tried to concatenate them with Unicode strings, and
    python attempted to automatically encode them as ASCII.
    
    In album_dir.py, the input path was left as a plain byte string, rather
    than being decoded as UTF-8.
    
    In rename.py the safe_filename() function was inadvertantly converting
    unicode input strings to plain byte strings in output, due to passing
    the input through a non-unicode format string.
  2. fix unhandled exception if no CDDB entries are found

    committed Jul 24, 2011
    Update the cddb API to return an empty list when no matches are found,
    rather than raising a NoMatchesError.  NoMatchesError is still raised if
    query() returns result IDs, but one or more of the IDs cannot be found
    when read() is called.
Commits on Jul 23, 2011
  1. write logs for each ripped track

    committed Jul 23, 2011
    The log files record where any warnings or errors occurred when ripping
    each track.
  2. fix index error in ripper CliOutput

    committed Jul 23, 2011
    Cap the index generated for the progress bar, to prevent an IndexError
    if cdparanoia reports an error or warning before the start of the track,
    or after the end of the track.
Commits on Apr 11, 2011
  1. improve handling of CD-ROM drive readiness

    committed Apr 10, 2011
    Implement our own code to close the tray if necessary and wait for the
    device to become ready.  The kernel's built-in handling of this on
    open() will close the tray, but fails if the drive doesn't become
    immediately ready afterwards.
    
    Also add an --eject flag to archive.py to cause it to eject the disc
    after archiving.
Commits on Apr 10, 2011
  1. fix bugs in handling of unicode strings

    committed Apr 10, 2011
    Fix some cases where unicode strings were printed to stdout or passed
    through execv() without first encoding to UTF-8, which would throw an
    exception on non-ASCII characters, since Python's default encoding is
    ASCII.
    
    Also fix some directory listing code to attempt to decode paths as
    UTF-8, so they can be correctly compared against unicode strings.
  2. find_track_files: ignore the extension when looking for track numbers

    committed Apr 10, 2011
    When looking for possible track numbers in the file name, don't treat
    the "3" in the ".mp3" extension as possibly meaning track number 3.
    
    Also fix a bug generating an error message for the exception if we can't
    narrow the files down to 1 track number per file.
  3. rename.py: also rename the mp3 files

    committed Apr 10, 2011
    Previously only the flac and wav files were renamed.
  4. add a script to decode flac files back to wav

    committed Apr 10, 2011
    This script recreates the wav directory from the flac files, if the wav
    files were deleted to save space.
  5. fix long line in encode_mp3.py

    committed Apr 10, 2011
  6. rename.py: ensure names are valid file names

    committed Apr 10, 2011
    Replace '/' characters with '\'.
  7. archive.py: add an option to resume a previously failed operation

    committed Apr 10, 2011
    The --resume flag causes archive.py to restart and resume ripping the
    tracks from a previously failed/aborted archiving operation.  It doesn't
    resume metadata ripping, so it currently only works when archiving
    failed in the middle of ripping the track contents.
  8. encode_flac: tag flac files by default

    committed Apr 10, 2011
    Update the encode_flac.py script to also tag the newly created files, so
    tag_flac.py doesn't need to be run separately.
  9. archive.py: also merge the metadata

    committed Apr 10, 2011
    Perform the metadata merge step at the end of archive.py, to reduce the
    number of separate scripts users must run.
  10. move merge code into the metadata.merge package

    committed Apr 10, 2011
    Move the code out of the merge_metadata.py script so it can be accessed
    by other modules.
  11. update archive.py to also fetch metadata

    committed Apr 10, 2011
    Begin moving more of the ripping steps into archive.py, so fewer scripts
    have to be run manually.  The --only option causes archive.py to only
    fetch data off the CD, and exit before downloading metadata from online
    sources.
  12. rip: fix bugs in the warning handling code

    committed Apr 10, 2011
    Fix the STATUS_* character definitions.  STATUS_WARNING wasn't defined,
    and STATUS_JITTER and STATUS_ERROR were never used.  Also fix a bug in
    a call to printSuppressedWarnings().
Commits on Feb 28, 2011
  1. add encode_mp3.py script

    committed Feb 27, 2011
    For now this script just uses lame's built-in ID3 tagging support.  I
    don't have a separate script for re-tagging mp3 files yet.
Commits on Feb 27, 2011
Commits on Oct 23, 2010
  1. archive: improve track name to number mapping algorithm

    committed Oct 23, 2010
    After extracting possible numbers from the track names, process them one
    at a time, eliminating already chosen numbers from the possibilities for
    other tracks.  This allows better detection when some track names
    contain multiple numbers that look like possible track numbers.
Commits on Aug 30, 2010
  1. merge_metadata: ignore data tracks

    committed Aug 30, 2010
    Previously the code crashed when it couldn't find an icedax file for
    a data track.
  2. cdtext: track number must increment after every field

    committed Aug 30, 2010
    Increment the track number after every field.  This way fields that
    occur completely in the middle of a pack are handled correctly.
    Previously the code incorrectly recorded these fields with the same
    track number as the previous field.
  3. archiver: use the rip module to rip audio tracks

    committed Aug 24, 2010
    This allows us to more easily detect uncorrected errors, and fail if we
    weren't able to accurately rip the track.
  4. cdtext: fix missing import

    committed Aug 24, 2010
  5. rip: update the progress indicator based on the read offset

    committed May 29, 2010
    The write offset tends to be updated in bursts, so isn't ideal to use
    for a progress indicator.  This changes the code to use the maximum read
    offset for progress.
  6. begin adding class for more intelligent ripping

    committed Mar 14, 2010
    This class can parse cdparanoia's status output, to detect progress,
    as well as warnings and uncorrected errors.
Commits on Mar 14, 2010
  1. proc: added classes for processing command output as it is received

    committed Mar 14, 2010
    This allows output from long-running commands to be processed when it is
    received, rather than having to wait for the command to exit before the
    output is available.
Something went wrong with that request. Please try again.