Commit graph

581 commits

Author SHA1 Message Date
Adrian Sampson
fcab014510 scrub: opus support 2013-09-21 19:27:04 -07:00
Adrian Sampson
9597d5e370 scrub: restore album art (close #138) 2013-09-21 19:25:31 -07:00
Adrian Sampson
f5252efbe8 ftintitle: restrict by query
Again, for symmetry with other metadata cleanup/extension commands.
2013-09-17 14:31:42 -07:00
Adrian Sampson
2e31a7c6bf ftintitle: store modifications to the database
A run of `beet update` is now no longer required. This is in line with the
behavior of lyrics, lastgenre, echonest_tempo, replaygain, ...
2013-09-17 14:30:00 -07:00
Adrian Sampson
63803a9742 ftintitle: use beets' ui.print_ function
This avoids encoding troubles. This also uses displayable_path to deal with
Unicode pathnames.
2013-09-17 14:26:24 -07:00
Adrian Sampson
a495635f90 ftintitle: remove duplicated field variables
Several fields were kept around in variables even though they were unused.
They can be read from the Item object at any time.
2013-09-17 14:19:28 -07:00
Adrian Sampson
2a93438969 ftintitle: reorganization and refactoring
- expand docstrings
- collapse some small/duplicative helper functions
- simplify control flow
2013-09-17 14:11:17 -07:00
Adrian Sampson
dfc5edec40 ftintitle: docstrings, new top-level function 2013-09-17 12:52:38 -07:00
Adrian Sampson
4bb3a481e2 ftintitle: move helper functions to module scope
These do not need to be closures.
2013-09-17 12:44:27 -07:00
Adrian Sampson
bd598696f0 ftintitle: syntactic/comment style cleanup
- expunge remaining CamelCase identifiers
- start adding PEP8 space around operators
- start wrapping to 79 columns
- access track fields with attribute syntax

--HG--
extra : amend_source : 9c916013230dd3cde187f2a55e89587b009bce6a
2013-09-17 12:38:16 -07:00
Adrian Sampson
8212cca498 add ftInTitle plugin by @Verrus
This is a snapshot of the plugin at its git revision
abb6bb94db79e9260e2062404c986316f1dc925c.
2013-09-17 12:12:22 -07:00
Adrian Sampson
c5032f925e move Destination method to Item class 2013-09-17 09:09:10 -07:00
Adrian Sampson
f82d466b77 eliminate lib argument to Item.evaluate_template 2013-09-17 08:44:26 -07:00
Adrian Sampson
22d5e564c6 move move method to model objects 2013-09-16 22:12:26 -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
9607b258a5 fromfilename: simplify 2013-09-13 21:14:10 -07:00
Adrian Sampson
b8f01f0cfa fromfilename: preserve case, apply in more cases 2013-09-13 21:05:51 -07:00
Adrian Sampson
3f6eb4be24 fromfilename: switch to declarative style
No need for redundant handleXfields methods; we'll just inspect the fields
we're given.
2013-09-13 20:48:12 -07:00
Adrian Sampson
9e1e55e6a5 fromfilename: python style, naming, comments 2013-09-13 20:34:05 -07:00
Adrian Sampson
47999dc759 initial import of tags-from-filename plugin (#113)
This was contributed via email. Now I'll clean it up for inclusion.
2013-09-13 19:50:12 -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
Adrian Sampson
c57f2d0b78 merge 2013-09-13 18:58:30 -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
Rowan Lewis
d2327d2dcf Fixed validation, basically replace unfriendly errors with friendly errors. 2013-09-14 07:27:15 +10:00
Rowan Lewis
d3dae9f089 Reject lossy formats under a set bitrate. 2013-09-13 08:13:30 +10:00
Rowan Lewis
53aba3ce3f It's called Vorbis, not OGG. 2013-09-13 07:57:04 +10:00
Rowan Lewis
bfbf5a9215 Changed the configuration to allow for easier format selection. 2013-09-13 07:54:36 +10:00
Adrian Sampson
19958f75ff embedart: fix error message when imagehdr fails 2013-09-12 10:45:02 -07:00
Rowan Lewis
697e70f14b Problem with unicode filenames sorted. 2013-09-12 22:21:50 +10:00
Rowan Lewis
697cf3fd65 Removed reference to my testing plugin, oops. 2013-09-12 20:22:18 +10:00
Rowan Lewis
21c9855c4f Allow the convert plugin to convert to any format, not just mp3. 2013-09-12 20:09:53 +10:00
Adrian Sampson
fa97684e7b fix outdated _record reference in web plugin 2013-09-09 20:56:38 -07:00
Adrian Sampson
4ee4169349 simplify get_query using class attributes 2013-09-09 20:20:22 -07:00
Adrian Sampson
f70ddfbd1d deduplicate albums() and items() methods
This also drops the keyword arguments to these methods, which were vestigial.
2013-09-08 23:18:58 -07:00
Adrian Sampson
d80576fec1 get rid of dictionary comprehensions
for Python 2.6 compatibility
2013-08-29 17:07:04 -07:00
Adrian Sampson
343a85d482 mbsync: use separate structure for old_data
Assigning an attribute on Items doesn't really work here since we try to store
that value to the DB as a flexattr.
2013-08-23 14:01:31 -07:00
Adrian Sampson
5e09c5e473 convert: fix iteration over results 2013-08-22 17:33:56 -07:00
Adrian Sampson
c7fe017752 remove Library.{move,store} methods
These methods are now provided by LibModel, which makes dealing with items and
albums symmetric.
2013-08-21 15:34:45 -07:00
Adrian Sampson
deef7f9d20 a few more necessary album.store()s 2013-08-21 11:23:09 -07:00
Adrian Sampson
6677cea036 fix uses of item.dirty and item.record 2013-08-21 10:57:52 -07:00
Adrian Sampson
ec10f8c223 remove count() calls
I removed this method in an earlier commit.
2013-08-20 14:28:28 -07:00
Adrian Sampson
276ce14dd2 flexattrs work for Albums
A second base class, LibModel, maintains a reference to the Library and should
take care of database-related tasks like load and store. This is the beginning
of the end of the terrible incongruity between Item and Album objects (only
the latter had a library reference). More refactoring to come.

One large side effect: Album objects no longer automatically store
modifications. You have to call album.store(). Several places in the code
assume otherwise; they need cleaning up.

ResultIterator is now polymorphic (it takes a type parameter, which must be a
subclass of LibModel).
2013-08-16 18:36:30 -07:00
Adrian Sampson
38f1e6aec2 new FlexModel base class
I intend to use this for both Item and Album to avoid code duplication and
simplify code that uses both entities.
2013-08-16 17:22:17 -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
f1c41428e6 changelog/thanks/tweaks for #355
- Remove requests import
- Name change
- Remove some obsolete checks
2013-08-08 16:19:16 -07:00
Filipe Fortes
7c607ebf82 Simplify fetching cover art from release group 2013-08-08 10:02:25 -03:00
Filipe Fortes
a4470ace69 FetchArt plugin: Support grabbing album art from MB release group 2013-08-07 19:21:45 -03:00