Pedro Silva
763cfa06b4
Don't check for item.paths == None as that can't happen
2013-05-10 16:43:17 +01:00
Pedro Silva
d32a3ef9b5
Implement logic for displaying missing track counts
2013-05-10 16:42:45 +01:00
Pedro Silva
69877f2013
Add 'count' and 'total' parameters
...
- count: count missing tracks per album
- total: count total missing tracks
2013-05-10 16:42:10 +01:00
Pedro Silva
bed7c5ae88
Add _missing_count function
2013-05-10 16:41:04 +01:00
Pedro Silva
abe12be4b2
Remove unneeded Library argument from _missing
2013-05-10 16:06:30 +01:00
Pedro Silva
18e2704ffb
Remove unnecessary _format function
2013-05-10 14:23:32 +01:00
Pedro Silva
6ae73bc921
Initial import of missing tracks plugin
...
This plugin adds a new command, ``missing`` or ``miss``, which finds
and lists, for every album in your collection, which tracks are
missing.
2013-05-10 14:13:53 +01:00
Georges Dubus
bcae495c50
Added a -e option to random that makes the distribution even among artists
2013-05-03 18:19:44 +02:00
Adrian Sampson
dd8d4c16cc
spell check
2013-04-29 10:23:21 -07:00
Adrian Sampson
374e043c3c
API/test enhancements for #257
...
Also, `cautious` defaults to False for backwards-compatibility.
2013-04-27 16:47:42 -07:00
Fabrice Laporte
2dc15a0e2b
Use re.search instead of re.match with simplified regex.
...
Add additional cover_names parameter to art_in_path, and makes 'cover_names' a plugin config option.
2013-04-27 12:21:57 +02:00
Fabrice Laporte
d9e213867c
fetchart (issue 459): use regex to detect valid image names + 'cautious' option for finer control of filename matching
2013-04-22 23:44:35 +02:00
Adrian Sampson
bf904187e2
smartplaylist: split query w/ shlex ( fixes #256 )
2013-04-21 20:55:07 -07:00
Adrian Sampson
aaafba4d28
changelog for #254
2013-04-21 20:41:01 -07:00
Fabrice Laporte
0fb877a059
lastgenre: invert 'force' option default value.
2013-04-21 23:34:20 +02:00
Fabrice Laporte
6fdfabe4b7
Revert "lastgenre: force real lookup during import only if no custom whitelist set."
...
This reverts commit 4be30fca2e .
2013-04-21 10:35:08 +02:00
Fabrice Laporte
4be30fca2e
lastgenre: force real lookup during import only if no custom whitelist set.
2013-04-20 14:29:14 +02:00
Adrian Sampson
2a9afd3908
misc. style cleanup for #243
2013-04-15 10:52:17 -07:00
Adrian Sampson
1622dcefb7
Merge pull request #243 from KraYmer/master
...
Add a lyrics backend that scrapes results from google custom search api
2013-04-15 10:19:31 -07:00
Adrian Sampson
16e0648c81
lastgenre: fix crash with canonicalization
2013-04-10 10:34:06 -07:00
Adrian Sampson
8ae202cf24
changelog for #246
2013-04-10 10:18:58 -07:00
Uwe L. Korn
3b33705e3b
Compute Content-Length to make tracks seekable in most players via the web plugin
2013-04-10 14:21:47 +02:00
Fabrice Laporte
479b25bac3
Code style + fix doc typo
2013-04-08 18:35:02 +02:00
Fabrice Laporte
7b13edee40
lyrics: restore tags write and fix extract_text()
2013-04-06 18:24:30 +02:00
Fabrice Laporte
cfb6735e43
Add a lyrics backend that scraps results from google custom search api.
...
Add a 'fallback' option to facilitate working around the 100 queries/day google
limit by marking files as 'visited' so they are not considered for lyrics search
on the next beet run.
I've put my own google_engine_ID as default value in the code but could be
reconsidered, this engine contains databases known to be scrappable by the
plugin algorithm though.
2013-04-06 15:22:04 +02:00
Adrian Sampson
70b528ed81
use standard query API for album-by-artist ( #240 )
2013-04-02 20:31:28 -07:00
Uwe L. Korn
dcc1e1aa71
Add functions needed for ScriptCollection Support in Tomahawk
2013-04-01 17:50:51 +02:00
Fabrice Laporte
6405962beb
Merge branch 'master' of https://github.com/sampsyo/beets
2013-03-25 22:29:02 +01:00
Lucas Duailibe
51ed0939d6
fixing things
2013-03-25 15:20:38 -03:00
Lucas Duailibe
c682ac84b0
one more error message ( #125 )
2013-03-25 11:45:11 -03:00
Lucas Duailibe
56c53acbab
human-friendly error messages ( #125 )
2013-03-25 11:24:42 -03:00
Adrian Sampson
f8d6e84581
invert new embedart switch ( #182 )
...
The default behavior now does what most people probably expect, which is to
run like the on-import handler for the embedart plugin.
2013-03-17 22:50:28 -07:00
Lucas Duailibe
0c53c0bc3f
option to embed current album arts ( closes #182 )
2013-03-17 22:52:51 -03:00
Lucas Duailibe
7b2ff4ae9b
fix mbsync bug
...
This fixes a bug that only applied changes to the first item of an album
2013-03-17 02:50:32 -03:00
Fabrice Laporte
9c0fa57f34
Merge branch 'master' of https://github.com/sampsyo/beets
2013-03-16 09:16:21 +01:00
Adrian Sampson
3e1a181d3a
fix extra super call in fuzzy
...
This was dumb of me.
2013-03-14 18:43:44 -07:00
Adrian Sampson
f474f3aed2
split FieldQuery into base and registered versions
2013-03-14 10:00:30 -07:00
Adrian Sampson
f005ec2de0
refactor: everything is like a plugin query ( #214 )
...
The initial idea for this refactor was motivated by the need to make
PluginQuery.match() have the same method signature as the match() methods on
other queries. That is, it needed to take an *item*, not the pattern and
value. (The pattern is supplied when the query is constructed.) So it made
sense to move the value-to-pattern code to a class method.
But then I realized that all the other FieldQuery subclasses needed to do
essentially the same thing. So I eliminated PluginQuery altogether and
refactored FieldQuery to subsume its functionality. I then changed all the
other FieldQuery subclasses to conform to the same pattern.
This has the side effect of allowing different kinds of queries (even
non-field queries) down the road.
2013-03-13 22:57:20 -07:00
Adrian Sampson
40b49ac786
some low-level tweaks to extensible queries ( #214 )
2013-03-13 21:59:03 -07:00
Philippe Mongeau
292092bef7
Merge #214 extend query syntax from plugins
...
Conflicts:
docs/changelog.rst
2013-03-13 18:32:27 -04:00
Adrian Sampson
54d8adf6a6
changelog for #180
2013-03-12 22:00:11 -07:00
Lucas Duailibe
b9844ccf3a
importfeeds: absolute path option ( #180 )
2013-03-13 01:50:09 -03:00
Adrian Sampson
ae40b97528
chroma: catch acoustid exceptions during submit
2013-03-12 20:30:57 -07:00
Adrian Sampson
7b7a4257ac
mbcollection: use library functions
...
Since we now require python-musicbrainz-ngs 0.3 or later, we no longer have to
hand-craft the API requests.
2013-03-11 19:43:57 -07:00
Adrian Sampson
aff3fb106d
chroma: fingerprint command's write from config
...
This turns on metadata-writing based on the import.write config option, so
those with this option turned off will be spared any surprises. (Affects #217
and #143.)
2013-03-11 19:19:48 -07:00
Lucas Duailibe
704259b459
fix typo
2013-03-11 19:26:33 -03:00
Lucas Duailibe
a6ae5c4a4f
cleaning up
2013-03-11 19:22:03 -03:00
Lucas Duailibe
3390fd339a
store fingerprints with the "fingerprint" command
2013-03-11 18:31:53 -03:00
Lucas Duailibe
8a64686ff3
store fingerprints
2013-03-11 17:56:13 -03:00
Philippe Mongeau
8b1511a8af
fix fuzzy config
2013-03-10 20:39:02 -04:00
Philippe Mongeau
ca8af62e9c
change queries() function to returns a dict
...
of {prefix: PluginQuery}
use the class __name__ as sqlite function name
make RegexpQuery use the AnyPluginQuery
2013-03-10 20:11:42 -04:00
Philippe Mongeau
2a42c75cba
fuzzy: use smartcase for the pattern
...
ignore case unless the pattern contains a capital letter
2013-03-10 19:07:29 -04:00
Philippe Mongeau
7d879289c1
fuzzy: add prefix config
2013-03-10 18:00:28 -04:00
Philippe Mongeau
09156b03f0
fuzzy: use threshold value from config
2013-03-10 17:37:03 -04:00
Philippe Mongeau
7314bc0524
make fuzzy use PluginQuery instead of a subcommand
2013-03-10 16:50:54 -04:00
Adrian Sampson
01a449ffa6
convert: auto ( #212 ) now transcodes to /tmp
...
This avoids naming conflicts in the source directory. In particular, when
encoding MP3 -> MP3, the previous scheme would overwrite the original file
(and hang ffmpeg waiting for input). This should also work in
situations where the source directory is read-only.
2013-03-10 13:22:05 -07:00
Adrian Sampson
8736a0bb4c
convert auto: changelog and de-cloning ( #212 )
2013-03-10 13:12:56 -07:00
Adrian Sampson
47a549a31c
Merge pull request #212 from duailibe/auto_convert
...
Transcode files during import
2013-03-10 12:57:36 -07:00
Lucas Duailibe
c2c96d522f
config name and docs update
2013-03-09 23:33:45 -03:00
Lucas Duailibe
a3d8105a5a
small fix
2013-03-09 20:04:26 -03:00
Lucas Duailibe
27b1d6d7cc
clean up old files and remove pdb
2013-03-09 19:36:34 -03:00
Lucas Duailibe
e49ca34f3c
partial commit
2013-03-09 19:09:43 -03:00
Adrian Sampson
7d9fd0a2cf
convert: fix unicode error in path construction
...
I introduced a regression a few commits ago when I started using
lib.destination with the basedir keyword argument as opposed to doing
os.path.join manually.
2013-03-09 11:37:10 -08:00
Adrian Sampson
218f10a62d
echonest_tempo: catch socket.error
2013-03-09 11:33:55 -08:00
imenem
12476ca22e
Added Discogs search plugin.
2013-03-07 17:59:52 +02:00
Adrian Sampson
69f2659410
convert: read new audio metadata ( #208 )
2013-03-06 23:11:08 -08:00
Adrian Sampson
87d71abc28
changelog/cleanup/fixes for #209
...
The major functional change here is how files move around when in keep_new
mode. Now, files are first moved to the destination directory and then
copied/transcoded back into the library.
This avoids problems where naming conflicts could occur when transcoding from
MP3 to MP3 (and thus not changing the filename).
2013-03-06 18:21:42 -08:00
Lucas Duailibe
a338b95bb7
Changing behavior in "keep new files"
2013-03-06 22:04:05 -03:00
Lucas Duailibe
28522376be
Adding "keep new files" option to convert plugin
2013-03-06 21:41:40 -03:00
Fabrice Laporte
72a06e96d0
Merge branch 'master' of https://github.com/sampsyo/beets
2013-03-04 08:38:09 +01:00
Adrian Sampson
1a7ec6dc79
mbsync: fix redundant album art movement
...
Since we explicitly move album art later in the process, implicitly moving it
with items can cause a double-move (and thus a "file not found" error).
2013-03-03 17:46:16 -08:00
Adrian Sampson
18688008a4
mbsync: avoid spurious stores/moves
...
As _print_and_apply_changes itself does for items, we now shortcut
modifications (metadata and filesystem) for albums when no changes are
required for a given album. This avoids effectively doing a "beet move" on an
album even when nothing has changed.
2013-03-03 17:19:05 -08:00
Adrian Sampson
5f68d03793
mbsync: don't write tags if import.write is off
...
This will avoid surprising users with import.write turned off.
2013-03-03 17:13:54 -08:00
Adrian Sampson
72263a1cf7
mbsync: use ID lookups instead of full match logic
...
This change uses _album_for_id and _track_for_id instead of the full
autotag.match.* functions. This should be faster (requiring fewer calls to the
MusicBrainz API) while also being more predictable. It also won't, for
example, use acoustic fingerprinting even if the chroma plugin is installed.
Finally, this change catches the error case in which MBIDs are erroneous. This
can happen, for example, if the user has some track MBIDs left over from
before the NGS transition.
2013-03-03 17:08:07 -08:00
Adrian Sampson
a8d999a101
mbsync: split album/item functions; shorter txns
...
The main change here is to use shorter transactions -- one per matching entity
-- rather than one large one. This avoids very long transactions when the
network happens to move slowly.
2013-03-03 16:52:14 -08:00
Adrian Sampson
54e070d06b
mbsync: use SingletonQuery for item updates
2013-03-03 16:29:31 -08:00
Jakob Schnitzer
d647ea0f0d
mbsync: a little refactoring
2013-03-03 23:39:14 +01:00
Jakob Schnitzer
3a9c9d53da
mbsync: add support for singletons
...
I can't really guarantee this works right now since I have no singletons
in my collection to test it
2013-03-03 23:39:13 +01:00
Jakob Schnitzer
cd7305d487
mbsync: write metadata to files...
2013-03-03 23:39:13 +01:00
Jakob Schnitzer
2fd3ad5362
initial version of the mbsync plugin
...
this plugin provides a faster way to query new metadata from
musicbrainz. (instead of having to 're-import' the files)
Currently it lacks all forms of documentation and will only work for
album queries. not really tested so far so be careful
2013-03-03 23:39:13 +01:00
Jakob Schnitzer
ef22ea5183
convert: add missing util.displayable_path
2013-03-01 16:16:28 +01:00
Fabrice Laporte
91255c5ae1
Merge branch 'master' of https://github.com/sampsyo/beets
2013-03-01 08:25:39 +01:00
Adrian Sampson
1fbbe61546
mbcollection: human-readable MB exceptions
...
Fixes #107 by wrapping the API invocation function with exception handlers.
2013-02-28 10:43:02 -08:00
Adrian Sampson
c31eabe95c
convert: add missing syspath call ( closes #106 )
2013-02-27 10:30:24 -08:00
Adrian Sampson
a1e89b879d
echonest_tempo: warn on API error
2013-02-18 18:40:59 -08:00
Adrian Sampson
63564d84e7
echonest_tempo: sanitize newlines from input
...
The Echo Nest API confusingly says that the input is missing if it contains a
newline.
2013-02-18 18:34:31 -08:00
Dang Mai
3be24110d7
Sanitize template evaluation for smartplaylist
2013-02-11 21:37:14 -05:00
Adrian Sampson
d1e50da71f
fetchart: remote_priority config option
2013-02-10 21:40:55 -08:00
Fabrice Laporte
6b2e409007
Merge branch 'master' of https://github.com/sampsyo/beets
2013-02-09 17:46:06 +01:00
Adrian Sampson
f7f2454134
docs & style for #92
...
We already have a nice plurality() function in beets.util to calculate the most
popular value of something, so I reused that.
2013-02-06 10:55:48 -08:00
Peter Schnebel
7193f4e863
Do not write track-level genres if source is not 'track'.
2013-02-06 08:41:20 +01:00
Peter Schnebel
9f1e9031b6
Try to guess 'Various Artists' genre based on track genres if source is 'track'.
2013-02-06 08:15:29 +01:00
Peter Schnebel
d667fca02e
Do not write track-level genres if source is not 'track'.
...
For 'Various Artist' compilations without a usefull 'album' genre, pick the most used track / track-artist genre.
2013-02-06 08:04:58 +01:00
Adrian Sampson
976bc20900
collapse separate album and item paths ( #92 )
...
Should reduce copypasta overhead significantly.
2013-02-05 12:16:53 -08:00
Adrian Sampson
3860a5ac27
lastgenre: "auto" config option
2013-02-05 12:02:51 -08:00
Adrian Sampson
e50e28dc38
canonicalize original genre ( #92 )
2013-02-05 11:58:24 -08:00
Adrian Sampson
d1e752fdeb
simplify configuration handling ( #92 )
2013-02-05 11:51:32 -08:00
Adrian Sampson
f38bed787e
remove verbose option ( #92 )
...
The lastgenre command should always log what it's doing so the user can see
the progress being made. If you really don't want any output, just pipe to
/dev/null.
2013-02-05 11:40:04 -08:00
Adrian Sampson
1fe36057b0
Python style and legibility cleanup for #92
2013-02-05 11:34:17 -08:00
Adrian Sampson
cd2d4c9b8a
Merge pull request #92 from pscn/master
...
lastgenre improvements
2013-02-05 10:31:46 -08:00