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
Simon Chopin
e30f8f8fb9
bpd: Use AnyFieldQuery when searching "any" fields
...
BPD hadn't been ported when AnySubstringQuery was removed, resulting in
crash, death and horror when using the search function.
2013-07-02 11:00:10 +02:00
Fabrice Laporte
995d75f3f3
Logging: remove match ratio, add source website name
2013-06-29 14:24:41 +02:00
Fabrice Laporte
9780be270c
Some tweaking to yield better results by not
...
rejecting valid lyrics.
2013-06-29 14:23:53 +02:00
Fabrice Laporte
c6f935ac4c
Don't consider text between parentheses when
...
matching url title with song title.
2013-06-29 14:21:55 +02:00
Adrian Sampson
1649512b54
web: item_count -> stats ( #333 )
...
The new /stats endpoint now counts both items and albums. In the future, it
could also expose other interesting information.
2013-06-21 10:27:49 -07:00
Uwe L. Korn
3fd78bd63d
[web] Add API method to get the total item count
2013-06-21 16:01:03 +02:00
Pedro Silva
13dc28b349
Fix zero length field error under Python 2.6
...
* missing.py (_missing): add field indexes to format spec
* duplicates.py (commands): add field indexes to format spec
2013-06-14 13:59:14 +01:00
Adrian Sampson
0262803a40
add data_source, data_url to TrackInfo objects
...
The Beatport plugin now uses this to provide singleton matches (and their
appropriate penalty).
2013-06-12 16:19:30 -07:00
Adrian Sampson
4555d69803
random: py26 fix
2013-06-12 16:09:41 -07:00
Fabrice L.
6c8f45c7f7
Update lyrics.py
2013-06-12 01:20:08 +03:00
Fabrice Laporte
a64d277bae
Merge branch 'master' of https://github.com/sampsyo/beets
2013-06-12 00:09:44 +02:00
Fabrice Laporte
b3747189e5
lyrics: google backend should turn up more results
...
bs4 scraping routine has been made more generic,
relying less on specific markup tags.
Better algorithm to detect which url titles match
song titles: domain names are now removed from url
titles.
Use regex to decimate \n in fetched lyrics.
2013-06-12 00:07:01 +02:00
Adrian Sampson
2f053b0ecd
scrub: handle IOError
...
Mutagen can raise this error when trying to truncate a file.
2013-06-10 16:06:43 -07:00
Adrian Sampson
f6faf72328
move Distance class to hooks module
2013-06-10 15:21:32 -07:00
Fabrice Laporte
7f62db7327
Merge branch 'master' of https://github.com/sampsyo/beets
2013-06-08 16:36:56 +02:00