* morituri/common/program.py:
When morituri finds multiple matches for a given release, it only
keeps the releases whose length are the closest to the CD being
ripped.
However, this currently interacts badly with the --release-id
parameter because this duration filtering is done before trying to
do the release-id matching. The release that the user has specified
may have been removed from the potential matches by the time the
release
id match is tried.
This commit removes the duration filtering when the user explicitly
specified a release id. I've observed this bug with the first disc
of The Wall (Experience Edition) by the Pink Floyd.
Fixes#91.
* morituri/common/program.py:
When --release-id is used, we are not making guesses based on the
CD lengths, so the message saying that we picked the closest match
in duration, which can still trigger, is inappropriate.
* morituri/common/program.py:
* morituri/rip/cd.py:
Add rip cd rip --release-id as an option to select the exact
release this disc is a part of.
Fixes Radiohead - Pablo Honey and U2 - Achtung Baby
* morituri/test/morituri.release.3451f29c-9bb8-4cc5-bfcc-bd50104b94f8.json (added):
* morituri/test/test_common_musicbrainzngs.py (added):
Add test for previous bug of a release not having a date.
* morituri/common/musicbrainzngs.py:
* morituri/common/program.py:
* morituri/extern/Makefile.am:
Use musicbrainz NGS for ripping.
Can now rip Weezer, the Blue Album, both discs.
* morituri/common/musicbrainzngs.py (added):
Rewrite using python-musicbrainz-ngs.
Add rip debug musicbrainzngs command for testing,
seems to work on Weezer - Blue Album - disc 2
* morituri/extern/task/task.py:
Instead of chaining next in multi tasks, making the call
chain larger (and exceed maximum depth on track 75), schedule
it immediately.
Add shrinkPath to write shorter path names.
* morituri/test/test_common_common.py (added):
Add test.
* morituri/program/cdparanoia.py:
Catch ENAMETOOLONG and shrink path.
* morituri/common/program.py:
Update track result's filename if it was shrunk.
* morituri/rip/cd.py:
set the possibly shrunk path on the result.
Add a note about das capital disc.
* morituri/test/release.08397059-86c1-463b-8ed0-cd596dbd174f.xml:
* morituri/test/release.93a6268c-ddf1-4898-bf93-fb862b1c5c5e.xml:
Add musicbrainz ws1 results for Das Capital and Ladyhawke.
* morituri/test/test_common_program.py:
Fix typos.
Add tests for Ladyhawke and Das Capital duration and parsing.
* morituri/test/test_image_table.py:
Fix according to new algorithm.
* morituri/test/test_image_toc.py:
Get frame length for both cd's.
* morituri/image/table.py:
Add getFrameLength method. Fix up duration.
Add release data for Bettie Serveert, Lamprey
* morituri/test/test_common_program.py:
Add a test for parsing and getting the whole duration.
* morituri/common/common.py:
Add a method to format time.
* morituri/common/program.py:
Add duration to tracks and release metadatas.
When there are multiple matches, look up the closest in duration.
Make sure that multiple matches closest in duration contain same
artist and title.
Complain about the other ones.
* morituri/image/table.py:
Add a method to calculate a duration from the table.
* morituri/test/test_image_table.py:
Add a test for it.