Commit graph

626 commits

Author SHA1 Message Date
Adrian Sampson
d6dac1d35b scrub: no need to save after delete()
The delete() method on Mutagen objects writes the file directly. Calling
save() was unnecessary and, in at least one case we found, could inadvertently
preserve non-standard tags that Mutagen did not understand.
2013-10-08 14:49:29 -07:00
Adrian Sampson
c0c01b2680 id3v23 config option (fix #388) 2013-10-06 20:20:18 -07:00
Adrian Sampson
64dcd283f8 fix ihate docs example (fix #393) 2013-10-06 12:16:56 -07:00
Adrian Sampson
a6798f9ba3 #380: Template.safe_substitute
This way, you almost never need to use the $$ escape sequence.
2013-10-06 12:01:42 -07:00
Adrian Sampson
5e82b670f9 #380: shortcut/compatibility options
These config options make it easier to customize the command (no need to make
a single-element formats dict). And the opt config option provides backwards
compatibility with the previous style.
2013-10-06 11:57:32 -07:00
Adrian Sampson
d828d7aae4 #380: correctly skip no-op transcodes
The format key is now the (lower-cased) format name string used by beets,
which means we can precisely detect which transcodes would be unnecessary. To
facilitate this, I added an ALIASES dict which allows more convenient names to
work for this (e.g., "wma" is easier to remember than "windows media").
2013-10-06 11:21:56 -07:00
Adrian Sampson
2aebec0928 #397: shorter option name, docs, changlog
I changed the option name from "multiple_genres" to "multiple".
2013-10-06 10:34:32 -07:00
Adrian Sampson
6d07b7e4b5 use _dirty.discard, not _dirty.remove
In the case where the field has not actually changed, don't throw a KeyError;
just proceed silently.
2013-10-06 10:03:24 -07:00
Adrian Sampson
787918fdc3 changelog, tests, slight reorg for #187 2013-09-30 11:13:13 -07:00
Adrian Sampson
bd0580680f move directory pruning later in import process
Fixes a thing where pruning would remove the album art before fetchart could
get it.
2013-09-29 18:29:49 -07:00
Adrian Sampson
bb21ec692e lastgenre: add album.save() 2013-09-25 08:45:18 -07:00
Adrian Sampson
a6bf633355 skeletal autodoc-based API docs 2013-09-24 20:57:24 -07:00
Adrian Sampson
e6725b6973 docs: reorg plugins section; add dev section
--HG--
rename : docs/plugins/writing.rst => docs/dev/plugins.rst
2013-09-24 20:33:46 -07:00
Adrian Sampson
60f592ec9f changelog for #391 2013-09-23 15:14:27 -07:00
Johann Klähn
5414dc80d2 allow and expand home directory in mpdupdate socket
This allows you to use a socket in your home directory (e.g.
`~/.mpd/socket`) without having to specify the full path including the
username (which can change from machine to machine).
2013-09-23 21:47:26 +02:00
Adrian Sampson
9597d5e370 scrub: restore album art (close #138) 2013-09-21 19:25:31 -07:00
Adrian Sampson
25b77b1518 per_disc_numbering: fix tracktotal (close #163) 2013-09-21 19:12:18 -07:00
Adrian Sampson
4bfe693872 ftintitle: changelog & docs (closes #374) 2013-09-17 14:38:08 -07:00
Adrian Sampson
ab82965b0e FAQ: reorganize into sections 2013-09-16 20:13:36 -07:00
Adrian Sampson
ddf5c4ce54 integrate FAQ links with the rest of the docs 2013-09-16 19:26:09 -07:00
Adrian Sampson
bb55a6486e FAQ: shorten questions
This looks better in tables of contents, etc.
2013-09-16 19:14:58 -07:00
Adrian Sampson
045224d165 add FAQ
Translated from the Markdown on the Wiki using Pandoc.
2013-09-16 19:09:38 -07:00
Adrian Sampson
a5422eeaf7 use track length over recording length
Closes #341. Also, 666 tests! Woohoo!

--HG--
extra : amend_source : f00626f20e2475edcf220772223080ef62f46d84
2013-09-16 17:35:22 -07:00
Adrian Sampson
c5de56c4fd filter wide integers (closes #348) 2013-09-16 17:25:41 -07:00
Adrian Sampson
048880011f echonest_tempo: ensure we have the right track
closes #361
2013-09-16 16:59:11 -07:00
Adrian Sampson
46df8c4f0d info: eager error detection (closes #371) 2013-09-16 16:37:55 -07:00
Adrian Sampson
38bceaa073 fromfilename: docs/changelog (closes #113) 2013-09-13 21:30:01 -07:00
Adrian Sampson
26635718e6 convert-any: changelog/thanks (closes #362, #380) 2013-09-13 19:35:35 -07:00
Adrian Sampson
09d724db3f Merge pull request #380 from rowan-lewis/convert-all
Allow the convert plugin to convert to any format, not just mp3.
2013-09-13 19:32:57 -07:00
Adrian Sampson
b3bc4d3622 mbcollection: skip invalid MBIDs 2013-09-13 19:13:36 -07:00
Rowan Lewis
80d060db07 Added 'quiet' operation mode, prevents start/finish announcements for each file. 2013-09-14 10:18:36 +10:00
Rowan Lewis
52d86f0e6a Added more format presets, updated documentation. 2013-09-14 09:35:25 +10:00
Adrian Sampson
4f1ce5a64c docs: mention musicbrainz port config (closes #365) 2013-09-12 11:11:04 -07:00
Adrian Sampson
19958f75ff embedart: fix error message when imagehdr fails 2013-09-12 10:45:02 -07:00
Adrian Sampson
a785f66511 opus: changelog/thanks/docs (closes #377, #381) 2013-09-12 10:21:05 -07:00
Adrian Sampson
245a6ccb5b version bump: 1.3.1 2013-09-12 09:46:01 -07:00
Adrian Sampson
99b4e25ac2 finish up changelog for beets 1.3.0 2013-09-11 16:08:18 -07:00
Adrian Sampson
0e042d3d74 better Chromaprint installation instructions 2013-09-07 17:03:24 -07:00
Adrian Sampson
247e3b9e01 merge flexattr branch
This is a big change. Some things will probably break.
2013-08-27 17:20:37 -07:00
Adrian Sampson
21a5626347 changelog date/summary for 1.2.2 2013-08-27 09:15:17 -07:00
Adrian Sampson
ca206053ac fix import deletion race
By moving the duplicate file removal to the manipulate_files coroutine, we
ensure that all previous albums are fully moved/copied before trying to delete
their duplicate files.
2013-08-26 14:22:32 -07:00
Adrian Sampson
f9f8994d85 flexattr description in changelog 2013-08-21 18:44:14 -07:00
Adrian Sampson
7d9f556cbe introducing "slow queries"
In preparation for enabling queries over flexattrs, this is a new path that
lets queries avoid generating SQLite expressions altogether. Any query that
can be completely evaluated in SQLite will be, but when it can't, we now fall
back to running the entire query in Python by selecting everything from the
database and running the `match` predicate.

To begin with, this mechanism replaces RegisteredFieldQueries, which
previously used Python callbacks for evaluation. Now they just indicate that
they're slow queries and the query system falls back automatically.

This has the great upside that it lets use implement arbitrarily complex
queries without shoehorning everything into SQLite when that (a) is way too
complicated and (b) doesn't buy us much performance anyway. The obvious
drawback is that any code dealing with queries now has to handle two cases
(slow and fast).

In the future, we could optimize this further by combing fast and slow query
styles. For example, if you want to match with a substring *and* a regular
expression, we can do a first pass in SQLite and apply the regex predicate on
the results. Avoided for now because premature optimization, etc., etc.

Next step: implement flexattr matches as slow queries.
2013-08-16 14:28:46 -07:00
Adrian Sampson
3757aec494 fix homebrew gstreamer instructions 2013-08-15 17:46:03 -07:00
Adrian Sampson
f1c41428e6 changelog/thanks/tweaks for #355
- Remove requests import
- Name change
- Remove some obsolete checks
2013-08-08 16:19:16 -07:00
Adrian Sampson
bb191e7ced Merge pull request #354 from mineo/docs-fixup-2
Docs fixup
2013-08-06 09:46:14 -07:00
Wieland Hoffmann
e4af04e3be docs/inline.rst: The `[paths] section is now paths:` 2013-08-06 10:41:05 +02:00
Wieland Hoffmann
aafcbdc730 plugins/zero.rst: Add a missing 'a' 2013-08-06 10:41:05 +02:00
Wieland Hoffmann
d6673b7f79 plugins/zero.rst: Add a missing 'the' 2013-08-06 10:41:05 +02:00
Wieland Hoffmann
39d67363b5 ref/cli.rst: Remove a 'd' 2013-08-06 10:40:17 +02:00