Adrian Sampson
3b37433005
no penalty for "various artists" track artist ( #251 )
2012-01-25 20:41:59 -08:00
Adrian Sampson
47891b00f7
tolerate per-medium track numbering ( #283 )
2012-01-25 20:12:04 -08:00
Adrian Sampson
0e81900675
mtime tests at integral second resolution ( #298 )
2012-01-18 14:08:15 -08:00
Adrian Sampson
c40081808a
fix double-removal when re-importing with deletion
...
With import_delete enabled and performing a re-import (which moves files), the
former location of the file would be "deleted". This would lead to a "file does
not exist" error.
2012-01-06 21:58:17 -08:00
Adrian Sampson
d73c133a53
query-conditioned path formats ( #210 )
...
Also, Library.path_formats is now a list of pairs instead of a dictionary. (I
would have used an OrderedDict, but that was added in 2.7.)
2011-12-28 19:01:13 -08:00
Adrian Sampson
b44195853c
zero-pad date values in path formats ( #282 )
2011-12-22 15:57:02 -08:00
Adrian Sampson
112d0f5452
uniquify conflicting filenames ( #182 )
2011-12-19 22:52:13 -08:00
Adrian Sampson
b493bc7004
configurable pathname substitution ( #115 )
2011-12-19 18:37:35 -08:00
Adrian Sampson
08b539a80e
fix field inference w/ null first item ( closes #14 on GitHub)
...
When a partial match is found, its first item (task.items[0]) may be None, and
_infer_album_fields would crash in this case. This solution walks through the
items list and finds the first non-None item.
2011-12-16 16:45:50 -08:00
Adrian Sampson
46a3bde5b5
fix empty function arguments
...
Previously, an empty argument was treated as "not an argument at all". Now,
every function call always has at least one argument -- i.e., %foo{} is a
function call whose only argument is "" -- and %foo{,bar} is valid syntax.
2011-12-16 12:08:39 -08:00
Adrian Sampson
255fbf6c41
add a small set of default path functions ( #231 )
2011-12-15 14:27:59 -08:00
Adrian Sampson
ae2f0db540
escape sequences now use $ instead of doubling
...
This was causing a problem with situation where }} would have semantic meaning
other than escaping a }. Specifically, %func{%func{arg}} contains a }} but
should not escape the }. $} seems to cover this situation. However, ${ is not
permitted as an escape sequence because it looks like the beginning of a symbol
(variable reference) like ${foo}. This is OK because { can be used anywhere as a
literal.
2011-12-15 00:11:57 -08:00
Adrian Sampson
829bd14993
template evaluation ( #231 )
2011-12-14 19:06:42 -08:00
Adrian Sampson
aa6008dbbc
more thorough tests for function call parsing ( #231 )
2011-12-14 18:46:56 -08:00
Adrian Sampson
b6e75dacb1
function parsing in template string parser ( #231 )
2011-12-14 18:40:54 -08:00
Adrian Sampson
b5a76e9d1e
beginnings of a template string parser ( #231 )
2011-12-14 17:30:53 -08:00
Adrian Sampson
9aef539e11
fix some ReplayGain fields (and tests)
2011-12-10 17:24:27 -08:00
Adrian Sampson
700c7cd9f8
albumart.org scraper art source ( #272 )
2011-12-07 11:11:35 -08:00
Adrian Sampson
b9d6928278
consistency policy for DB mtimes ( #227 )
2011-12-03 17:18:51 -08:00
Adrian Sampson
82367e9067
cleanup for partial match feature ( #260 )
...
- Plugins are sent the unadulterated, None-ridden ordered items lists. Changed
the lastid plugin to accommodate this.
- Make colorization optional in partial album warnings.
- Fix some tests.
2011-12-01 14:03:32 -08:00
Adrian Sampson
0b5a47a745
Merge pull request #13 from laarmen/feature/incomplete_albums
...
Tag incomplete albums (#260 on Google Code)
2011-12-01 13:04:11 -08:00
Simon Chopin
bb964a7c47
autotag: Fill the blanks when ordering incomplete album
...
In the function order_items, instead of automatically reject the
canonical candidate if it has more tracks, the function still tries to
find matches for the tracks amongst the items, and otherwise uses None
to fill the void in order to keep the information about the track
numbers
2011-11-22 13:47:36 +01:00
Simon Chopin
4dc4025b5f
autotag: Can now compute the distance for incomplete albums
...
If the user has some songs from a specific album, but not all of them,
the real solution is immediately discarded. This commit is the first of a
series that will implement support for these incomplete albums.
The point of this patch is to make sure missing commits are taken into
account when calculating the distance between an album and its canonical
data.
Note that in order not to break API compatibility, the album_distance
call for the plugins receives a purged version of both the items and the
album info, resulting in some potential accuracy if the plugin bases
itself on the index of a track in album_info.tracks.
2011-11-22 13:47:35 +01:00
Adrian Sampson
5965b37f51
skip (configurable) clutter filenames when importing
2011-11-13 17:14:40 -08:00
Adrian Sampson
02402545e0
get original release date for MB release group ( #65 )
2011-11-13 16:30:49 -08:00
Adrian Sampson
7e627c5e57
decode pathnames before formatting them ( #232 )
2011-11-13 10:10:19 -08:00
Adrian Sampson
bfb8b443ff
beginning of ReplayGain fields in MediaFile
2011-11-12 21:23:54 -08:00
Adrian Sampson
adbfd06682
embed python-musicbrainz-ngs; beets is now on /ws/2
2011-10-23 18:20:01 -07:00
Adrian Sampson
95f38dbe52
"info dictionaries" replaced with AlbumInfo and TrackInfo
2011-10-23 14:12:13 -07:00
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