Commit graph

1075 commits

Author SHA1 Message Date
Adrian Sampson
a9eb249a15 version bump: 1.0b15 2012-05-13 20:04:14 -07:00
Fabrice Laporte
16d9b53168 Update docs/reference/cli.rst: add -f option to beet list command 2012-05-13 23:52:27 +03:00
Adrian Sampson
03788cb87d Added tag 1.0b14 for changeset d3dbc6df2b96 2012-05-12 22:36:04 -07:00
Adrian Sampson
a406ae1c52 date for b14 release 2012-05-12 22:35:55 -07:00
Adrian Sampson
fb3956723c fix format string in info plugin 2012-05-12 15:21:45 -07:00
Adrian Sampson
849d50beb9 changelog note about lastgenre fallback_str (GC-358) 2012-05-09 09:40:18 -07:00
Fabrice Laporte
031ae68006 Merge pull request #36 from KraYmer/master
Issue 358:Options for when lastgenre fails to find a tag
2012-05-09 00:11:32 -07:00
kraymer
f93dd6999b correct typo 2012-05-09 09:08:55 +02: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
fc06ded87b Merge pull request #37 from nidico/master
Allow unicode in rewrite items
2012-05-08 16:13:18 -07:00
Nicolas Dietrich
a0e133ae5d Allow unicode in rewrite items
This commit makes rewrite explicitely match items using the .lower() function
instead of using Pythons builtin re.I flag.

This is required as the re.I flag only allows for case-independent pattern
matching with ascii chars. Even worse, the pattern is stored in lowercase when
using re.I, but the value to be matched isn't lowercased.

Example:

[rewrite]
artist Сергей Васильевич Рахманинов: Sergei Rachmaninoff
2012-05-09 00:21:06 +02:00
Nicolas Dietrich
f7040f922c allow unicode items in config file 2012-05-09 00:19:38 +02:00
kraymer
c4783e25f8 'Issue 358:Options for when lastgenre fails to find a tag'. Added 'fallback_str' plugin parameter to specify a fallback string when no genre found. Declare the parameter without specifying a value (= empty string) to blank the genre field when no genre found. 2012-05-08 23:41:07 +02:00
Adrian Sampson
2fb3ec47c9 changelog note about BPD random/repeat 2012-05-08 14:15:23 -07:00
Adrian Sampson
efda50023d Merge pull request #35 from djrtl/upstream
Added support for random and repeat in the bpd plugin.
2012-05-08 14:06:40 -07:00
Matteo Mecucci
030c656a75 Added support for random and repeat in the bpd plugin. 2012-05-08 22:53:17 +02:00
Adrian Sampson
6ce08c4ce6 merge 2012-05-08 11:59:41 -07:00
Adrian Sampson
f0ae35bc4a Python 2.6 on TravisCI 2012-05-08 11:59:10 -07:00
Adrian Sampson
8b25a86ee3 use 2.6-compatible format strings 2012-05-08 11:46:08 -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
5a9cc6a2d9 fix crash on 0 chroma matches for singleton 2012-05-06 21:19:13 -07:00
Adrian Sampson
1baf49b333 fix still more documentation typos 2012-05-03 17:43:58 -07:00
Adrian Sampson
76af1924ea fix ReST markup error in changelog 2012-05-03 17:24:33 -07:00
Adrian Sampson
a2c12dc78f -c CLI option overrides import_move config option 2012-05-03 17:19:28 -07:00
Adrian Sampson
a2f4940c39 factor out ImportTask.prune() utility function 2012-05-03 17:13:30 -07:00
Adrian Sampson
5ebb61bab7 moving import (#266): move album art files 2012-05-03 17:08:52 -07:00
Adrian Sampson
b327455fac prune empty directories when moving (#266) 2012-05-03 16:59:56 -07:00
Adrian Sampson
953e23cb51 use compiled template by default
The substitute() function now tries to use a pre-compiled template first. If
this raises an exception, it falls back to the slow path (interpretation).
2012-05-03 15:24:12 -07:00
Adrian Sampson
f6e06813ca fix Unicode identifiers; add performance test 2012-05-03 15:16:28 -07:00
Adrian Sampson
a8338b6676 compile template function calls 2012-05-03 15:02:42 -07:00
Adrian Sampson
cdf40bbfc6 generate expressions instead of statements 2012-05-03 14:48:23 -07:00
Adrian Sampson
953dcbbf8c first attempt at AST-generating template compiler 2012-05-03 14:40:15 -07:00
Adrian Sampson
4225c3d395 Merge pull request #34 from KraYmer/master
Fix truncation of m3u file
2012-05-02 13:51:54 -07:00
kraymer
f92d5d5e29 change m3u open mode to 'a' so file content is not reseted at each import when in 'm3u' mode 2012-05-02 21:51:37 +02:00
Adrian Sampson
104aec3c2f cleanup and docs for regular expression queries 2012-05-01 20:03:01 -07:00
Adrian Sampson
a6e6da245a Merge branch 'upstream' of https://github.com/djrtl/beets-dj
Conflicts:
	beets/library.py
2012-05-01 19:17:05 -07:00
Adrian Sampson
1ee07e116e flexible -f templates for album listings (and rdm) 2012-04-30 22:59:17 -07:00
Adrian Sampson
ef45461cf9 evaluate_template is now a method on Item 2012-04-30 21:40:02 -07:00
Adrian Sampson
792c5b5e5d cleanup and docs for -f option flexibility 2012-04-30 21:26:49 -07:00
Adrian Sampson
928730e0ed merge GH-33: more flexibility for -f arguments 2012-04-30 21:17:20 -07:00
Adrian Sampson
fa3e41c86a BPD: print messages reflecting tree (re)build 2012-04-30 12:02:00 -07:00
Adrian Sampson
6d7cbd6d2f get list of tmpl_* functions only once 2012-04-29 19:55:34 -07:00
Adrian Sampson
e85fe2d834 fix memoization presence check 2012-04-29 18:20:37 -07:00
Adrian Sampson
de87fb7489 memoize %aunique results (share among tracks) 2012-04-29 18:07:29 -07:00
Adrian Sampson
d042bed27c pre-parse path format templates
Instead of parsing the template at each call to destination(), it's now possible
to parse them *once*, a priori, and re-use the resulting template object. This
is analogous to the re module's compiled expressions.
2012-04-29 15:30:43 -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
Steve Dougherty
c93e7e443e Run functions and substitute fields in list format strings. 2012-04-29 11:11:57 -04:00
Adrian Sampson
4b253df48c ensure album art path is unique when moving
Avoid filename collisions on cover art when running a "beet move". (This is
already covered for adding new art and for moving audio files.)
2012-04-28 21:14:11 -07:00