Commit graph

13297 commits

Author SHA1 Message Date
Adrian Sampson
6754155c71 Albums now have an internal cache of their values
This makes way more sense than fetching every metadata request from the
database. The performance of "beet ls -a" and the like should be drastically
better.
2010-07-21 16:04:59 -07:00
Adrian Sampson
cc3ec0d8aa albums() browse function now returns Album objects
As part of this, the BaseLibrary class was also adapted to include a notion of
albums. This is reflected by the new BaseAlbum class, which the Album class
(formerly _AlbumInfo) completely replaces in the concrete Library. The BaseAlbum
class just fetches metadata from the underlying items.
2010-07-21 15:02:08 -07:00
Adrian Sampson
7de294ba9f add get_item convenience function to fetch Items by id
The beetfs project uses this to quickly get paths for items when reading them.
2010-07-21 11:26:43 -07:00
Adrian Sampson
c62b1355f1 don't fetch art when importing as-is 2010-07-21 10:30:23 -07:00
Adrian Sampson
6c0895de96 make sure beetsplug is loaded as a namespace package 2010-07-20 23:15:19 -07:00
Adrian Sampson
602f896bd1 import -A now tags albums
Previously, importing without autotagging just imported a bunch of Items. Now,
like the autotagging version, "import -A" creates albums based on the directory
hierarchy. The effect is exactly as if the user chose "use as-is" every time in
the interactive procedure. One side effect is that "import -A" can now only take
directories, where previously it could take single items on the command line. We
need a new solution for this kind of import in the future.
2010-07-15 13:58:16 -07:00
Adrian Sampson
e9e90fa538 expand set of album metadata to include everything relevant 2010-07-15 11:22:36 -07:00
Adrian Sampson
a69fd39cb5 NEWS note about album art and albums table 2010-07-14 23:38:15 -07:00
Adrian Sampson
f181835e2a abandon attempt at making albums implicit from items
--HG--
branch : implalbum
extra : close : 1
2010-07-14 23:36:35 -07:00
Adrian Sampson
7816b411ad simplified interface for add_album 2010-07-14 23:04:59 -07:00
Adrian Sampson
cabf287962 autotagger now imports tracks as albums; actually gets album art 2010-07-14 22:52:13 -07:00
Adrian Sampson
6b99e3f48d importer now takes album art config options and switch
(doesn't yet actually apply art)
2010-07-14 14:58:17 -07:00
Adrian Sampson
4f1b55f7a9 avoid long database locks by storing items at the end of AlbumInfo.move 2010-07-14 14:38:42 -07:00
Adrian Sampson
6a3c024005 add_art convenience function takes care of copying to destination 2010-07-14 14:28:54 -07:00
Adrian Sampson
304e4d6708 albums move and remove their items, manage album art 2010-07-14 14:19:51 -07:00
Adrian Sampson
19ded256cd albums query and modify their associated items 2010-07-14 13:24:11 -07:00
Adrian Sampson
3006f9953c beginnings of explicit album management 2010-07-14 12:40:25 -07:00
Adrian Sampson
fe892cc268 attempt at managing album info table in Python instead of with triggers
I think this is the end of the road for the design that treats albums as a
lightweight hanger-on to items. That is, we attempted to keep the interface
strictly item-focused; album information was created and deleted on the fly in
response to creation and deletion of items. I now believe that this was
ultimately a bad idea and can only lead to unexpected behavior and complex
implementation. It's time to start over.
2010-07-14 11:55:19 -07:00
Adrian Sampson
5335bc6b8a log a message when no art is found 2010-07-14 00:01:54 -07:00
Adrian Sampson
54df8a7b43 config option and negative flag for getting art (defaults to true) 2010-07-13 23:54:47 -07:00
Adrian Sampson
e7e7ee64b0 albuminfo() can now take an album id as well as an item 2010-07-13 23:43:49 -07:00
Adrian Sampson
a49ebc853a autotagger -r switch now fetches and places album art 2010-07-13 22:34:52 -07:00
Adrian Sampson
5bb064a860 configurable album art path construction 2010-07-13 22:00:42 -07:00
Adrian Sampson
722e0ea2b7 AlbumInfo implementation now uses opaque "ident" field (concretely: row id)
--HG--
extra : transplant_source : %F42%F7k%7F%23%3EY%8E1%C2%9B%B9%1DR%1C%28w%AEm
2010-07-13 21:22:55 -07:00
Adrian Sampson
f1870b7941 AlbumInfo implementation now uses opaque "ident" field (concretely: row id) 2010-07-13 21:22:55 -07:00
Adrian Sampson
dd0c70e01c add triggers for dropping album entries consistently with items 2010-07-13 21:14:11 -07:00
Adrian Sampson
5096a12052 basic (non-collected) implementation of albums table 2010-07-13 19:42:45 -07:00
Adrian Sampson
bdbabe91da basic album information access through proxy object 2010-07-13 18:01:14 -07:00
Adrian Sampson
84f5577121 comment and docstring cleanup 2010-07-13 17:27:50 -07:00
Adrian Sampson
5d4f452393 add "albums" table to library database (including migrations) 2010-07-13 10:25:42 -07:00
Adrian Sampson
6394371628 better names for KEYS constants 2010-07-13 10:04:17 -07:00
Adrian Sampson
529d2b1c49 start cleanup of field definitions 2010-07-12 18:14:20 -07:00
Adrian Sampson
57fa6139f7 clean up code for art fetcher; add unit tests 2010-07-12 17:49:23 -07:00
Adrian Sampson
55035c9a72 nascent album art fetcher (based on MB-reported Amazon IDs) 2010-07-12 00:05:53 -07:00
Adrian Sampson
34e9923669 fixed situation where the MusicBrainz match duplicated a metadata match 2010-07-11 19:22:22 -07:00
Adrian Sampson
30669fd7ac replace :s with -s instead of _s in path names 2010-07-11 19:12:50 -07:00
Adrian Sampson
ca48d88598 couple of outdated tests: mock Items didn't have MB fields 2010-07-11 18:19:27 -07:00
Adrian Sampson
4378db1361 more characters escaped on Windows 2010-07-11 18:14:40 -07:00
Adrian Sampson
2871660ab7 NEWS note about MB IDs 2010-07-10 23:35:25 -07:00
Adrian Sampson
7142a14cf4 track ID matches now give candidates a distance bonus 2010-07-10 20:57:05 -07:00
Adrian Sampson
045481253f autotagger now uses MusicBrainz IDs to match quickly 2010-07-10 20:49:59 -07:00
Adrian Sampson
274118dc10 identify albums by existing MB album ID 2010-07-10 20:10:34 -07:00
Adrian Sampson
3d88bbfa96 split autotag tests into autotag (fast) and mb (slow) modules
--HG--
rename : test/test_autotag.py => test/test_mb.py
2010-07-10 19:26:35 -07:00
Adrian Sampson
3ce936701a autotagger now applies MusicBrainz IDs 2010-07-10 18:24:29 -07:00
Adrian Sampson
aec7bef504 add MusicBrainz ID fields to database schema 2010-07-10 17:53:51 -07:00
Adrian Sampson
f4d7d68e57 rudimentary migration (column adds only) support 2010-07-10 17:37:33 -07:00
Adrian Sampson
ac98777adc MediaFile support for MusicBrainz track, album, and artist IDs 2010-07-10 14:05:01 -07:00
Adrian Sampson
f8c317a2cd undefined variable reported by pylint 2010-07-09 18:16:40 -07:00
Adrian Sampson
6e90009b07 remove outdated references to beets.player module 2010-07-09 18:12:18 -07:00
Adrian Sampson
a91ea35517 misc. overdue code cleanup 2010-07-09 18:07:15 -07:00