Commit graph

934 commits

Author SHA1 Message Date
Pedro Silva
5cc7cac2e7 clarify that keys are not necessarily mbids 2014-03-02 20:43:17 +01:00
Pedro Silva
6d283ecafa fix checksum problem where key was unintentionally hard-coded 2014-03-02 20:39:42 +01:00
Pedro Silva
bf7e04af0f fix #562: fail on empty code and handle analyze exceptions 2014-03-02 14:10:52 +01:00
Adrian Sampson
472571a4c6 web: fix typo in albums endpoint 2014-02-26 20:08:22 -08:00
Adrian Sampson
1253cb695d move show_model_changes to ui package
This makes it more naturally reusable for plugins.
2014-02-22 15:06:16 -08:00
Adrian Sampson
58dd5f47f5 use _show_model_changes in mbsync 2014-02-22 14:37:04 -08:00
Adrian Sampson
661e82fdec echonest: remove confusing length output (#545) 2014-02-17 22:57:37 -05:00
Adrian Sampson
007c26176e Merge pull request #535 from kljohann/last_playing
mpdstats: update last_played
2014-02-11 09:51:46 -08:00
Adrian Sampson
3dd9e4622f lastgenre: tolerate el.weight is None 2014-02-11 09:49:15 -08:00
Adrian Sampson
7190964e05 restore echonest fetch command (fix #540) 2014-02-11 09:44:02 -08:00
Adrian Sampson
4c5fc8fd76 echonest: use only one plugin class (fix #536) 2014-02-10 22:08:15 -08:00
Johann Klähn
73a43b56a0 mpdstats: update last_played
This fixes #529 and brings back the old behaviour of setting last_played
on every song change regardless of whether it is played to the end or skipped.
2014-02-10 20:55:42 +01:00
Thomas Scholtes
004e9a8144 Add query converter 2014-02-10 17:26:26 +01:00
Thomas Scholtes
dcbf7ecc36 Fix album retrieval 2014-02-10 17:26:26 +01:00
Thomas Scholtes
6663ed0c64 Use URL converters 2014-02-10 17:26:26 +01:00
Adrian Sampson
8ffe83b99e fetchart: fix #533, remote_priority ignoring local 2014-02-09 16:10:53 -08:00
Adrian Sampson
ee713d153c ihate: fix singletons (from #486, fix #411) 2014-02-08 12:11:32 -08:00
Adrian Sampson
fe5c175cc3 style fixes for ihate (#486) 2014-02-08 12:00:23 -08:00
BrainDamage
6836e9c725 updated iHate plugin to replace hardcoded regex system in favour of more flexible queries
changed config layout of iHate plugin to a simpler system
updated unit test for ihate plugin accordingly
updated docs for ihate plugin accordingly
2014-02-07 21:37:33 +01:00
Pedro Silva
ecff56fc44 Fix #522: treat copy/move args as dirs and process items accordingly 2014-02-02 20:45:57 +01:00
Thomas Scholtes
75c3b82d88 Test and fix web /item/query/<query> 2014-02-02 19:12:10 +01:00
Thomas Scholtes
f706e58409 Web API handles multiple ids 2014-02-02 19:04:04 +01:00
Adrian Sampson
318649c16c convert: fix transcode on windows (#519) 2014-02-02 09:54:33 -08:00
Johann Klähn
e78b0928b2 fix mpdstats plugin after query restructuring
BytesQuery does not handle unicode strings correctly at the moment
and PathQuery seems like a reasonable query to use.
2014-01-31 20:16:22 +01:00
Adrian Sampson
456c8a7f01 fromfilename: fix #460: crash w/ no capture groups 2014-01-30 08:19:16 -08:00
Adrian Sampson
620f0f8727 fetchart colors (#508): simplify, new colors
Also a changelog entry.
2014-01-27 22:51:58 -08:00
Adrian Sampson
33c40f111c merge colorization part of #509
Conflicts:
	beetsplug/fetchart.py
2014-01-27 22:46:58 -08:00
Adrian Sampson
06b3ee179c comments, naming, and docs for part of #509 2014-01-27 22:38:23 -08:00
Bruno Tournay
1a4b15c4a5 Colorized output of beet fetchart, for easier detection of albums with no cover 2014-01-27 22:03:42 +01:00
Bruno Tournay
0466df6215 Search again locally in album folder when running beet fetchart without -f 2014-01-27 22:02:29 +01:00
Adrian Sampson
def635a33b rewrite: flatten Confit view to string
Previously, this would pass around a ConfigView object which would only lazily
get turned into a string. Bad!
2014-01-23 19:46:13 -08:00
Thomas Scholtes
f98240b83c JSON API responds with embedded items
This effectively removes the "album_ids" and "item_ids" keys from the responses
of `/item/` and `/album/`, respectively. Instead there are "albums" and "items" keys,
respectively that contain a list of JSON representations for all albums and
items.
2014-01-21 22:40:42 +01:00
Thomas Scholtes
9d1731faf2 Use generators to stream web requests 2014-01-21 16:42:25 +01:00
Thomas Scholtes
7d6d8f1fd4 Embed item data into web request 2014-01-21 16:08:22 +01:00
Adrian Sampson
9ee4adc5e1 move remaining generic Query types to dbcore.query
NumericQuery is still broken. This, of course, is the whole reason for the
change.
2014-01-20 16:40:50 -08:00
Adrian Sampson
77daa542c8 fix infinite-recursion regression in rewrite
Reported by axion on IRC.
2014-01-20 11:39:33 -08:00
Adrian Sampson
dcee7b6219 dbcore: terminology
Replace "library" and "lib" references in dbcore with "database" and "db" for
short.
2014-01-18 16:36:04 -08:00
Adrian Sampson
cbbb38c417 new BytesQuery factors out MatchQuery's path logic 2014-01-13 16:17:30 -08:00
Adrian Sampson
1ad1f7634c py26 compatible format strings (fix #490) 2014-01-09 11:22:49 -08:00
Adrian Sampson
d30db10d10 mpdupdate: remove debug clause
Thanks to @phmongeau for pointing out this embarrassing mistake.
2014-01-08 22:43:10 -08:00
Heinz Wiesinger
7158f7aefc Make sure bpm values coming from echonest are stored as integers. 2014-01-05 20:21:04 +01:00
Adrian Sampson
04c0bd50fd smartplaylist: use new evaluate_template signature 2013-12-29 12:30:44 -08:00
Adrian Sampson
8a105b0cb9 Merged in yevgenybezman/beets/scrub-add-mp4 (BB pull request 1)
scrub: Added MP4 support to scrub plugin
2013-12-22 12:47:34 -08:00
Yevgeny Bezman
7310f0a371 scrub: Added MP4 support to scrub plugin
--HG--
branch : scrub-add-mp4
2013-12-22 22:04:47 +02:00
Adrian Sampson
938563e287 echonest: get audio_summary in search (fix #481) 2013-12-18 12:35:31 -08:00
Adrian Sampson
5e405f6b84 Merge pull request #480 from fortes/patch-1
Don't try to parse None as HTML when fetching lyrics
2013-12-18 12:04:45 -08:00
Adrian Sampson
5fb7c424ad use canonical parent, not base tag (#478) 2013-12-18 12:01:55 -08:00
Filipe Fortes
0824ccb85f Don't try to parse None as HTML when fetching lyrics
Fixes #479
2013-12-18 07:37:01 -08:00
Adrian Sampson
3338ef2ff2 lastgenre: multiple + canonical genres (fix #478) 2013-12-17 17:29:37 -08:00
Adrian Sampson
6ab0abfa90 detect missing echonest fingerprints (fix #477) 2013-12-17 17:18:16 -08:00
Adrian Sampson
16a6138f33 Merge branch 'master' of github.com:sampsyo/beets 2013-12-17 17:13:21 -08:00
Johann Klähn
0bb395fa8c mpdstats: fix typo/bug 2013-12-14 12:11:18 +01:00
Adrian Sampson
d0e53d48b3 echonest: tiny py26 fix 2013-12-12 15:50:08 -08:00
Adrian Sampson
19868946d5 mpdstats refactor: comments/credit 2013-12-12 15:47:26 -08:00
Johann Klähn
159a67e30f mpdstats: reload item before calculations
As mpdstats is a long running process the value of one of the attributes
may have changed since the song started to play (f.ex. through a manual
update using `modify`).
2013-12-12 08:29:01 +01:00
Johann Klähn
df274e2b15 mpdstats: refactor plugin 2013-12-12 08:29:01 +01:00
Johann Klähn
ad2028ddf7 mpdstats: do not call item.write
The attributes used by this plugin are not 'writable'[^1] anyway so this
leads to needless file access. Also we do not need to check for
`item._lib` as this will always be populated by the call to
`lib.items(...)`.

[^1]: As per `ITEM_KEYS_WRITABLE` in `beets/library.py`
2013-12-12 08:23:33 +01:00
Johann Klähn
97e4ccbbd9 expand '~' in host in mpdstats 2013-12-11 12:04:39 +01:00
Adrian Sampson
4ea5ed9eed echonest: always flatten results to dict
This avoids the need for two cases (song object or dict) in parts of the code.
2013-11-29 12:58:46 -08:00
Adrian Sampson
5e08c178e6 echonest: fix codegen/identify
I broke two things:
- forgot to return the fingerprint! oops
- need to handle raw Exception raised by pyechonest
2013-11-29 10:09:09 -08:00
Adrian Sampson
9bcd7aecae echonest: clean up FFmpeg-based audio conversion
subprocess.check_call helps a lot here.

--HG--
extra : amend_source : 009a79de8f97407fc60b62aa6b7bd23856286082
2013-11-27 19:09:54 -08:00
Adrian Sampson
a0056afeaf echonest: clean up analyze workflow
- handle the right exceptions
- add duration to from_track dict
2013-11-27 18:57:29 -08:00
Adrian Sampson
6b54514c65 echonest: simplify fingerprinting strategy
mostly expunging exception-based control flow
2013-11-27 18:35:21 -08:00
Adrian Sampson
d5dd68af24 echonest: sort analysis methods by priority
These are now ordered in the code in the same sequence that we try them:
- profile (ID)
- search (metadata)
- identify (fingerprint)
- analyze (upload)
2013-11-27 18:26:44 -08:00
Adrian Sampson
78688cc3f1 echonest: simplify ID-based lookup ("profile")
- don't use generic Exceptions for control flow
- extraneous .get() calls
2013-11-27 18:18:25 -08:00
Adrian Sampson
1ae2894a01 echonest: simplify method-aggregator loop 2013-11-26 18:20:25 -08:00
Adrian Sampson
4ad9635043 echonest: use pipeline stage
In addition to the performance benefit of running in our own thread, this also
obviates the need for the _songs dict to pass stuff between stages.
2013-11-26 18:11:14 -08:00
Adrian Sampson
d367bc31d4 echonest: don't needlessly write during import
On the import hook, the config['import']['write'] check (and writing at all)
is not necessary, since this will be taken care of later in the program.
2013-11-26 17:58:02 -08:00
Adrian Sampson
8fe254f086 echo nest: top-level code review pass
General Python/beets style changes:
- "x is None" can generally be replaced with "not x"
- prefer iteration over repetitive lines
- config[foo].get(bool) can be replaced with config[foo] in conditions
- removed extraneous "return None", which is what Python functions do
  automatically if you don't return anything
- 79-column wrap
2013-11-26 15:20:18 -08:00
Adrian Sampson
8483b67641 duplicates: only one type of deletion 2013-11-25 23:17:07 -08:00
Adrian Sampson
1966bc9bda duplicates: some config handling simplification 2013-11-25 23:15:55 -08:00
Adrian Sampson
1171f47e98 mpdstats: log with displayable_path, etc. 2013-11-25 22:58:43 -08:00
Adrian Sampson
0167f67a96 simplify MPD configuration 2013-11-25 22:45:42 -08:00
Adrian Sampson
0c32ad1dee mpdstats: style fixes 2013-11-25 22:15:22 -08:00
Adrian Sampson
2c0c8494ba mpdstats: clean up some unused code 2013-11-25 22:05:43 -08:00
Adrian Sampson
38ecb35718 lyrics -f (#455, closes #414): style, changelog 2013-11-25 15:58:53 -08:00
Pedro Silva
9b75db8326 merge Bitdemon-master
- minor style changes
- synchronize with documentation
2013-11-17 12:34:53 +01:00
Bitdemon
f87606869c Update lyrics.py 2013-11-10 23:18:53 +01:00
Bitdemon
de0f0792ef Update lyrics.py 2013-11-10 23:13:35 +01:00
Bitdemon
f5f73be2b5 Update lyrics.py 2013-11-10 22:58:36 +01:00
Bitdemon
86d74f7d39 Update lyrics.py
added -f option to lyrics plugin
first draft
2013-11-10 22:44:37 +01:00
Pedro Silva
e8d6c94995 revert debug print left over from previous commit 2013-11-07 22:15:52 +01:00
Pedro Silva
27da05f9d3 stringify key values prior to hashing 2013-11-07 22:13:42 +01:00
Mathijs de Bruin
2bab3135b3 Fix for #411: iHate fails with singletons. 2013-11-07 13:57:25 +01:00
Adrian Sampson
3ccd231765 id3v23: remove one redundant case; changelog/thanks 2013-11-05 19:59:45 -08:00
Adrian Sampson
580fe7e1de Merge pull request #447 from chriscogburn/patch-2
Fix for id3v23 to include config parameter to save
2013-11-05 19:46:38 -08:00
Chris Cogburn
e9bc47a665 Fix for id3v23 to include config parameter to save 2013-11-05 21:29:49 -06:00
Chris Cogburn
d0c3cb5779 Fix for id3v23 to include config parameter to save 2013-11-05 21:27:26 -06:00
Peter Schnebel
27886ba7bc fixed call to expanduser 2013-11-04 11:13:32 +01:00
Philippe Mongeau
00fa333570 mpdstats: use expanduser() on the music directory path 2013-11-03 22:02:45 -05:00
Philippe Mongeau
058e3adbef mpdstats: fix two log.info calls to use unicode strings 2013-11-03 00:30:32 -04:00
Peter Schnebel
34bf650ccb Merge branch 'master' of https://github.com/sampsyo/beets 2013-11-01 22:03:39 +01:00
Peter Schnebel
8068e6b522 bugfix: honor the auto config option 2013-11-01 13:12:27 +01:00
Peter Schnebel
46df2e5630 removed user stuff 2013-11-01 12:27:56 +01:00
Peter Schnebel
ac0f62eaf1 proposal for one global 'mpd' config section 2013-10-31 21:03:11 +01:00
Peter Schnebel
890e522bc0 removed more last.fm stuff 2013-10-31 20:30:13 +01:00
Peter Schnebel
80c29c4f9c renaming mpc to mpdstats 2013-10-31 20:27:09 +01:00
Peter Schnebel
1e4f33209a clean up unused last.fm stuff 2013-10-31 20:24:44 +01:00
Peter Schnebel
2ddff72752 bugfix: clean up was a mess up 2013-10-31 17:02:34 +01:00
Peter Schnebel
497746051e clean up 2013-10-31 16:40:22 +01:00
Peter Schnebel
e43b67640e clean up 2013-10-31 16:37:28 +01:00
Peter Schnebel
3d964fb2db clean up 2013-10-31 16:31:53 +01:00
Peter Schnebel
62a06ef3b4 add support for prio and prioid if MPD supports it 2013-10-31 15:33:05 +01:00
Peter Schnebel
1d2ba6ef26 use songid to detect playlist changes 2013-10-31 15:22:46 +01:00
Peter Schnebel
be70b74450 use songid to detect currently playing song 2013-10-31 15:04:34 +01:00
Peter Schnebel
e6a22953de detect playlist changes (add / remove) 2013-10-31 14:04:25 +01:00
Peter Schnebel
f5b1b11cd9 bugfix: should survive MPD restart now 2013-10-31 13:30:14 +01:00
Peter Schnebel
6e893389d7 bugfix: update statistics of the correct song 2013-10-31 13:24:03 +01:00
Peter Schnebel
810c4e1e3f New plugin mpc to connect to a MPD server to gather play statistics. 2013-10-31 12:19:05 +01:00
Pedro Silva
7aff16b169 remove WIP pushed by mistake 2013-10-27 22:48:52 +01:00
Pedro Silva
7e3b80cc1d WIP: add classification task 2013-10-27 22:45:55 +01:00
Pedro Silva
8f9e35f081 initial commit 2013-10-27 21:59:33 +01:00
Jakob Schnitzer
887e02c2ae convert: fix decision on which items to transcode 2013-10-27 17:10:55 +00:00
Peter Schnebel
dab7ec219d fixed log message 2013-10-27 12:04:58 +01:00
Peter Schnebel
479f92f250 Merge pull request #424 from pscn/echoplus
New plugin to fetch extended information from the EchoNest (call for feedback)
2013-10-27 03:10:29 -07:00
Peter Schnebel
538aa457e0 removed echonest_ prefix 2013-10-27 08:52:54 +01:00
Adrian Sampson
2481dc244b convert: iterate over the right items (fix #439) 2013-10-26 11:08:52 -07:00
Peter Schnebel
315522aafa fix inverted conditional when fingerprinting (@pedros) 2013-10-26 17:32:30 +02:00
Peter Schnebel
f6613ee31c added similarity finder plugin 2013-10-26 11:33:34 +02:00
Peter Schnebel
428302b45c add echonest_id to debug output 2013-10-26 10:33:29 +02:00
Peter Schnebel
5e0bac8ab5 be a little less picky when judging matches 2013-10-26 10:30:42 +02:00
Peter Schnebel
e4792df50f bugfix: don't use limit here 2013-10-26 10:29:21 +02:00
Peter Schnebel
a755fbcf53 workaround: also double check after profile 2013-10-26 10:28:11 +02:00
Peter Schnebel
c8c3c4ae66 workaround: onetime after analyze, the wrong song was returned. double check that. fall back to track data. 2013-10-26 10:26:55 +02:00
Peter Schnebel
9ac89b350c bugfix: extract duration from track 2013-10-26 09:39:24 +02:00
Peter Schnebel
03f5f71732 show the artist / title as received from EchoNest 2013-10-26 09:09:00 +02:00
Peter Schnebel
1324498f29 bugfix 2013-10-26 09:06:47 +02:00
Peter Schnebel
c4445df8af bugfix 2013-10-26 09:03:20 +02:00
Peter Schnebel
2d1788e595 bugfix 2013-10-26 08:58:39 +02:00
Peter Schnebel
a5be1648f9 new proposal 2013-10-26 08:56:56 +02:00
Peter Schnebel
6f5d4d1328 new proposal 2013-10-26 08:56:18 +02:00
Pedro Silva
1e737d146b Add new copy, move, delete, and tag options 2013-10-23 17:15:16 +02:00
Pedro Silva
7112c30415 Don't set default checksum command-line 2013-10-23 12:57:04 +02:00
Pedro Silva
a4425aa60e Don't spam stderr on -C without --verbose 2013-10-23 12:56:34 +02:00
Pedro Silva
3379c31f4f Add new option 'checksum' for specifying arbitrary checksumming commands 2013-10-23 01:32:05 +02:00
Pedro Silva
587de12ecc Default to match on mb_{track,album}id 2013-10-22 22:53:07 +02:00
Pedro Silva
35e727b86f Add --path sugar 2013-10-22 22:43:32 +02:00
Pedro Silva
aad0449f56 ensure command-line --keys is also respected 2013-10-22 00:05:02 +02:00
Pedro Silva
3d862d63d5 Properly initialize keys config as a list 2013-10-21 23:53:58 +02:00
Pedro Silva
6ae10ed765 add 'keys' option to allow duplicate matching on arbitrary attributes
- towards addressing #427
- TODO: invert key list
- TODO: implement alternative strategies (fp, md5, etc)
2013-10-21 23:32:33 +02:00
Peter Schnebel
00ec247515 bugfix for failed uploads 2013-10-18 00:32:28 +02:00
Peter Schnebel
1c453e852b bugfix for too many upload retires + added comments 2013-10-18 00:22:52 +02:00
Peter Schnebel
332e8a2924 Revert "bugfix for too many upload retires + added comments"
This reverts commit 8700736020.
2013-10-18 00:17:40 +02:00
Peter Schnebel
8700736020 bugfix for too many upload retires + added comments 2013-10-18 00:12:16 +02:00
Peter Schnebel
f3935e8aea disabled tempo 2013-10-17 22:49:27 +02:00
Peter Schnebel
491dff1f09 disabled tempo 2013-10-17 22:48:40 +02:00
Peter Schnebel
bd7a56bf07 renamed mappings 2013-10-17 22:27:37 +02:00
Peter Schnebel
f790b7cb15 renamed mappings 2013-10-17 22:02:20 +02:00
Adrian Sampson
2d2836825f #416: workaround comment, py26-ify 2013-10-17 12:10:17 -07:00
Adrian Sampson
f09bf57f6a Merge pull request #416 from pscn/master
Added min_weight option to lastgenre plugin, to provide for filtering out unpopular genres.
2013-10-17 12:00:35 -07:00
Peter Schnebel
b34a945051 better(?) defaults 2013-10-17 17:12:15 +02:00
Peter Schnebel
b13e9caea7 hint 2013-10-17 16:42:41 +02:00
Peter Schnebel
b08e68a920 Save raw values + added reapply switch + better debug output 2013-10-17 16:41:43 +02:00
Peter Schnebel
b1570beba9 Merged the ``multiple` and `max_genres` option into one `count`` option.
Updated debug output to waste less lines.
2013-10-17 09:52:35 +02:00
Peter Schnebel
b2a23a58e2 fixed indentation 2013-10-17 09:30:26 +02:00
Peter Schnebel
f3b64e87bc sync (plugin is broken) 2013-10-17 09:29:18 +02:00
Adrian Sampson
b037f777da echonest_tempo/#420: py26, line wrap, ... 2013-10-16 21:53:46 -07:00
Adrian Sampson
52312ee877 Merge pull request #420 from pscn/echonest_tempo
Fixed song matching in echonest_tempo plugin
2013-10-16 21:42:23 -07:00
Peter Schnebel
8215e81cea nicer debug output 2013-10-16 17:12:24 +02:00
Peter Schnebel
c5a9a66ad8 bugfixes for candidate detection 2013-10-16 16:46:41 +02:00
Peter Schnebel
78e75317a7 bugfixes for import 2013-10-16 16:31:26 +02:00
Peter Schnebel
f200cb0825 upload for the win 2013-10-16 16:08:00 +02:00
Peter Schnebel
6dd827964b bugfix for opts 2013-10-16 13:48:04 +02:00
Peter Schnebel
66c01adca1 use duration as another hint to find good matches 2013-10-16 12:40:27 +02:00
Peter Schnebel
fd0d8820bb Fixed detection of the correct song in EchoNest. 2013-10-16 12:19:25 +02:00
Peter Schnebel
abf2a17f42 bugfixes 2013-10-16 12:12:41 +02:00
Peter Schnebel
c7a269d1c5 fetch more results to increase the chance of finding the correct result 2013-10-16 11:53:48 +02:00
Peter Schnebel
2c2b7600c3 bugfix 2013-10-16 11:43:08 +02:00
Peter Schnebel
2a9def94b8 Merge branch 'master' into echoplus 2013-10-16 11:42:23 +02:00
Peter Schnebel
0ff15c5c4d The way of the impatient is filled with useless commits :( 2013-10-16 11:35:26 +02:00
Peter Schnebel
fa10515799 Bugfix for Album.get_top_tracks workaround. 2013-10-16 11:31:18 +02:00
Peter Schnebel
7591957327 added experimental guess mood feature (see http://developer.echonest.com/forums/thread/1297) 2013-10-16 11:28:02 +02:00
Peter Schnebel
846f4eb7ae fix possible bug 2013-10-16 10:33:51 +02:00
Peter Schnebel
9b8ad7dcd1 Experimental EchoNest plugin to fetch and map attributes from EchoNests audio_summary. 2013-10-16 10:26:18 +02:00
Peter Schnebel
d339e2f815 Workaround for pylast issue https://code.google.com/p/pylast/issues/detail?id=85 as suggested by @sampsyo 2013-10-16 08:45:13 +02:00
Adrian Sampson
ed44982f75 ftintitle: skip on empty albumartist (#418) 2013-10-15 10:03:15 -07:00
Peter Schnebel
c5896684f3 The following only applies when ``multiple`` is activated:
Return one valid genre even if its weight is lower then ```min_weight```.
Default for ```min_weight``` is now *10*.
Added new config option ```max_genres``` to limit the amount of genres returned.  Default is *3*.
2013-10-15 13:20:45 +02:00
Adrian Sampson
8e2c1bbe68 ftintitle: check artist_sort for null (fix #418) 2013-10-14 21:11:40 -07:00
Peter Schnebel
eafceaa0ed Added min_weight option to lastgenre, to provide for filtering out unpopulare genres. 2013-10-14 12:36:39 +02:00
Adrian Sampson
fac13a041e missing: tolerate disctotal == None
This problem:
http://pastebin.ca/2466454
is likely indicative of a bug elsewhere, but defensive coding seems like a
good idea here.
2013-10-13 18:22:43 -07:00
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
54af040bc4 convert: extension is a bytestring (fix #390) 2013-10-06 12:13:14 -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
dfea8ea05e convert: fix outdated reference, col wrap 2013-10-06 11:59:03 -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
b7e2ba7795 convert: log transcoding command 2013-10-06 11:28:29 -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
0d303ffde7 multi-format convert (#362): simpler validation
This removes the explicit config validation check and collapses it into the
config read step (which is the intended convenience of Confit's API).
2013-10-06 10:56:42 -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
f35d7fec9c multiple genres (#397): simplify implementation
- don't use vestigial global object for config
- list comprehensions ftw
2013-10-06 10:29:47 -07:00
Adrian Sampson
41a6ccbac1 Merge pull request #397 from rashley60/master
Added ability to store comma delimited lists of genres using lastfm
2013-10-06 10:10:40 -07:00
Adrian Sampson
2e2e0b2919 get_album (and evalute_template) with non-DB items
Alternative fix for #403.
2013-10-05 11:06:08 -07:00
Pedro Silva
89c0e2c8b7 Fix issue #403
hack around items needing library and id references since 238e743
2013-10-05 15:55:44 +02:00
Ross Ashley
7a7d009671 Removed pdb stuff and cleeaned up description. 2013-10-03 15:15:18 -04:00
Ross Ashley
8525983791 For the comma delimited lastgenre addition, the old way is default.
There is a new option called multiple_genres which defaults to False
but when set to True, the comma delimited list of genres is returned
by lastgenre.

So, if you want a comma delimited list, it is

lastgenre:
    multiple_genres: True
2013-10-03 11:39:33 -04:00
Adrian Sampson
f42dabd1fa merge 2013-09-29 18:37:06 -07:00
Adrian Sampson
f9cc86be08 fromfilename: use unicode filename
As pointed out in #395, we need to decode the filename before doing our fancy
matches on it.
2013-09-29 18:35:43 -07:00
Ross Ashley
7c0d828a2e Replaced unnecessary code with one line. 2013-09-27 10:08:09 -04:00
colin-scott
b6e7e0b817 Support singleton filenames.
Previously, track ids were assumed to be part of every filename. This
assumption does not hold for singleton tracks.
2013-09-26 12:26:15 -07:00
Ross Ashley
514fa6cf0c Removed some unused and commented out code. 2013-09-26 15:18:58 -04:00