Commit graph

360 commits

Author SHA1 Message Date
Adrian Sampson
ee78391f4f autotag refactoring in preparation for interface changes 2011-10-10 18:19:24 -07:00
Adrian Sampson
9a1d43d156 prevent albums_in_dir from yielding empty albums (#265)
This regression was introduced with the album collapsing feature. We need to
check whether the items array is empty before yielding every time.
2011-11-29 11:36:33 -08:00
Adrian Sampson
1ba4d74a75 use better default paths on Windows (#241) 2011-11-27 23:33:11 -08:00
Adrian Sampson
450115358d multi-disc album collapsing based on heuristics (#42) 2011-11-26 15:43:26 -08:00
Adrian Sampson
b1a1caa246 fix update tests for mtime optimization (#227) 2011-11-23 18:05:37 -08:00
Adrian Sampson
256cbf9fd5 sync with latest python-musicbrainz-ngs, fixing Unicode queries (#257) 2011-11-23 17:57:00 -08:00
Adrian Sampson
ec49fca4dc smarter MBID input (based on patch by derwin) 2011-10-07 15:33:19 -07:00
Adrian Sampson
2e2c1be1bd catch MB BadStatusLine errors 2011-09-18 17:09:20 -07:00
Adrian Sampson
4b5c674d9b "--pretend" (dry run) flag for update 2011-09-18 16:18:19 -07:00
Adrian Sampson
6fbe69d454 spelling errors in comments 2011-09-18 13:00:36 -07:00
Adrian Sampson
748457193b fix colorized diff of non-string values (#236) 2011-09-18 12:36:52 -07:00
Adrian Sampson
e0f66d6f18 epsilon tolerance in float equality for showdiff 2011-09-18 12:29:07 -07:00
Adrian Sampson
9933b5e4df difference display was showing the same value twice (#236) 2011-09-18 12:10:10 -07:00
Adrian Sampson
80ddff263f tests and a bug fix for #229 2011-09-15 21:26:19 -07:00
Adrian Sampson
e8b8cb179f refactor: move() is a method on Library (not Item) 2011-09-15 16:15:53 -07:00
Adrian Sampson
e12645684f do nothing when copying/moving a file to itself (#234) 2011-09-15 14:55:33 -07:00
Adrian Sampson
e2b7a7514d fix visual diff for non-string values (#235) 2011-09-15 14:45:31 -07:00
Adrian Sampson
94569a774e moving/copying fails when destination exists (#230) 2011-08-28 18:25:38 -07:00
Adrian Sampson
607757edf1 -i/import_incremental to only import new directories (#99) 2011-08-09 12:09:36 -07:00
Adrian Sampson
45eeea343e destination option for "beet move" (also tests) 2011-08-05 12:19:34 -07:00
Adrian Sampson
2c56fd22f2 fix replacement of in-library items 2011-08-04 16:14:07 -07:00
Adrian Sampson
3efeb9a133 -L flag to import lets you re-import items matching query (#69) 2011-08-04 15:29:59 -07:00
Adrian Sampson
248bccf951 move, rather than copying, when re-importing 2011-08-04 14:08:11 -07:00
Adrian Sampson
3e75d262a8 correctly detect item existence when copying 2011-08-04 13:35:44 -07:00
Adrian Sampson
f54ace110c allow "null" album art setting (when it's already in place) 2011-08-04 12:19:30 -07:00
Adrian Sampson
f3130152b1 don't count existing items/albums as duplicates (allowing update) 2011-08-04 12:04:22 -07:00
Adrian Sampson
58fb4392ee refactor duplicate tests to take the whole task as an argument 2011-08-04 11:51:17 -07:00
Adrian Sampson
7f4f477c32 remove old items/albums from database when re-importing items 2011-08-04 11:16:12 -07:00
Adrian Sampson
330585292d skip .DS_Store (and Thumbs.db) when pruning directory trees 2011-08-03 00:03:15 -07:00
Adrian Sampson
e84c3e7abd consolidate update command, removing album-munging logic 2011-08-02 23:37:55 -07:00
Adrian Sampson
e1d9e6bb45 prune directories when moving 2011-08-02 16:01:11 -07:00
Adrian Sampson
e24ebbae00 add --yes (-y) option for skipping modify confirmation 2011-08-02 14:10:03 -07:00
Adrian Sampson
a367b2764d first attempt at command-line modification command (#56) 2011-08-02 13:59:33 -07:00
Adrian Sampson
b63d6c858b MPEG-4 Unicode freeform frames are now encoded as UTF-8 bytes 2011-07-31 23:03:19 -07:00
Adrian Sampson
951e4eec86 fix VA inference for small (1-track) albums 2011-07-07 09:19:33 -07:00
Adrian Sampson
45383eced2 fix VA inference (needs to run before move step in "apply") 2011-07-07 09:13:37 -07:00
Adrian Sampson
f53a06ddf1 merge 2011-07-07 08:33:33 -07:00
Adrian Sampson
fed8782ca1 fix Unicode queries from CLI arguments 2011-07-01 15:43:06 -07:00
Adrian Sampson
a448879ca9 infer album artist or VA for as-is imports (#161) 2011-06-29 10:36:07 -07:00
Adrian Sampson
7f206baae5 automatically detect path queries containing / (finishes #146) 2011-06-26 00:25:39 -07:00
Adrian Sampson
fcc2744ac5 use separate shell arguments for queries to preserve whitespace 2011-06-26 00:12:45 -07:00
Adrian Sampson
f3ac19622a a couple of fixes for path queries 2011-06-25 14:23:32 -07:00
Adrian Sampson
1006a9a221 merge/fixup derwin's label patch 2011-06-25 13:04:19 -07:00
Adrian Sampson
e64e20cc87 copy album art from filesystem based on filename heuristics (#72) 2011-06-24 21:41:25 -07:00
Adrian Sampson
846b85556d algorithm for identifying filesystem album art 2011-06-24 21:24:15 -07:00
Adrian Sampson
6ca995f4e7 new path queries only match prefixes 2011-06-14 23:19:18 -07:00
Adrian Sampson
efa704f61e fix crash when using an item-only field in an album query 2011-06-13 21:27:13 -07:00
Adrian Sampson
ac9147928a calculate bitrate from file size when not available (#195) 2011-06-13 21:07:15 -07:00
Adrian Sampson
40035bfdf4 format $bitrate in path formats as "XXkbps" 2011-06-13 20:52:52 -07:00
Adrian Sampson
973fca1d89 better error message on unreadable database 2011-06-02 10:17:53 -07:00
Adrian Sampson
da6ee13159 fix singleton quiet imports 2011-05-21 16:53:01 -07:00
Adrian Sampson
39dac9a28d "beet ls -p" outputs paths 2011-05-21 12:40:36 -07:00
Adrian Sampson
078252d31e use unidecode to deal with accents and such (#118) 2011-05-06 12:41:32 -07:00
Adrian Sampson
8341dee3ab reorder items() and albums() parameters to reflect common use 2011-05-05 17:20:24 -07:00
Adrian Sampson
151df84150 remove unused artists() and get() methods on library 2011-05-05 17:11:54 -07:00
Adrian Sampson
3e90579a6c BPD uses new VFS as a backend (#131) 2011-05-05 17:00:05 -07:00
Adrian Sampson
926032fd07 add simple virtual filesystem construction
--HG--
rename : test/test_art.py => test/test_vfs.py
2011-05-05 14:19:47 -07:00
Adrian Sampson
a0ef39aba5 duplicate detection on adjacent albums/items now works (#156) 2011-05-05 10:20:23 -07:00
Adrian Sampson
65dac30e4d break album art and finalization into new stages (#168) 2011-05-03 13:12:23 -07:00
Adrian Sampson
73c4bedc41 simplify MediaFile art interface: no type is included
The interface no longer specifies the type of the image embedded in the file; it
just returns a bytestring blob. When a type must be stored, it is inferred using
the imghdr module, which shoudl reduce the potential for weird bugs when the
formats don't correspond.
2011-04-27 10:27:26 -07:00
Adrian Sampson
4a6b8274d8 basic album art unit test 2011-04-20 23:36:43 -07:00
Adrian Sampson
c2fd535047 &/and equivalent in string distance 2011-04-19 23:21:18 -07:00
Adrian Sampson
7e89282053 duplicate detection for items 2011-04-19 16:40:40 -07:00
Adrian Sampson
3dbce11a25 raise error when -q and -t are supplied together 2011-04-19 13:56:45 -07:00
Adrian Sampson
df6b1abfd8 clean up vestiges of TRACKS choice for album tasks 2011-04-19 13:21:27 -07:00
Adrian Sampson
db6eb60e23 update tests for timid mode 2011-04-19 13:13:16 -07:00
Adrian Sampson
828f1aa4f1 multiple() function for sending many messages to next stage 2011-04-17 08:18:54 -07:00
Adrian Sampson
85cd3cdb84 add pipeline tests, fixing a bug with parallel stages in the process 2011-04-17 07:57:56 -07:00
Adrian Sampson
375e335002 manual searching for singletons
(Still on a plane.)
2011-04-15 20:14:30 -07:00
Adrian Sampson
be9dc888cb fix crash when ~/.beetsconfig does not exist 2011-04-15 12:50:06 -07:00
Adrian Sampson
d1b7c8dc55 display track changes; some scaffolding for user query 2011-04-14 09:07:06 -07:00
Adrian Sampson
6cfb862906 conditional deletes in some cases (suggested in #170) 2011-04-13 20:23:33 -07:00
Adrian Sampson
45eef6e876 rename -i flag to -s ("singletons") and fix behavior 2011-04-12 23:31:44 -07:00
Adrian Sampson
12854ad2ff very first stab at a working individual-item importer flow
"beet import -i" now tags items instead of albums. There are many loose ends to
tie up (marked with TODOs in the source):
- What to do about applying non-track metadata to matched tracks? Currently it's
  just left in place.
- Plugin autotag candidates for tracks.
- No user querying yet.
- Non-autotagged -i import are unimplemented.
And, on top of those:
- Need to remove the action.TRACKS workflow and replace it with an option that
  lets you jump over to the individual-track interface from the album tagger.
2011-04-12 23:22:03 -07:00
Adrian Sampson
a39a5b5d66 extremely preliminary item importer skeleton
(I shouldn't have started on this yet; the autotagger functionality isn't in
place yet. Going back and doing that now...)
2011-04-12 20:52:39 -07:00
Adrian Sampson
6f9c460837 slight tweaks to tests to let them run under nose 2011-04-12 15:06:27 -07:00
Adrian Sampson
85ddfa4381 relocatable test rsrc directory 2011-04-12 14:26:48 -07:00
Adrian Sampson
c03ec1ee1c add a multithreaded import test case 2011-04-12 14:11:43 -07:00
Adrian Sampson
89f33466e0 move non-autotagged import test (wasn't testing UI) 2011-04-12 14:09:17 -07:00
Adrian Sampson
fcee8b2ab6 remove special-cased non-autotagged import function (simple_import) 2011-04-12 13:57:05 -07:00
Adrian Sampson
584cc74a5c fix bug when "applying" sentinel 2011-04-11 08:21:36 -07:00
Adrian Sampson
7503c1174a more natural-looking queries for comp field
You can now use "comp:true" or "comp:yes" as well as "comp:1".
2011-04-10 22:55:25 -07:00
Adrian Sampson
a675988eb2 add and use fancy enumeration module 2011-04-10 22:10:33 -07:00
Adrian Sampson
e669868896 move a bunch of functions to util 2011-04-10 21:48:05 -07:00
Adrian Sampson
3222cc6213 move main importer driver logic to importer module 2011-04-10 19:15:24 -07:00
Adrian Sampson
dffdbce5f1 sanitize CLI-specific code from importer module 2011-04-10 19:10:22 -07:00
Adrian Sampson
c0467c3724 encapsulate importer configuration in an object 2011-04-10 18:56:42 -07:00
Adrian Sampson
23392525ec The Great Importer Refactoring
I'm shuffling around the feature-creeping importer code to keep it as
interface-agnostic as possible. The "importer" module now takes care of the
basic, increasingly complicated workflow while the ui.commands module is
relegated to containing actual user-interface stuff.
2011-04-10 18:12:47 -07:00
Adrian Sampson
11c5b15c8d fix copying destination for full-album imports 2011-04-10 10:57:13 -07:00
Adrian Sampson
e478ae740d refactor importer to use a ImportTask class instead of a tuple 2011-04-09 19:53:52 -07:00
Adrian Sampson
d63a9fd188 singleton: queries 2011-04-09 16:13:12 -07:00
Adrian Sampson
b28ef722a5 singleton path format 2011-04-09 14:50:48 -07:00
Adrian Sampson
61ef980797 $albumartist falls back to $artist (#166) 2011-04-09 12:36:52 -07:00
Adrian Sampson
4ce8d3b249 duplicate detection is (belatedly) album-based instead of track-based 2011-04-03 16:12:09 -07:00
Adrian Sampson
966572c0d3 test missing track artist in compilation 2011-04-03 12:20:47 -07:00
Adrian Sampson
e9d790a2b3 tests for deletion during import 2011-04-03 12:11:08 -07:00
Adrian Sampson
f256726917 explicit searching for VA releases when it seems likely 2011-04-02 20:29:01 -07:00
Adrian Sampson
c051df6d91 fix broken symlink crash (#157) 2011-04-02 18:03:42 -07:00
Adrian Sampson
d4d74dd68b fix crasher w/ old APE files (#159) 2011-04-02 17:48:54 -07:00
Adrian Sampson
cd8ca9f473 make -p/-P and import_resume config option symmetric
The import_resume option (nee import_progress) now exactly reflects the behavior
of -p and -P on the command line, which I think is way less confusing. That
option now has three settings: yes, no, and "ask" (the default). The "ask"
behavior cannot be specified on the command line, but I think that's OK. It's
also important to note that "no" means that progress is disabled entirely
(including saving progress for later resumes). The -q flag still overrides the
config option.
2011-03-30 20:05:42 -07:00
Adrian Sampson
436f635b55 import_quiet_fallback option to customize in quiet mode (#149) 2011-03-29 21:27:03 -07:00
Adrian Sampson
5b13094789 -p and -P flags to force resume or skip resume 2011-03-29 20:02:47 -07:00
Adrian Sampson
1b6910ac6a move directory-pruning to item's remove() method 2011-03-23 17:03:21 -07:00
Adrian Sampson
7f7c45b252 refactoring, tests, NEWS note on wlof's directory-pruning patch 2011-03-23 16:53:24 -07:00
Adrian Sampson
43a5e913a7 move some reused testing stuff to _common module 2011-03-23 16:15:18 -07:00
Adrian Sampson
b5c38970cc add test for wlof's albumartist searching fix 2011-03-23 16:01:35 -07:00
Adrian Sampson
f69f69cecf merge in some fixes from wlof's repository 2011-03-23 15:50:11 -07:00
Adrian Sampson
bc807c6547 distance metric now sensitive to various-artist matches 2011-03-23 15:38:46 -07:00
Adrian Sampson
ecdcd1e1bf use timecop for MusicBrainz error-catching tests 2011-03-23 14:42:29 -07:00
Adrian Sampson
c698868bf0 catch Ogg header error (#133) 2011-03-23 11:51:27 -07:00
Adrian Sampson
096816cba7 path formats can now be specified by album type 2011-03-22 20:09:27 -07:00
wlof
c09f6a75ff updated db to new format 2011-03-19 01:47:24 +01:00
wlof
7be77a99d9 .. is now inserted at the beginning of sys.path so that local beets
files are used instead of installed ones
2011-03-19 01:45:35 +01:00
wlof
2db7699ed3 .. is now inserted at the beginning of sys.path so that local beets
files are used instead of installed ones
2011-03-19 00:08:19 +01:00
Adrian Sampson
2360c5744a retry on MusicBrainz error 504 (gateway timeout) 2011-03-03 15:25:16 -08:00
Adrian Sampson
5437b30688 strip null characters from MB queries (#142) 2011-02-28 10:08:09 -08:00
Adrian Sampson
4ab74d9a69 don't log output during testing 2011-02-18 12:41:23 -08:00
Adrian Sampson
993519c004 split import tests, suppress progress checks for testing 2011-02-18 12:38:46 -08:00
Adrian Sampson
0d869340ec fixes for album artist inference
- Inference must be enabled explicitly with the "infer_aa" flag. It does not
  happen transparently.
- Infer both artist and artist ID.
- Fixed a bug where only the database row was using the inferred data, not the
  returned data structure.
- Added tests.
2011-02-18 12:17:22 -08:00
Adrian Sampson
ce5f9f9936 move BaseAlbum tests to test_db (with other album tests) 2011-02-18 11:36:52 -08:00
Ozzi Lee
9d20fd7151 Add ImportTest, testing import_files in commands.py.
Only tests "as-is" metadata imports, making sure that tracks are
copied to the library and named properly.
2011-02-18 06:31:46 -06:00
Ozzi Lee
d9554746cd Added a very basic test_library.py
test_library.py so far just documents existing behavior of album
objects, especially the fact that trying to access unset fields causes
an AttributeError.
2011-02-02 22:22:23 -06:00
Adrian Sampson
0822fa2f82 test that autotagger sets track artist to match album artist 2011-01-24 20:22:13 -08:00
Adrian Sampson
9d3eaa5b05 remove albumify plugin (it's been a while since beta 3) 2011-01-24 19:43:27 -08:00
Adrian Sampson
eb1a6c8ae3 tests for multiple paths feature; legacy path_format overrides 2011-01-24 19:40:09 -08:00
Adrian Sampson
d16e972088 fix count queries over empty results 2011-01-24 15:41:38 -08:00
Adrian Sampson
66b3e5675c update default path formats; make $artist fall back on $albumartist
The default path formats now include both a "default", which is the same as
before but now uses $albumartist instead of $artist, and a "comp" path, which
uses a Compilations directory. Old paths are supported as-is by letting $artist
refer to either a track artist (when present, as it is in all old library
tracks) or album artist (when the track artist isn't present, as is the case
with most albums imported now).
2011-01-24 10:14:19 -08:00
Adrian Sampson
5cfc7db7b1 move "various artists" detection from autotag module to mb 2011-01-24 08:57:49 -08:00
Adrian Sampson
0c24376e6a migration of album table's artist field to albumartist; fix ls -a 2011-01-23 22:49:52 -08:00
Adrian Sampson
75e0924832 move _sanitize_for_path to module namespace 2011-01-23 19:59:41 -08:00
Adrian Sampson
6ade5635e1 light refactoring and renaming for patch
Changed mb_albumtype to albumtype.
Changed album_artist to albumartist.
Reinstated subset relationship between album fields and item fields.
2011-01-23 19:49:48 -08:00
Adrian Sampson
342c360285 apply jonathan.buchanan's compilation patch from issue #48 2011-01-23 18:41:35 -08:00
Adrian Sampson
3bfae3b78c fix permissions on album art (#130) 2011-01-21 17:57:58 -08:00
Adrian Sampson
1b423f05db fix bug where magic "ftyp" string would cause a Mutagen exception (#129) 2011-01-21 15:11:47 -08:00
Adrian Sampson
0b0d7e0b67 fixes for tests' cross-platformness by jonathan.buchanan 2011-01-20 09:29:09 -08:00
Adrian Sampson
93594bac5a convert import paths to absolute; more _syspath calls
Again, patch mainly due to jonathan.buchanan.
2011-01-20 00:13:00 -08:00
Adrian Sampson
5d79d3e537 add another test to justify mock IO setup 2011-01-19 15:16:31 -08:00
Adrian Sampson
1ee401678e a real system for mocking IO for UI functions 2011-01-19 14:53:03 -08:00
Adrian Sampson
96c2484b02 remove incompletely-isolated test cases; use mock timing functions 2011-01-19 14:19:41 -08:00
Adrian Sampson
4359845a01 prohibit trailing spaces in Windows filenames 2011-01-19 13:17:54 -08:00
Adrian Sampson
5904852e4b use "long filename" support instead of short truncation on Windows (#127)
(Patch by jonathan.buchanan. Thanks!)
2011-01-19 13:14:54 -08:00
Adrian Sampson
ab35db7b7a truncate path components to 30 characters on Windows (work around #120) 2011-01-18 20:13:57 -08:00
Adrian Sampson
ca0d1bc7aa fix unicode issue with manual search prompt (#113) 2011-01-18 19:09:04 -08:00
Adrian Sampson
580e4acf10 WavPack and Musepack support 2011-01-03 15:32:58 -08:00
Adrian Sampson
a23fe1c37f don't copy permissions of imported files 2011-01-01 12:12:55 -08:00
Adrian Sampson
87500cf5c4 fix copying when file is already where it needs to be 2011-01-01 10:49:16 -08:00
Adrian Sampson
43b8235a4c work around Python's graceless handling of invalid LANG 2010-12-31 17:41:50 -08:00
Adrian Sampson
4de44590d0 progress display for non-autotagged imports 2010-09-28 10:29:07 -07:00
Adrian Sampson
7cf10d13e5 fix escaping of / in paths on Windows 2010-09-27 16:56:40 -07:00
Adrian Sampson
ea26e6660e fix a bug where string heuristics could penalize 2010-09-22 20:23:36 -07:00