Commit graph

873 commits

Author SHA1 Message Date
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