Adrian Sampson
698e54edbc
fix bytes literals causing a Unidecode warning
...
This would trigger a warning in Unidecode when metadata was missing (which is
the only case when those empty-string literals are used). Closes #109 , which
is a different fix for the same problem.
2013-02-28 10:14:21 -08:00
Adrian Sampson
d71737114a
format None values as the empty string
...
Fix due to @pscn. Includes test. Closes #108 .
2013-02-28 10:00:26 -08:00
Adrian Sampson
c31eabe95c
convert: add missing syspath call ( closes #106 )
2013-02-27 10:30:24 -08:00
Adrian Sampson
c2e6150af5
changelog/thanks for #104
2013-02-27 10:21:14 -08:00
Adrian Sampson
f268aae17f
add --flat option to import command (GC-202)
2013-02-26 20:59:52 -08:00
Adrian Sampson
706c4fb7f6
import.detail config option (GC-263)
2013-02-26 20:36:29 -08:00
Adrian Sampson
0045880f58
change option name to "languages"; docs ( #102 )
2013-02-26 14:38:34 -08:00
Adrian Sampson
4a35be5724
fix crash when RG fields set to null
...
In general, we convert None values to type-based nulls in packed fields just
as we do for normal fields.
2013-02-24 16:10:18 -08:00
Adrian Sampson
fa9d326d39
ignore "System Volume Information" directory
...
This is a control directory on Windows whose permissions are always set very
restrictively:
http://blogs.msdn.com/b/oldnewthing/archive/2003/11/20/55764.aspx
2013-02-24 15:53:47 -08:00
Adrian Sampson
c19fd0e0e6
proceed past os.listdir errors in sorted_walk
2013-02-24 15:47:09 -08:00
Adrian Sampson
d3a00ec443
don't crash when config file is empty
2013-02-21 11:03:22 -08:00
Adrian Sampson
c2a746562a
fix Sound Check decode (GC-521)
...
Fixes the case when the gain number is negative.
2013-02-20 22:54:57 -08:00
Adrian Sampson
a1e89b879d
echonest_tempo: warn on API error
2013-02-18 18:40:59 -08:00
Adrian Sampson
63564d84e7
echonest_tempo: sanitize newlines from input
...
The Echo Nest API confusingly says that the input is missing if it contains a
newline.
2013-02-18 18:34:31 -08:00
Adrian Sampson
6f2ec68ca8
version bump: 1.1b3
2013-02-17 15:02:32 -08:00
Adrian Sampson
7a0bfff00a
summary paragraph for 1.1b2
2013-02-16 16:34:13 -08:00
Adrian Sampson
0366dc8184
fix "import -l logpath" CLI option (GC-518)
2013-02-16 14:58:53 -08:00
Adrian Sampson
d1e50da71f
fetchart: remote_priority config option
2013-02-10 21:40:55 -08:00
Adrian Sampson
3e624ea884
original_date config option (GC-441)
2013-02-08 13:45:31 -08:00
Adrian Sampson
e0bb3b5cd0
original_{year,month,day,date} fields (GC-441)
2013-02-08 13:28:51 -08:00
Adrian Sampson
15a652ab73
docs/changelog: filename length detection (GC-461)
2013-02-08 12:57:31 -08:00
Adrian Sampson
b9cb3980c2
path_sep_replace config option
...
I also took this opportunity to move and rename util.santize_for_path to
library.format_for_path, which was long overdue.
2013-02-08 10:51:33 -08:00
Adrian Sampson
7a4c228c79
style tweaks & doc expansion ( #98 )
2013-02-07 23:35:27 -08:00
Tai Lee
baa5bc5a01
Add max_rec configuration options.
...
Allow users to apply a maximum recommendation to partial albums and albums
with differing track lengths/numbers.
2013-02-08 17:42:00 +11:00
Adrian Sampson
55770ae212
changelog & style tweaks for Sound Check ( #97 )
2013-02-07 15:12:10 -08:00
Adrian Sampson
0c29c52f8c
changelog for #92
2013-02-05 11:36:27 -08:00
Adrian Sampson
5be50fbb38
echonest_tempo: skip when missing artist or title
2013-02-05 10:28:24 -08:00
Adrian Sampson
2b4a70227d
correct changelog credits for @mrmachine
2013-02-05 10:15:39 -08:00
Adrian Sampson
07e1366fc6
changelog for #94
2013-02-05 09:57:13 -08:00
Adrian Sampson
d544c832c7
changelog, docs, and style tweaks for #93
2013-02-04 22:44:04 -08:00
Adrian Sampson
48194a128e
changelog and docs for #89
2013-02-03 12:23:09 -08:00
Adrian Sampson
c706c1f15a
changelog entry / tiny doc tweaks for #90
2013-02-03 10:31:15 -08:00
Adrian Sampson
4f7e738f82
changelog and doc fixes for #88
2013-02-02 12:56:08 -08:00
Adrian Sampson
50a89e790c
both release and release group disambig ( #87 )
...
This joins the two strings with a comma if both are present.
2013-02-02 12:42:53 -08:00
Adrian Sampson
89f1ae302e
changelog and partial reversion of #87
...
This pull request made two changes. This commit reverts one of them to make the
changes orthogonal.
2013-02-02 12:37:28 -08:00
Adrian Sampson
89689899c9
changelog note and indentation fix for #86
2013-02-02 12:27:42 -08:00
Adrian Sampson
44d195a119
suffix-based colorization for numeric value diffs
2013-02-02 12:24:05 -08:00
Adrian Sampson
d050211c2c
length_diff_thresh moved to config
...
This was previously hard-coded as 2.0 seconds, which was way too low.
2013-02-02 12:07:58 -08:00
Adrian Sampson
3ef423b735
update changelog note for #82
2013-02-02 11:20:12 -08:00
Adrian Sampson
2ea190ceba
better error message when using real tabs
2013-02-02 10:37:02 -08:00
Adrian Sampson
e850e1aab8
changelog note for #85
2013-02-02 08:23:52 -08:00
Adrian Sampson
8ae40e9945
changelog and style fix for #81
2013-01-31 16:25:02 -08:00
Adrian Sampson
63d939d1d3
windows: error when migrating .beetsconfig
2013-01-31 12:29:37 -08:00
Adrian Sampson
bba0051ee7
changelog & doc tweaks for smartplaylist ( #80 )
2013-01-31 10:07:18 -08:00
Adrian Sampson
199add3a4d
changelog re. none_rec_action ( #77 )
2013-01-30 21:05:30 -08:00
Adrian Sampson
ee641e9b13
default_action config option, et cetera ( #76 )
...
- Partial matches are always downgraded to a "medium" match.
- The config option, now called "default_action", lets you choose what to do
with "medium" matches.
- Expanded the "low" recommendation level to include cases with just one
match.
2013-01-30 20:32:37 -08:00
Adrian Sampson
27be3ddae5
changelog note for #78
2013-01-30 19:32:12 -08:00
Adrian Sampson
a96e8ab3df
changelog/docs for WMA support ( #75 )
2013-01-29 21:32:44 -08:00
Adrian Sampson
58dc7be0a7
docs for new plugin events ( #79 )
2013-01-29 20:59:02 -08:00
Adrian Sampson
37a7aedaae
version bump: 1.1b2
2013-01-29 20:50:10 -08:00
Adrian Sampson
8c9ca36907
version bump and changelog summary for 1.1b1
2013-01-29 12:21:05 -08:00
Adrian Sampson
38dee5af0f
silence Unidecode warning due to byte string info
...
--HG--
extra : source : 6a023b1f3ace0ae3177afb382d0eebcb445bec05
2013-01-29 11:30:31 -08:00
Adrian Sampson
7e84e7da57
add thanks to changelog note for #74
2013-01-22 21:04:56 -08:00
Adrian Sampson
0969749e5b
cleanup, docs, and changelog for relative_to ( #74 )
2013-01-22 21:02:41 -08:00
Adrian Sampson
7779a5c6f5
replaygain: catch Unicode exc on Windows (GC-499)
...
(grafted from 89cee0e842b4e553790b0db7daaf2fd31d217e15)
--HG--
extra : source : 89cee0e842b4e553790b0db7daaf2fd31d217e15
2013-01-12 14:38:19 -08:00
Adrian Sampson
f207a3b72e
backported lyrics fix
2013-01-11 14:55:31 -08:00
Adrian Sampson
9e6b1db02d
configurable match thresholds (GC-290)
2013-01-11 14:46:15 -08:00
Adrian Sampson
c418e6d379
configurable MusicBrainz host/rate limit (GC-408)
2013-01-11 13:33:14 -08:00
Adrian Sampson
974929541f
terminal_encoding config option (GC-472)
2013-01-11 13:07:57 -08:00
Adrian Sampson
d6c7cfa4e3
lyrics: replace apostrophes with ' (GC-498)
2013-01-11 10:51:22 -08:00
Adrian Sampson
f7bef39769
GH-72: use function bodies instead of special var
2013-01-05 17:48:00 -08:00
Adrian Sampson
14b5170aec
GH-72: some cleanup and changelog note
2013-01-05 17:20:39 -08:00
Adrian Sampson
f127d8e18a
merge scrub fix from master
2012-12-31 18:25:51 -08:00
Adrian Sampson
287d00179a
scrub: fix Py27-style format string (GC-484)
2012-12-31 18:11:31 -08:00
Adrian Sampson
628f4816cd
merge changelog note and tag from master release
2012-12-31 16:53:20 -08:00
Adrian Sampson
71fd8d5030
version numbers for 1.0rc2 release
2012-12-31 16:31:48 -08:00
Adrian Sampson
5d210f755c
merge fix from master
2012-12-29 13:07:09 -08:00
Adrian Sampson
082932069f
echonest_tempo: catch IO errors (GC-482)
2012-12-26 17:16:59 -08:00
Adrian Sampson
123189b393
default file locations
...
Due mostly to some improvements in Confit, we now have a reasonable way to
define the default filenames of auxiliary data files. These are relative to the
beets config directory (i.e., alongside config.yaml).
2012-12-23 18:01:21 -08:00
Adrian Sampson
51e9c519d4
plugin renames: fuzzy and random
...
Renamed fuzzy_search to fuzzy and rdm to random. These names should be easier
to remember since they are the same as the commands they provide.
--HG--
rename : beetsplug/fuzzy_search.py => beetsplug/fuzzy.py
rename : beetsplug/rdm.py => beetsplug/random.py
rename : docs/plugins/fuzzy_search.rst => docs/plugins/fuzzy.rst
rename : docs/plugins/rdm.rst => docs/plugins/random.rst
2012-12-23 14:46:20 -08:00
Adrian Sampson
6b000983c3
merge echonest_tempo fix from master
2012-12-23 14:34:08 -08:00
Adrian Sampson
1809de1500
GH-71: changelog note & retry limit
2012-12-21 23:10:30 -08:00
Adrian Sampson
2451571dbe
version bump to "1.1b1"
2012-12-19 12:25:48 -08:00
Adrian Sampson
2023344019
Windows: fix relative paths in normpath()
...
The changes introduced in rc1 caused paths to be syspath-ified before they were
passed to os.path.abspath. The magic prefix caused them to be interpreted as
absolute paths even if they were relative. The fix is, in this *isolated*
case, to use Unicode but prefix-free paths in calls to the os.path.* functions.
Those functions need to act on Unicode objects but seem to be purely syntactic
-- nothing is tripped up by using long filenames without the magic prefix.
2012-12-19 12:19:23 -08:00
Adrian Sampson
0c49db0f11
fetchart: fix exception when source returns None
2012-12-17 23:22:45 -08:00
Adrian Sampson
6082f0162f
changelog summary for 1.0rc1
2012-12-17 18:04:39 -08:00
Adrian Sampson
49ae56e455
embedart: changelog for GC-468
2012-12-11 13:53:02 -08:00
Adrian Sampson
98892945c2
don't crash when singleton-importing broken files
2012-12-08 12:10:06 -08:00
Adrian Sampson
3e9135ee7c
syspath-ify call to pyacoustid (GC-464)
2012-12-07 14:49:11 -08:00
Adrian Sampson
128a881bb4
GH-69/GC-450: docs, changelog, simplification
2012-12-05 09:10:07 -08:00
Adrian Sampson
a8cf42d05b
echonest_tempo: changelog + doc fixes + print fix
2012-12-02 16:25:45 -08:00
Adrian Sampson
9a4cda60cd
autotag: use albumartist if available (GC-423)
2012-11-27 17:05:56 -08:00
Adrian Sampson
eef87c2189
truncation incorporates extension length (GC-461)
2012-11-27 16:54:50 -08:00
Adrian Sampson
953291f736
truncate bytes instead of unicode (GC-422)
2012-11-27 16:43:57 -08:00
Adrian Sampson
da3ffcbec3
version change: b16 is now 1.0rc1
2012-11-27 15:56:02 -08:00
Adrian Sampson
859268f707
decode Unicode arguments to import -L (GC-457)
2012-11-06 14:29:58 -08:00
Adrian Sampson
c569ddd412
human-readable mkdir error
2012-11-03 12:16:32 -07:00
Adrian Sampson
289287690e
more helpful changelog about maxsize
2012-11-01 15:33:38 -07:00
Adrian Sampson
29c6f9c342
changelog and light style fixes for #64
2012-10-31 17:52:21 -07:00
Adrian Sampson
57e66d7b1a
fetchart: sort image filenames (GC-452)
2012-10-25 18:02:22 -07:00
Adrian Sampson
1a94d9e4b7
warnings about using syspath with some utils
...
Also pertaining to #58 : for most utility functions, paths should *not* be
`syspath`-ified. (This only occurs right before a path is sent to the OS.) In
fact, as @Wessie discovered, using the result of `syspath` with `ancestry` leads
to incorrect behavior. I checked and this should not currently happen anywhere,
but these docstring changes make that requirement explicit.
2012-10-21 14:27:40 -07:00
Adrian Sampson
91ad913399
#62 : simplify list (and random) code
...
With the new centralized print_obj function, we can greatly simplify the code
for the list command. This necessitated a couple of additional tweaks:
- For performance reasons, print_obj can now take a compiled template. (There's
still an issue with using the default/configured template, but we can cross
that bridge later).
- When listing albums, $path now expands to the album's item dir. So the format
string '$path' now exactly corresponds to passing the -p switch.
As an added bonus, we can now also reduce copypasta in the random plugin (which
behaves almost exactly the same as list).
2012-10-20 21:10:39 -07:00
Adrian Sampson
3952fbec62
docs & changelog for pervasive format config ( #62 )
...
This version of the (renamed) _print_obj function uses introspection to
determine whether we're printing an Album or an Item. It's like function
overloading for Python! 😁
2012-10-20 20:29:49 -07:00
Adrian Sampson
b9cc206093
changelog & cleanup for pull request #59
2012-10-20 16:57:56 -07:00
Adrian Sampson
b81ac1d6e0
fix crash when stdin comes from pipe w/o encoding
...
This allows, for example, "yes | beet convert".
2012-10-15 14:58:59 -07:00
Adrian Sampson
f2ab26d6a4
mbcollection: change chunk size to 200 releases
2012-10-14 20:35:03 -07:00
Adrian Sampson
244ffd71e2
fix "beet modify" for date fields (GC-449)
...
This is fixed by allowing MediaFiles to convert strings to integers on
assignment. An eventual complete fix will perform these type conversions in the
Item interface.
2012-10-14 20:27:13 -07:00
Adrian Sampson
526e82feaf
move cpu_count to util module; credit @storrgie
2012-10-14 14:09:03 -07:00
Adrian Sampson
b9e2beddec
replaygain: changelog & doc enhancements for GH-55
2012-10-12 22:42:08 -07:00
Adrian Sampson
d8433f977c
convert: changelog thanks & doc enhancements
2012-10-12 22:11:07 -07:00
Adrian Sampson
71a5a5b02f
only load plugins from specified modules
...
Eliminate the __subclasses__ trick for finding all plugins. Now we explicitly
look in each plugin module for a plugin class. This allows us to import plugin
modules with unintentionally loading them. This lets us reuse the image
embedding machinery without copypasta.
2012-10-12 21:55:54 -07:00
Jakob Schnitzer
e316d0ea30
convert: PEP8, changelog note and license
2012-10-11 17:10:28 +02:00
Adrian Sampson
cb93900888
changelog & docs for "beet stats --exact"
2012-10-07 15:13:49 -07:00
Adrian Sampson
114cea0da6
changelog: ihate plugin
2012-10-06 18:42:38 -07:00
Adrian Sampson
56958d175b
docs + changelog for GH-50 (lastgenre command)
2012-10-04 09:47:59 -07:00
Adrian Sampson
5f7d280987
changelog note about @KraYmer's lastgenre feature
2012-09-30 14:06:21 -07:00
Adrian Sampson
4aac7f5324
zero: changelog note & doc improvements
2012-09-25 14:15:33 -07:00
Adrian Sampson
e092af2b2f
changelog note: fuzzy_search plugin
2012-09-18 10:33:58 -07:00
Adrian Sampson
201571bf93
changelog note &c. for "the" plugin (GH-47)
2012-09-17 11:11:22 -07:00
Adrian Sampson
c056467c5d
friendly error message in Item.write (GC-437)
2012-09-17 10:36:48 -07:00
Adrian Sampson
ef248576f0
bpd: fix crash w/ unicode extensions (GC-439)
2012-09-17 10:24:34 -07:00
Adrian Sampson
a9fc483a36
importfeed: fix "link" mode w/ unicode paths
2012-09-11 17:32:43 -07:00
Adrian Sampson
dc054907d5
fix non-string value matching in SubstringQuery
2012-09-09 12:17:13 -07:00
Adrian Sampson
90b3dba085
fix match() on RegexpQuery for non-string values
2012-09-08 16:24:39 -07:00
Adrian Sampson
931a6b636b
fix for plugins not modifying files' tags
2012-09-02 16:00:18 -07:00
Adrian Sampson
08d8e6c55b
changelog about web "attachment" change (GH-46)
2012-08-27 12:01:42 -07:00
Adrian Sampson
473fe04f91
web: add size to item JSON in API
...
This is to be used by the Tomahawk resolver, which wants file sizes.
2012-08-24 19:20:27 -07:00
Adrian Sampson
6200f0a4c8
scrub: remove all types of tags
2012-08-24 15:39:13 -07:00
Adrian Sampson
420c78ff1b
lyrics: fix UnicodeDecodeError with non-ASCII text
2012-08-19 13:42:43 -07:00
Adrian Sampson
07d00da825
album-only field queries; ^$ match empty string
2012-08-17 10:54:30 -07:00
Adrian Sampson
30ac59f3d2
allow $path in "beet list -f" templates
2012-08-16 09:00:55 -07:00
Adrian Sampson
22836be22e
fix search/DB server disagreement crash (GC-418)
2012-08-12 22:37:10 -07:00
Adrian Sampson
96de3ee400
add track mapping to album_distance plugin method
2012-08-03 18:12:58 -07:00
Adrian Sampson
701d8cf204
fetchart: fix extension-less files from CAA
2012-08-02 09:46:57 -07:00
Adrian Sampson
15ead780d3
1.0b15 release date
2012-07-26 09:35:12 -07:00
Adrian Sampson
1f5ae6600b
warning when using unrecognized fields in queries
2012-07-25 15:41:22 -07:00
Adrian Sampson
24491051d1
clean up changelog for b15 release
2012-07-24 14:40:01 -07:00
Adrian Sampson
b20367dd41
import: allow relative paths on Windows
2012-07-17 12:00:27 -07:00
Adrian Sampson
44459f88d0
Windows: represent paths as UTF-8 internally
...
When we store paths in the database, we always use bytestrings for consistency.
But on Windows, these paths are converted back to Unicode before they reach the
FS API. This means that the codec used internally is immaterial.
However, we were naively using sys.getfilesystemencoding() for this internal
representation. On Windows, this is MBCS, a broken encoding that can't represent
all of Unicode. This change replaces that with UTF-8, a "real" codec.
The decoding bit now tries UTF-8 and falls back to MBCS for compatibility with
existing databases. The reality, however, is that existing databases may not
work with this change -- a byte string may represent something different in
UTF-8 from what it represents in MBCS. So users should recreated their DBs if
anything goes wrong.
2012-07-17 10:54:47 -07:00
Adrian Sampson
ba80e1578a
revise changelog/docs mention of cover art source
2012-07-09 14:16:40 -07:00
Adrian Sampson
52aec35bf8
changelog note about unicode replacement fix
2012-07-09 10:00:20 -07:00
Adrian Sampson
883977d2e9
merge
2012-07-03 17:12:34 -07:00
Adrian Sampson
45b146ed2b
changelog typos
2012-07-03 09:31:20 -07:00
Adrian Sampson
525376b4b9
docs for unmatched-tracks matches
2012-07-01 16:56:21 -07:00
Adrian Sampson
6503e85a57
fetchart: autofetch option
...
This necessitated a slight refactoring in the plugin event handling mechanism.
Rather than loading all handlers up front and storing them in a module-scope
structure, we now scan for event handlers at every send(). This is probably
very slightly less efficient but allows for more flexible logic.
2012-06-24 19:01:19 -07:00
Adrian Sampson
fbb5823541
fetchart: command to manually download art
2012-06-24 18:27:00 -07:00
Adrian Sampson
77cbb19564
fetchart: get local art for as-is imports (GC-339)
2012-06-24 17:41:37 -07:00
Adrian Sampson
d807b3fbf1
Cover Art Archive support (GC-71)
2012-06-24 16:57:04 -07:00
Adrian Sampson
11d4fb1abb
move album art fetching to a plugin (fetchart)
2012-06-24 00:34:50 -07:00
Adrian Sampson
f5962f45d8
merge
2012-06-23 17:20:02 -07:00
Adrian Sampson
073ee14e56
fix broken matching of path format queries ( #405 )
...
A bug in the shlex module with Unicode strings made these queries unparseable
and thus match every track.
2012-06-23 17:18:28 -07:00
Adrian Sampson
7e6e5e5dca
nicer error message when stdin is EOF'd
2012-06-21 17:37:45 -07:00
Adrian Sampson
ad4b7f8ff5
new plugin event: import_task_files
2012-06-14 12:41:39 -07:00
Adrian Sampson
c5424dce05
lastgenre and lyrics: use new pluggable import stages
...
This solves a problem where files were copied before the genre field was
updated, resulting in problems when $genre was used in a path (GC-357).
2012-06-08 15:17:49 -07:00
Adrian Sampson
48ffa08928
plugin import stages
2012-06-08 14:49:04 -07:00
Adrian Sampson
0259e7a728
changelog note about new locking (GC-399)
2012-06-08 11:44:59 -07:00
Adrian Sampson
d83c1fad6b
chroma: use multiple recording candidates
2012-06-06 12:35:25 -07:00
Adrian Sampson
01fe59955e
changelog note for BPD crash (GH-40)
2012-06-03 23:03:28 -07:00
Adrian Sampson
bfa3c5c806
length differences now shown as "X vs. Y"
...
Previously, they would be shown as "X -> Y", which made multiple users think
that beets was doing something to change the length of the track.
2012-05-30 16:44:20 -07:00
Adrian Sampson
e00f15175a
prune is a no-op when file exists
...
i.e., when moving a file that's already at its destination.
2012-05-30 16:39:47 -07:00
Adrian Sampson
66e75c398d
embedart: log & skip unreadable audio files
2012-05-21 10:47:17 -07:00
Adrian Sampson
b3e0724676
send prompts to stdout (GC-389)
2012-05-20 11:42:53 -07:00
Adrian Sampson
c0da62c2b7
multi-artist sort names
2012-05-19 16:35:52 -07:00
Adrian Sampson
711a1c1113
apply artist credits & add to database (GC-286)
2012-05-19 16:13:15 -07:00
Adrian Sampson
b04096de25
do not preserve metadata during copy-move (GC-383)
...
The shutil.move() function attempts to copy metadata (e.g., permissions and
mtime) when copying a file across filesystems. This always fails on Samba shares
because the utime() call is never permitted by normal users. We don't care about
preserving mtimes across moves, though, so this commit eschews shutil and
reimplements the move algorithm.
2012-05-19 11:52:53 -07:00
Adrian Sampson
395ba21013
preserve tracebacks in verbose mode ( #387 )
2012-05-18 15:42:20 -07:00
Adrian Sampson
13995201a1
human-readable filesystem errors ( #387 )
2012-05-18 15:16:38 -07:00
Adrian Sampson
90884389c5
prevent MusicBrainz exceptions from halting import
...
Previously, exceptions while communicating with the MusicBrainz API would bring
down the entire autotagging process. These errors are depressingly common, so we
now handle them and log errors to the console (much as we already do with any
exception raised by the Mutagen module). Fault isolation!
This has the added side-effect of giving better context for MB errors when they
do happen -- the logged errors now show the query that was running when MB
failed.
2012-05-18 12:04:44 -07:00
Adrian Sampson
face0ba323
chroma submission: fix crash; better errors
2012-05-17 14:54:58 -07:00
Adrian Sampson
2b000c47a2
per_disc_numbering config option (GC-335)
2012-05-17 12:44:48 -07:00
Adrian Sampson
0e9f296cf0
correct ID3 tag name for catalognum (GC-385)
2012-05-17 11:46:01 -07:00
Adrian Sampson
a6c1ad2235
reimporting with copying: copy external files
2012-05-17 11:42:58 -07:00
Adrian Sampson
1015eb134d
changelog note about mpdupdate fix (GH-39)
2012-05-17 10:09:17 -07:00
Adrian Sampson
c1d28252be
use section headings for config options
...
Previously, we were using a definition list. This way things are easier to link
to. It will also likely scale better as we add more config options.
2012-05-16 17:37:38 -07:00
Adrian Sampson
9979c5a826
separate config options for item and album formats
...
Extends GC-362 (GH-38) to use two different config options: one for albums and
one for items.
2012-05-16 17:01:14 -07:00
Adrian Sampson
dfcd47942d
new plugin event: library_opened
2012-05-15 12:39:04 -07:00
Adrian Sampson
c9da7bf3f8
new plugin event: import_task_choice
2012-05-15 12:33:57 -07:00
Adrian Sampson
a9eb249a15
version bump: 1.0b15
2012-05-13 20:04:14 -07:00
Adrian Sampson
a406ae1c52
date for b14 release
2012-05-12 22:35:55 -07:00
Adrian Sampson
849d50beb9
changelog note about lastgenre fallback_str (GC-358)
2012-05-09 09:40:18 -07:00
Adrian Sampson
9dc0ac6ded
changelog summary paragraph
2012-05-08 19:07:35 -07:00
Adrian Sampson
da2364a747
changelog note for unicode rewrite fix
2012-05-08 16:19:37 -07:00
Adrian Sampson
2fb3ec47c9
changelog note about BPD random/repeat
2012-05-08 14:15:23 -07:00
Adrian Sampson
a28f930c52
transaction objects to control DB access
...
In an attempt to finally address the longstanding SQLite locking issues, I'm
introducing a way to explicitly, lexically scope transactions. The Transaction
class is a context manager that always fully fetches after SELECTs and
automatically commits on exit. No direct access to the library is allowed, so
all changes will eventually be committed and all queries will be completed. This
will also provide a debugging mechanism to show where concurrent transactions
are beginning and ending.
To support composition (transaction reentrancy), an internal, per-Library stack
of transactions is maintained. Commits only happen when the outermost
transaction exits. This means that, while it's possible to introduce atomicity
bugs by invoking Library methods outside of a transaction, you can conveniently
call them *without* a currently-active transaction to get a single atomic
action.
Note that this "transaction stack" concepts assumes a single Library object per
thread. Because we need to duplicate Library objects for concurrent access due
to sqlite3 limitation already, this is fine for now. Later, the interface should
provide one transaction stack per thread for shared Library objects.
2012-05-06 23:24:05 -07:00
Adrian Sampson
76af1924ea
fix ReST markup error in changelog
2012-05-03 17:24:33 -07:00
Adrian Sampson
104aec3c2f
cleanup and docs for regular expression queries
2012-05-01 20:03:01 -07:00
Adrian Sampson
792c5b5e5d
cleanup and docs for -f option flexibility
2012-04-30 21:26:49 -07:00
Adrian Sampson
fa3e41c86a
BPD: print messages reflecting tree (re)build
2012-04-30 12:02:00 -07:00
Adrian Sampson
c4f9b452da
docs for %aunique ( #190 )
2012-04-29 14:52:03 -07:00
Adrian Sampson
2087ff6e41
add items to DB before moving/copying ( #190 )
...
Previously, all files would be moved/copied/deleted before the corresponding
Items and Albums were added to the database. Now, the in-place items are added
to the database; the files are moved; and then the new paths are saved to the
DB. The apply_choices coroutine now executes two database transactions per task.
This has a couple of benefits:
- %aunique{} requires album structures to be in place before the destination()
call, so this now works as expected.
- As an added bonus, the "in_album" parameter to move() and destination() --
along with its associated ugly hacks -- is no longer required.
2012-04-29 14:14:11 -07:00
Adrian Sampson
9c10d8163b
back out readline addition ( #376 )
2012-04-19 10:21:39 -07:00
Adrian Sampson
7736e279fe
typo in changelog for --noincremental
2012-04-15 21:44:36 -07:00
Adrian Sampson
a64dea25b2
docs for @djrtl's changes ( #30 )
2012-04-15 14:24:52 -07:00
Adrian Sampson
ccaf0031cd
changelog: wiki link and readline
2012-04-10 14:14:47 -07:00
Adrian Sampson
6b696c842f
cleanup and docs for import_move (GH-26, GC-266)
...
- Copying and moving are mutually exclusive. Moving overrides copying so the
user only has to add one line ("import_move: true") to disable copying and
enable moving in its place.
- Deleting is only possible when copying.
- Deprecating the "delete" option (moving is almost always better).
- Removed command-line switch for moving. It's somewhat "unsafe", so this
removes some potential for accidental irreversible changes.
- Changelog & thanks.
- Update docs to refer to import_move instead of import_delete as the
correct solution for ending up with only one copy of the file.
2012-04-10 13:41:24 -07:00
Adrian Sampson
d8776b3ed2
doc fixes
...
(I obviously don't know how to use git-cherry-pick.)
2012-04-10 12:11:23 -07:00
Adrian Sampson
251026b759
add a new batch of metadata fields
...
The new fields are:
ALBUM: mb_releasegroupid asin catalognum script language country albumstatus
media albumdisambig
TRACK: disctitle encoder
These are not yet parsed from MusicBrainz responses (just added to MediaFile
and the database).
2012-04-04 00:52:57 -07:00
Adrian Sampson
ffa2402ff4
revamp default character substitutions
...
There's no longer a distinction between Unix and Windows substitutions. Enough
users reported problems with Windows-forbidden characters on Samba shares that
it seems appropriate to make all filenames Windows-safe, even on Unix. Users who
really want those additional characters (<>:"?*|\) can re-enable them via the
"replace" option. Nobody has complained about beets being *too* conservative.
This also adds sanitization of control characters, which is an all-around good
idea, and the substitution now runs in the Unicode (rather than byte) domain.
2012-04-03 14:22:38 -07:00
Adrian Sampson
44bcc5b3bd
chroma: "beet submit" command ( #332 )
2012-04-01 20:41:27 -07:00
Adrian Sampson
01dce53212
store Acoustid data in DB & file
...
This is accomplished via a new event, "import_task_apply", which is called
right after metadata is applied to newly-imported items.
This change makes chroma REQUIRE a new version (0.6) of pyacoustid. Users with
older versions installed will see complaints about a missing method
"fingerprint_file".
2012-04-01 19:38:46 -07:00
Adrian Sampson
781c26ffd0
normalize to NFC on non-Mac platforms ( #367 )
2012-03-27 10:44:11 -07:00
Adrian Sampson
037f751e23
display track count for failed album matches
2012-03-27 10:24:27 -07:00
Adrian Sampson
823e36ad01
normalize new filenames to with NFD
2012-03-26 12:14:30 -07:00
Adrian Sampson
3c4d8500e5
sort by sort names
2012-03-25 17:35:07 -07:00
Adrian Sampson
2f1ac61d4f
track and album artist sort names (GH-25, GC-77)
...
Previously, there was just an "artist sort name" field -- now there's a
corresponding sort name for both track artists and album artists. I also made
the names shorter (artist_sort and albumartist_sort).
2012-03-25 17:02:52 -07:00
Adrian Sampson
2466305d7e
add MusicBrainz collection plugin by @jeffayle
2012-03-23 11:34:57 -07:00
Adrian Sampson
ca29bd6dd1
credit for random plugin ( #24 )
2012-03-23 10:36:14 -07:00
Adrian Sampson
7e6cdd75d6
docs & changelog for rdm plugin
2012-03-23 10:26:50 -07:00
Adrian Sampson
22e8695172
BPD: use playbin2 instead of playbin ( #364 )
2012-03-21 14:25:01 -07:00
Adrian Sampson
c7840bbbf0
docs/changelog for duplicate resolution ( #164 )
2012-03-20 14:36:11 -07:00
Adrian Sampson
af0da7d1b6
m3uupdate docs, changelog, and cleanup ( #23 )
2012-03-18 16:42:12 -07:00
Adrian Sampson
aa36fa288c
version bump: b14
2012-03-17 12:03:28 -07:00
Adrian Sampson
b49beac9bb
add release date to changelog
2012-03-16 09:55:30 -07:00
Adrian Sampson
1b1b8c4ae3
cleanup/docs for list formatting ( #203 ; #22 on GH)
2012-03-14 14:51:13 -07:00
Adrian Sampson
194f224687
changelog about colorama ( #21 on GitHub)
2012-03-14 14:23:31 -07:00
Adrian Sampson
2d3c9d9f9a
suppress more pylast errors ( #349 )
2012-02-26 17:57:40 -08:00
Adrian Sampson
8fca659392
log errors when fingerprinting fails
2012-02-26 17:51:19 -08:00
Adrian Sampson
a71961d7df
changelog intro for b13
2012-02-19 13:54:19 -08:00
Adrian Sampson
2f38a42fe7
deduplicate track matches ( #247 )
2012-02-19 13:46:34 -08:00
Adrian Sampson
982f5849e2
show track lengths in difference display ( #121 )
2012-02-19 13:06:36 -08:00
Adrian Sampson
531ebd19bb
import log: flush on write; close on crash ( #337 )
2012-02-19 12:40:44 -08:00
Adrian Sampson
62cf26806c
strip characters in replacement
2012-02-19 12:19:55 -08:00
Adrian Sampson
ca53bc8935
changelog for "list" fix
2012-02-17 15:45:37 -08:00
Adrian Sampson
6d2df0e4bf
import_delete: delete local album art ( #242 )
2012-02-15 16:46:23 -08:00
Adrian Sampson
153f52a6eb
import_delete prunes empty imported directories ( #243 )
2012-02-09 15:06:33 -08:00
Adrian Sampson
08e93a5309
plugin API to extend MediaFile ( #324 )
2012-02-09 14:35:47 -08:00
Adrian Sampson
72659975a2
bitrate for AAC files falls back to estimation
...
Apparently, info.bitrate can be zero for AAC files when the information is not
available in the header. MediaFile now falls back to estimation when this is
true.
2012-02-09 12:05:57 -08:00
Adrian Sampson
7522468f0e
set disc and disctotal when autotagging ( #226 )
2012-02-07 18:03:31 -08:00
Adrian Sampson
74f14a7aeb
fix plugin errors with missing sections
2012-01-31 18:52:27 -08:00
Adrian Sampson
cd63be80ba
fix malformed query with AND/OR operators ( #327 )
2012-01-31 15:37:30 -08:00
Adrian Sampson
bb4be3a303
lower case extensions in destination ( #331 )
2012-01-31 15:11:19 -08:00
Adrian Sampson
337e2556a6
sanitize path components from plugins ( #315 )
2012-01-30 16:53:05 -08:00
Adrian Sampson
23e30bf72a
CLI error when log file can't be opened ( #326 )
2012-01-30 16:29:22 -08:00
Adrian Sampson
eb8b194508
handle acoustid response w/ no recording ( #322 )
2012-01-29 17:50:03 -08:00
Adrian Sampson
b7c9d2caf5
prevent divide-by-zero in bitrate property ( #319 )
2012-01-29 14:08:23 -08:00
Adrian Sampson
7b265e353d
print a better error for exceptions raised from inline snippets
2012-01-29 13:27:47 -08:00
Adrian Sampson
fe33926038
add new audio properties to library/DB
...
$samplerate now expands to "##kHz" in path formats.
2012-01-27 16:04:51 -08:00
Adrian Sampson
dfb0eff8e3
displayable_path() wrap for config path logging
2012-01-27 12:27:53 -08:00
Adrian Sampson
4a1e8fdd6e
merge
2012-01-27 12:04:44 -08:00
Adrian Sampson
f685bdd89a
unicode in str MediaFile fields ( #311 , closes #15 )
2012-01-27 12:02:26 -08:00
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
dbab290ba4
fix rewrite bug w/ multiple rules for a single field
2012-01-25 13:32:22 -08:00
Adrian Sampson
01a54e2e0e
first stab at revamped lyrics plugin ( #137 )
2012-01-19 12:25:11 -08:00
Adrian Sampson
7817d6e1c4
changelog summary
2012-01-16 21:24:16 -08:00
Adrian Sampson
347a29b0f6
rewrite plugin
...
--HG--
rename : docs/plugins/inline.rst => docs/plugins/rewrite.rst
2012-01-16 20:48:23 -08:00
Adrian Sampson
307560a6c9
ignore all .* files by default ( #293 )
2012-01-16 17:09:25 -08:00
Adrian Sampson
9920cc482c
add "scrub" plugin ( #280 )
...
--HG--
rename : beetsplug/embedart.py => beetsplug/scrub.py
rename : docs/plugins/embedart.rst => docs/plugins/scrub.rst
2012-01-02 14:03:28 -08:00
Adrian Sampson
75d4e15e92
remove missing-length distance penalty
...
Previously, the thinking went that if the MB database didn't have a length, we
should penalize the track maximally in order to avoid prioritizing a bad match
just because its information was incomplete. As it turns out, though, missing
track lengths are pretty common and this was causing more problems than it was
solving; this way, mysteriously high distances won't appear.
2012-01-01 13:49:53 -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
890021008a
inline plugin: define template fields in config ( #169 )
2011-12-27 14:43:58 -08:00
Adrian Sampson
b44195853c
zero-pad date values in path formats ( #282 )
2011-12-22 15:57:02 -08:00
Adrian Sampson
93678307ef
lastgenre now writes tags to files ( #279 )
...
This was accomplished by adding a new "config" parameter to the *_imported
events so that the handlers can check whether writing is enabled.
2011-12-20 17:49:11 -08:00
Adrian Sampson
112d0f5452
uniquify conflicting filenames ( #182 )
2011-12-19 22:52:13 -08:00
Adrian Sampson
bf638e2112
changelog note about incremental import message
2011-12-19 19:56:00 -08:00
Adrian Sampson
b493bc7004
configurable pathname substitution ( #115 )
2011-12-19 18:37:35 -08:00
Adrian Sampson
0cc92e482b
remove lastid plugin
2011-12-17 22:05:11 -08:00
Adrian Sampson
101f18bc01
remove -p flag, which has outlived its usefulness
2011-12-17 22:04:07 -08:00
Adrian Sampson
c0115ad958
ignore .fuse_hidden* files
2011-12-17 21:55:12 -08:00
Adrian Sampson
91901fc379
plugin-extensible path format fields ( #169 )
2011-12-17 21:29:15 -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
621b3d4bb7
link to plugin template format docs
2011-12-16 12:18:44 -08:00
Adrian Sampson
69845f2b24
documentation for function calls ( #231 )
2011-12-15 18:42:25 -08:00
Adrian Sampson
59b4338f81
fix BPD lsinfo results for libmpc ( #277 )
2011-12-14 14:04:00 -08:00
Adrian Sampson
7372f72185
version bump: 1.0b12
2011-12-13 17:32:04 -08:00
Adrian Sampson
68840e4ec8
fix a silly ReST error in changelog
2011-12-12 18:45:20 -08:00
Adrian Sampson
c34e7dfc22
clean up changelog
2011-12-12 18:25:38 -08:00
Adrian Sampson
700c7cd9f8
albumart.org scraper art source ( #272 )
2011-12-07 11:11:35 -08:00
Adrian Sampson
8736d359c6
"timeout" config value ( #261 )
2011-12-04 18:46:35 -08:00
Adrian Sampson
5111537cde
handle EOFError when ~/.beetsstate is corrupted ( #271 )
2011-12-03 15:37:29 -08:00
Adrian Sampson
d1e43e9346
docs for partial album matches ( #260 )
2011-12-01 14:26:30 -08:00
Adrian Sampson
1ba4d74a75
use better default paths on Windows ( #241 )
2011-11-27 23:33:11 -08:00
Adrian Sampson
35d1f2420b
document multi-disc album collapsing ( #42 )
2011-11-26 15:59:30 -08:00
Adrian Sampson
78dca315d4
slightly clean up mtime feature; changelog mention
2011-11-22 00:11:45 -08: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
d63924b142
docs for replaygain plugin ( #248 )
2011-11-13 15:51:11 -08:00
Adrian Sampson
7e627c5e57
decode pathnames before formatting them ( #232 )
2011-11-13 10:10:19 -08:00
Adrian Sampson
f2bb220f5a
chroma plugin (for acoustid fingerprinting) ( #152 )
...
--HG--
rename : docs/plugins/lastid.rst => docs/plugins/chroma.rst
2011-11-12 15:33:00 -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
c891dac3ec
fix crash with "as Tracks" import option ( #244 )
2011-10-09 13:34:30 -07:00
Adrian Sampson
ec49fca4dc
smarter MBID input (based on patch by derwin)
2011-10-07 15:33:19 -07:00
Adrian Sampson
b62b462b1e
file-based genre whitelist & cleanup
...
--HG--
rename : beetsplug/lastgenre.py => beetsplug/lastgenre/__init__.py
2011-10-07 12:51:38 -07:00
Adrian Sampson
d6431b992e
lastgenre plugin ( #139 )
2011-09-23 12:33:47 -07:00
Adrian Sampson
f63d2e5167
release date
2011-09-22 09:52:55 -07:00
Adrian Sampson
f850928845
translate changelog
2011-09-17 16:41:35 -07:00