Commit graph

761 commits

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