Commit graph

2045 commits

Author SHA1 Message Date
Adrian Sampson
c617033476 convert: Add some comments 2015-11-01 11:01:40 -08:00
Adrian Sampson
5f5a8946c3 convert: Debug log when embedding images
To help diagnose #1671.
2015-10-30 15:25:01 -04:00
kooimens
0257b1077f Simplify some code 2015-10-30 17:49:57 +01:00
kooimens
0ed98515ad Embedart: remove_art_file on import
Should fix #1662.

I think the fix is easy. Don't know if it's clean though. Did some tests (+/- 10 albums), all successful. This is the first time I'm using python so please let me know what I should improve:)
2015-10-30 17:04:11 +01:00
Adrian Sampson
16ad174d29 A debug message for ReplayGain 2015-10-29 17:43:31 -04:00
Frederik “Freso” S. Olesen
5f5365021d lastgenre: Clean up Spanish reggae in the genre list.
* Add missing subgenres to whitelist and tree.
* Use proper terminology.
  * Add English term as child of Spanish one.

Source: https://en.wikipedia.org/wiki/Reggae_en_Espa%C3%B1ol
2015-10-29 05:00:33 +01:00
Frederik “Freso” S. Olesen
1aa808f37b lastgenre: Add raggamuffin.
Already recognised by the genres.txt whitelist, and is a more proper
term for `ragga`.

https://en.wikipedia.org/wiki/Ragga
2015-10-29 04:58:44 +01:00
Frederik “Freso” S. Olesen
1678c1d847 lastgenre: Replace top-level genre ska with reggae
… and move relevant genres from the tree to be children of the `reggae`
top-level genre as well as add `roots reggae` to the list.

See discussion at https://github.com/sampsyo/beets/issues/1661
2015-10-29 04:55:57 +01:00
Frederik “Freso” S. Olesen
b187251a7e lastgenre: Remove dance hall and polish reggae.
Neither of the two are recognised in the genres.txt whitelist.
2015-10-29 04:53:14 +01:00
Frederik “Freso” S. Olesen
004fb7d1c8 lastgenre: Fix up ragga jungle.
* Move `ragga jungle` to beneath `oldschool jungle`.
* Remove `ragga-jungle` which isn't recognised by the genre whitelist.

https://en.wikipedia.org/wiki/Ragga_jungle
2015-10-29 04:44:15 +01:00
Adrian Sampson
f784cd1a22 Fix #1656, maybe: encode Discogs token strings 2015-10-24 12:07:40 -07:00
Alex Nerten
a4ae7fa891 Update plexupdate.py
Fix #1649
2015-10-19 15:24:59 +03:00
Adrian Sampson
000487c757 Merge pull request #1639 from sadatay/genius_lyrics
Add Genius as a lyric source
2015-10-17 14:51:01 -07:00
Adrian Sampson
8c35a24073 zero: Check for conflicts only once (#1641)
The old version would trigger the warning twice.
2015-10-17 14:39:53 -07:00
Joe LaSala
3ab9932059 Add Genius as a lyric source
Makes use of the Genius API and genius-api.com, a separate resource that
provides readable lyrics.
2015-10-13 19:14:08 -05:00
Adrian Kowalski
d180d42ddb Fix flake8 complaint about line length 2015-10-12 09:50:12 +02:00
Adrian Kowalski
da655534ae Change function name and correct documentation style 2015-10-12 09:39:20 +02:00
Adrian Kowalski
158486319f Improve code quality, separate shared logic into functions 2015-10-09 21:23:59 +02:00
Adrian Kowalski
9f51e46bae Add whitelist feature to zero plugin 2015-10-09 18:41:42 +02:00
Aaron Cruz
5fd836b173 Remove yaml keys without sublists 2015-10-07 12:15:09 +02:00
Adrian Sampson
3475b91c00 Remove unused import
Oops. I was trying to use shlex.quote, but that's Python 3.3+.
2015-09-30 10:32:37 -07:00
Adrian Sampson
2607bee997 Tiny fixes for play 2015-09-30 10:11:17 -07:00
Peter Kessen
6993449602 removed deprecated checko for mtime!=None 2015-09-30 16:40:30 +02:00
Jack Wilsdon
55bd513278 Remove completed TODO comments 2015-09-12 02:17:06 +01:00
Jack Wilsdon
417a724e42 Remove unused sys import and use correct platform encoding 2015-09-12 02:15:11 +01:00
Jack Wilsdon
0dff24eb96 Move Popen call to a single line 2015-09-12 02:14:33 +01:00
Jack Wilsdon
ae2ff6185f Use default stdout and stderr streams for hook processes 2015-09-12 02:09:19 +01:00
Jack Wilsdon
8b7af7fe23 Fix indentation for wrapped method call 2015-09-11 18:38:30 +01:00
Jack Wilsdon
8fea1e65c5 Add logging for hook plugin 2015-09-11 18:11:24 +01:00
Jack Wilsdon
2d0c217252 Improve the way substitute_args is iterated
Iterate substitute_args instead of kwargs, as we
ignore anything that is not in substitute_args
already.

Fix an issue where a hook argument containing
non-ascii characters caused an exception.
2015-09-11 15:19:51 +01:00
Jack Wilsdon
88ece413f3 Add Hook plugin to run commands on events
This plugin allows users to execute scripts on
different events, as well as forward any
arguments from the events to the script.
2015-09-11 04:49:50 +01:00
Adrian Sampson
c7603fcbd5 Merge pull request #1595 from jackwilsdon/add-plex-library-config
Add `library_name` configuration property to PlexUpdate plugin (fixes #1572)
2015-09-09 19:41:34 -07:00
Adrian Sampson
225ba282cd Fix #1592 again: wrap title_gain in handler 2015-09-08 12:07:03 -07:00
Jack Wilsdon
764fcc6b4c Add library_name configuration property 2015-09-08 12:48:24 +01:00
Adrian Sampson
b41259623d Merge pull request #1577 from nathdwek/play-warn-tresh
play: make the many files warning configurable
2015-09-07 14:39:05 -07:00
Adrian Sampson
2140bb27a3 Fix #1592: unhandled exception in PyAudioTools 2015-09-07 14:15:46 -07:00
Jack Wilsdon
64e33b2d9a Remove unused import 2015-09-07 01:55:44 +01:00
Jack Wilsdon
38926caebe Reset album art to None when removed 2015-09-07 01:52:03 +01:00
Jack Wilsdon
9eb4fc530b Wrap line to ensure it is less than 80 characters 2015-09-06 21:53:34 +01:00
Jack Wilsdon
420b0724a0 Add remove_art_file configuration property 2015-09-06 21:45:15 +01:00
nath@home
ff4fda1bb5 play: make the many files warning configurable
The warning_treshold key in the play configuration defines the
minimum number of file before a warning is issued (default 100).
A zero value means no warning is ever issued.

This is the first commit for this feature, and this should fully
implement it.
2015-09-03 22:19:51 +02:00
Adrian Sampson
854a4539cb Fix #1588: fetchart gets PNGs, not GIFs 2015-09-02 12:45:35 -07:00
nath@home
b9bc06d9d8 play-raw: Rename the command target:
passed_to_command -> open_args
2015-09-01 23:42:43 +02:00
nath@home
9c663432bd Refactor util/interactive_open: multiple targets
interactive_open should now be invoked with at least the list of
targets and optionally the command to open the targets with.
This allows beets-play to pass multiple file paths directly to
the configured command.

The changes to the existing invocations are pretty trivial in
order to comply to this refactor.
2015-09-01 23:42:42 +02:00
nath@home
4eb563a08c pep8: Correct camelCase to snake_case 2015-09-01 23:42:42 +02:00
nath@home
a23c5d4f67 play-raw: Call vlc with one file par arg 2015-09-01 23:42:42 +02:00
nath@home
18d5c3b0a0 play-raw: Add the option to play the raw queried pathes
I slightly rewrote the play plugin in order to improve
the readability and to introduce the "raw" play config
option which makes beet simply pass a list of pathes
to the play command rather than a playlist.
2015-09-01 23:42:42 +02:00
Adrian Sampson
e32744a66a Fix extra parameter introduced for #1581 2015-08-30 11:55:06 -07:00
Adrian Sampson
9ce49b7ef0 fetchart: Do not emable Wikipedia by default
Because DBpedia seems to be down (it's responding very slowly with errors),
this seems like a good defensive action. It narrows the default sources to
those that resolve quickly, with only a couple of HTTP requests. We can
re-enable this again in the future if things seem to stabilize over at
DBpedia.
2015-08-29 12:52:57 -07:00
Adrian Sampson
e249fcb06f fetchart: Fix #1581, splitting in Wikipedia source 2015-08-29 12:45:10 -07:00
Adrian Sampson
b5cb4e4cc4 Slightly more efficient image streaming 2015-08-29 12:41:54 -07:00
Adrian Sampson
3d20f25f06 fetchart: Fix bungled Requests API 2015-08-29 12:27:37 -07:00
Adrian Sampson
75e810409b fetchart: Use a mixin for even more logging 2015-08-29 12:13:28 -07:00
Adrian Sampson
608e4ffbef fetchart: Lots more logging 2015-08-29 11:59:46 -07:00
Adrian Sampson
2b1d7fc3aa fetchart: Logging, naming, remove unused option 2015-08-29 11:31:59 -07:00
Adrian Sampson
f899ed93ac lastimport: Log error responses
For debugging #1574.
2015-08-24 11:09:45 -07:00
Adrian Sampson
cde509a638 Merge pull request #1570 from fxthomas/badfiles
Badfiles: Easier default configuration, docs update and color output
2015-08-16 09:27:08 -07:00
Adrian Sampson
759c79c426 play: Insert arguments anywhere (#1532) 2015-08-16 09:23:09 -07:00
François-Xavier Thomas
c54105d272 badfiles: Fix unicode error on some queries 2015-08-15 15:37:47 +02:00
François-Xavier Thomas
ded73354a9 badfiles: Added color output 2015-08-15 15:19:04 +02:00
François-Xavier Thomas
e8cb1241f5 badfiles: If not configured, use default checkers 2015-08-15 14:39:37 +02:00
François-Xavier Thomas
27075ea037 badfiles: Fixed weird use of sum 2015-08-15 14:39:35 +02:00
Adrian Sampson
ecf677ae41 Reorganize up some badfiles documentation 2015-08-14 20:50:29 -07:00
Adrian Sampson
c756b3eedb badfiles: Clean up for beets style
Use {} formatting, 80 character wrap, ___future__ imports.
2015-08-14 20:37:36 -07:00
Adrian Sampson
82484be232 Add badfiles plugin as-is 2015-08-14 20:32:19 -07:00
Adrian Sampson
ab7e9d4db2 Simplify #1532: CLI only, append to end 2015-08-14 19:52:49 -07:00
Adrian Sampson
7b6c773a3f Cleanup for #1532 2015-08-14 19:44:11 -07:00
Adrian Sampson
217a8126bc Merge pull request #1532 from pheerai/play_opt_arg
Added optional argument for play-plugin
2015-08-14 19:23:34 -07:00
Adrian Sampson
4038f191da Fix #1564 (regression from #1559) 2015-08-08 11:23:55 -07:00
Oliver Rümpelein
94258110a7 Forgot to remove an if-statement. 2015-08-03 17:01:56 +02:00
Oliver Rümpelein
69377291ff Try to fix TravisCI-errors. 2015-08-02 21:08:44 +02:00
Oliver Rümpelein
d05e251a14 Merge branch 'master' into play_opt_arg,
to make AppVeyor-builds possible.
2015-08-02 20:51:26 +02:00
Oliver Rümpelein
90bb4081fe Implemented --args-feature
* as discussed in #1532, with args-parameter, and optionally
   inserted config-key
 * updated changelog/docs
2015-08-02 20:44:56 +02:00
Adrian Sampson
96c5121f65 Documentation for #1555/#1556 2015-08-01 15:00:13 -07:00
Ben Ockmore
4818264a36 Added TypeError to the list of caught exceptions in fetachart._fetch_image
requests/urllib3 is throwing an exception due to an internal problem triggered
by some sort of timeout. This change catches the TypeError so that beets
reports "error fetching art" instead of crashing when this happens.
2015-08-01 16:50:59 +01:00
Oliver Rümpelein
5f9068cb50 Implemented Idea 2 from #1532
* New argument `--optargs` reads string from option
 * If "{}" is present in the given string, the `optargs`
   from config-file get inserted at that point.
2015-08-01 13:55:17 +02:00
Sven Oos
74f58e7b3c Bugfix:
Items had not been filtered. Converting the tags' weight into an integer solves it.
2015-08-03 23:46:50 +02:00
Adrian Sampson
7d55126070 Merge pull request #1397 from multikatt/ipfs
Ipfs plugin
2015-08-02 18:39:55 -07:00
Adrian Sampson
f6ecbf659f Silly oversight in fix for #1551 2015-07-28 22:39:53 -07:00
Adrian Sampson
ebf98d7bf0 duplicates: Avoid Unicode-to-bytes comparison
Fix #1551.
2015-07-28 22:36:27 -07:00
Adrian Sampson
5420599839 New all_keys() method on dbcore.Model
Rather than the ad-hoc one on library classes. This also avoids some confusing
duplication in the `beet fields` output, at the cost of turning off the plugin
distinction.
2015-07-28 22:27:43 -07:00
David Logie
71d3be238b zero: optionally update tags in the database. 2015-07-21 16:54:23 +01:00
Adrian Sampson
493fbab1a5 replaygain: Fix #1518, GStreamer missing plugins 2015-07-06 16:23:04 -07:00
Oliver Rümpelein
3b6373541a Fixed Errors indicated by travis-ci
See https://travis-ci.org/sampsyo/beets/jobs/69335554
2015-07-05 15:00:46 +02:00
Oliver Rümpelein
3b2c3a5b31 Renamed options, corrected small typos. 2015-07-02 20:46:10 +02:00
Oliver Rümpelein
0a995c218a Added optional argument for play-plugin
* New config key "play -> optargs"
 * New Subcommand argument "-o", "--optargs"
 * Set position using "{}" within "play -> command"-string
2015-07-02 20:25:54 +02:00
Kylie McClain
c7cdadfd49 fetchart: Use text_highlight_minor for color rather than text_success 2015-06-22 02:15:49 -04:00
Kylie McClain
b8d6c37fec fetchart: Use success coloring if album art is found 2015-06-19 20:36:50 -04:00
multikatt
cdef5fd473 Speed up import 2015-06-11 01:19:09 -04:00
multikatt
4d0d1ebc7a Dont refetch already existing libs 2015-06-11 00:08:01 -04:00
multikatt
10bf15da1d Adding logs 2015-06-11 00:06:48 -04:00
multikatt
2105fb9e1f Rename argument lib to album in ipfs_add() 2015-06-10 11:32:55 -04:00
multikatt
8ad22749ea Unset item.id to avoid double add items to albums
This hugely improves publishing times
2015-06-10 11:09:56 -04:00
Adrian Sampson
ce91a0c929 keyfinder: Fix #1502 (unicode paths) 2015-06-09 16:34:02 -07:00
multikatt
15f17116c5 Dont readd albums to ipfs 2015-06-07 17:38:31 -04:00
multikatt
0fa02519a7 Adding auto add support 2015-06-07 16:55:36 -04:00
David Logie
85ffe444dc mpdupdate: Improve error message
When beets can't connect to mpd, display the underlying error instead of
dying with an ugly exception.
2015-06-05 11:45:38 +01:00
Ed Carroll
865fb0a25f Updated docs and changelog
Updated the append function to be a bit safer when adding the token
parameter. Updated docs and changelog
2015-06-04 10:48:38 +01:00
Ed Carroll
1db1edfb42 Fixed line lengths 2015-06-04 01:33:17 +01:00
Ed Carroll
b7d75e1d18 PlexUpdate plugin updated for Plex Home
PlexUpdate plugin updated to allow Plex Tokens to be provided with the
server details so that beets can update a Plex library that requires
authentication.
2015-06-04 00:49:17 +01:00
multikatt
f64df80974 Catch failed folder creation 2015-06-03 08:08:02 -04:00
multikatt
163b049f41 Tidying up 2015-06-02 23:02:00 -04:00
multikatt
5c3459e2a6 Make create_new_album a new function 2015-06-02 22:23:38 -04:00
Fabrice Laporte
72075dde5d fix #1490 don't overwrite basename argument 2015-06-02 22:12:00 +02:00
multikatt
fe29397fcc typo 2015-06-01 22:54:25 -04:00
multikatt
0f0329abb9 Add --play flag 2015-06-01 22:47:04 -04:00
multikatt
46202a3cf0 Properly add albums to published library 2015-06-01 22:45:49 -04:00
multikatt
0fcea289f7 Log notification 2015-05-31 20:46:07 -04:00
multikatt
4f3a228a23 Use beets.util.command_output instead of subprocess 2015-05-31 20:45:39 -04:00
multikatt
9771d899db remove dulicate ui.decargs 2015-05-31 20:17:05 -04:00
multikatt
4dc3299dc8 Fix E226 2015-05-31 01:47:09 -04:00
multikatt
5bb976d8f4 Better error handling when theres nothing imported
yet
2015-05-31 00:46:43 -04:00
multikatt
a80b402f2f -l actually queries the libraries 2015-05-31 00:46:06 -04:00
multikatt
d0dc2014f6 typo 2015-05-31 00:35:56 -04:00
multikatt
d3ec311721 Dont fail if theres no imported albums 2015-05-31 00:32:03 -04:00
Adrian Sampson
90178ab380 Always log a template literal (fix #1481)
Otherwise, we risk the user-provided string looking like a format string! If
it contains curly braces, it can behave unexpectedly.
2015-05-28 23:44:41 -04:00
Adrian Sampson
3b43b78b67 Merge pull request #1479 from glogiotatidis/flagsfix
[convert] Fix dest and format flags help text.
2015-05-25 11:34:51 -07:00
Pedro Silva
3be593693d add merging functionality to duplicates plugin
This patch depends on %aunique not being present in config.paths
for behavior as intended.

The logic surrounding moving/copying a track from a duplicated album to
the original one could probably be extracted out and put into
library.Album.

This is based on the ordering imposed by the tiebreaking facility
introduced in 6be98b0a36. Once a natural
duplicate ordering is in place, then the strategies for merging are:

Items:

Iterate through each available field:
    Iterate through each duplicate:
        If current duplicate has a field not set in the original, set it there
        Break

Albums:

Iterate through each duplicate:
    Iterate through each item in duplicate:
        If current item is not present in original, copy it there
        Continue
2015-05-25 18:12:06 +02:00
Giorgos Logiotatidis
4a8f978f4c [convert] Fix dest and format flags help text. 2015-05-25 14:37:38 +03:00
Old T. Man
acd0a902bb Fix search term encoding. 2015-05-23 13:19:28 -06:00
Adrian Sampson
07242f65e2 Convert always uses bytestring args (#1461) 2015-05-19 16:38:08 -07:00
Tom Jaspers
a7eace81d4 fetchart: improve Wikipedia art source
Artists with non-typical casing (e.g., alt-J, dEUS) would not get matched on
DBPedia, as the RDFS:label uses arbitrary casing, and SPARQL provides only exact
matches. The FOAF:name attribute is always title-cased (e.g., Alt-J, Deus).

Due to a bug in DBPedia, the cover filename is truncated when it contains
parentheses, (e.g., 'Foo bar (band).jpg' gets truncated to 'Foo bar .jpg').
To work around this, an additional Wikipedia call gets made for all its
images, in which we try to match our truncated image.

The Wikipedia art source now catches the correct exceptions, instead of
a broad catch-all.

Wikipedia album images can be gifs, so these are now added to the list of
accepted content types.
2015-05-19 09:57:54 +02:00
Tom Jaspers
a82dee35cb fetchart complains if no imaging backend available
The `enforce_ratio` and `minwidth` options depend on PIL or ImageMagick.
Previously it silently fails. Now it will log a warning, and accept the
image.

Tests concerning these options are skipped when no imaging backend is available.

Fix #1460
2015-05-18 19:44:40 +02:00
Pedro Silva
0377510522 handle albums during default attribute set completeness sorting 2015-05-17 23:56:10 +02:00
Pedro Silva
684f4deadc fix typo during tagging: option -t now actually works 2015-05-17 15:01:48 +02:00
Pedro Silva
6be98b0a36 add tiebreaking facility 2015-05-16 19:25:47 +02:00
multikatt
b336e5f195 Get remote albums from query 2015-05-15 15:48:07 -04:00
multikatt
b123e8259d Remove implemented TODO comment 2015-05-15 14:14:29 -04:00
multikatt
0c596fd163 Break out query into its own function 2015-05-15 14:13:01 -04:00
multikatt
a091f9e71a Add support for naming remote libraries 2015-05-15 13:25:50 -04:00
multikatt
4109d825d1 Clearing local paths from published libs 2015-05-15 11:51:18 -04:00
Pedro Silva
834418de6d fix #1457: enforce correct config typing 2015-05-15 11:48:27 +02:00
multikatt
3990ac185e adding list command, listing remote albums 2015-05-15 00:34:52 -04:00
multikatt
8cb262cbd1 Join all remote libraries albums into a single lib 2015-05-15 00:20:58 -04:00
multikatt
538a99599e Put all remote libs in a directory 2015-05-14 22:54:55 -04:00
multikatt
17e81b6d6c strip newlines from lines 2015-05-14 20:18:28 -04:00
multikatt
7927cb5f47 remove unused variable 2015-05-14 19:34:15 -04:00
multikatt
b3011fed6e Only publish albums/items added to ipfs 2015-05-14 19:05:22 -04:00
multikatt
835e58fa16 Add right files when adding folders with[...]
non music files.
2015-05-14 18:34:23 -04:00
Adrian Sampson
71d7c0b004 Merge pull request #1450 from tomjaspers/metasync-itunes
MetaSync: more OO structure +  iTunes support
2015-05-13 15:04:36 -07:00
Tom Jaspers
94edc7a2a4 MetaSync: minor improvements for iTunes source
- Use path as an key to find items (over artist/title/album tuples)
- Sensible default library location
2015-05-13 20:02:34 +02:00
Tom Jaspers
02bec1bdd7 MetaSync: Remove auto-discovery of sources
In favor of simpler, hard-coded, list of sources, to avoid unneccesary magic.

Also: check to see if query has results before instantiating the meta sources
2015-05-13 11:01:52 +02:00
multikatt
56d671745c Add support for importing remote libraries 2015-05-11 16:51:00 -04:00
multikatt
7be8765ee3 pep8 2015-05-11 15:59:23 -04:00
multikatt
da344c84fd Support for publishing library 2015-05-11 15:58:50 -04:00
multikatt
db641dccf2 Change print to self._log 2015-05-11 15:56:12 -04:00
multikatt
a3990e0b62 remove non empty directories 2015-05-11 15:33:45 -04:00
multikatt
b08ccb5d37 saving ipfs hashes in database 2015-05-11 15:27:03 -04:00
David
36bf49aa8d typo: thumnails -> thumbnails 2015-05-11 14:26:49 -04:00
Tom Jaspers
abd02052b9 MetaSync: small refactoring + enhancements
- `sync_data` -> `sync_from_source`
- properly catch ConfigValueError
- avoiding iterating through library if we couldn't instantiate any meta sources
- fix create_temporary_copy to actually make a tempdir
2015-05-10 14:44:37 +02:00
Tom Jaspers
bba8647bac MetaSync: rename 'cls' variable to '_cls' 2015-05-09 12:22:51 +02:00
Tom Jaspers
cb13d21ad6 MetaSync: automatic load of sources and item_types
- MetaSources get loaded from the modules automatically
- The MetaSources can define their own item_types, that get loaded for the plugin
- __init__ doesn't need any changes to accept new metasources
- Fix the --sources option to actually accept sources
  (it was being interpreted as boolean flag before, crashing the plugin)
- More safety w.r.t. external dependencies
2015-05-09 11:31:39 +02:00
Tom Jaspers
de5db7068b MetaSync: sources need to subclass MetaSource
- allows for the logging to integrate better
- renamed `get_data` to `sync_data`, to better reflect that its not returning anything,
  but that the item's data is being set by the function
2015-05-08 16:48:38 +02:00
Adrian Sampson
c856326865 Fix #1449: Unicode paths in permissions 2015-05-06 22:23:18 -07:00
Tom Jaspers
3dc2beda41 MetaSync: add iTunes synchronization
Uses plistlib to read a temp copy of `iTunes Library.xml`
2015-05-06 22:01:00 +02:00
Cody Reichert
b776a71a8c handle mpdstats update_rating when item is None / add appropriate tests 2015-04-28 23:23:27 -05:00
D Andrew Reynhout
c9380abc3b Test config opt import/write before embedding art (fixes #1427) 2015-04-23 15:43:56 -04:00
Heinz Wiesinger
c50d59f7e7 Rename metadata sync plugin. 2015-04-18 14:02:51 +02:00
Heinz Wiesinger
73fcbd07c3 Load metadata sync plugins dynamically. 2015-04-18 14:02:51 +02:00
Heinz Wiesinger
65307b410c Fix issues with unicode and unplayed tracks when syncing data with amarok. 2015-04-18 14:02:51 +02:00
Heinz Wiesinger
5e43b07128 Initial version of a plugin that syncs metadata from other applications. 2015-04-18 14:02:51 +02:00
Bruno Cauet
d134ad922d Discogs: add API errors to CONNECTION_ERRORS
This avoids potential crashes when DiscogsAPIError is not explicitely
caught.

Relates to #1417.
2015-04-17 17:32:42 +02:00
Adrian Sampson
b313c8b46a fuzzy: Fix #1422, regression crasher 2015-04-15 19:46:31 -07:00
Adrian Sampson
46f382fd9b importadded: Fix in-place singleton imports
Fixes #1416.
2015-04-14 11:45:20 -07:00
Adrian Sampson
0507f80fcd discogs: Handle errors on auth setup (fix #1417) 2015-04-14 10:26:39 -07:00
jmwatte
c834599b42 fix regex 2015-04-13 10:46:47 +02:00
Adrian Sampson
7372ad4831 replaygain: Log bs1770gain invocations
For clearer debugging in #1398.
2015-04-12 23:01:44 -07:00
Adrian Sampson
ab78eed02e replaygain: Avoid suppressing debug output (#1398)
This was suppressing debug output even with `beet -vv import`. This also avoid
registering an import hook when auto is disabled.
2015-04-12 22:59:48 -07:00
Adrian Sampson
9c7b8d22ca Catch empty output list in bs1770gain (fix #1398)
This should catch the original crash that brought this all up.
2015-04-10 09:01:13 -07:00
Adrian Sampson
6fcd88bc31 More precise comment for #1398 2015-04-10 08:53:54 -07:00
jmwatte
7128340385 fix no-PREFIX for long window-paths 2015-04-10 09:26:56 +02:00
Adrian Sampson
821c5bf3df Documentation pass for #1398 2015-04-09 17:06:35 -07:00
Adrian Sampson
ecb65a5a4a Idiomatic configuration defaults (#1398)
Paging @jmwatte: `config.add` is the standard way to specify defaults for
configuration options.
2015-04-09 16:55:18 -07:00
jmwatte
1f08470fb3 Merge branch 'master' of https://github.com/sampsyo/beets 2015-04-09 18:53:39 +02:00
jmwatte
51cfde4e9d fix bs1770gain for windows and exceptionally big albums 2015-04-09 18:48:37 +02:00
Bruno Cauet
882844bc77 Echonest conversion command: only use byte strings
Temp file name was unicode, so if other parts of the command were
utf8-encoded non-ascii strings the command would fail (in
beets.util.command_output()). Requesting a temp file with a byte string
path fixes the issue.

Fix #1407.
2015-04-09 18:05:41 +02:00
jmwatte
7ac6ba53ff fix bs1770gain for windows and exceptionally big albums 2015-04-09 18:02:32 +02:00
jmwatte
f1f7094938 fix bs1770gain for windows and exceptionally big albums 2015-04-09 17:18:26 +02:00
multikatt
58a8a3d386 Check for failed ipfs get:s 2015-04-07 15:01:12 -04:00
multikatt
4e4fa0580a Renaming hash to not collide with built in funct 2015-04-07 14:31:12 -04:00
Frederik “Freso” S. Olesen
0d21e816d4 Fetchart: Remove hard 500px size limit for CAA cover art.
Using -500 URLs for coverartarchive.org will only ever return images
where the biggest dimension is (width or height) is 500 pixels,
regardless of what fetchart settings are otherwise set.

This commit removes the -500 from the URL entirely rather than using it
conditionally, since a maxwidth of 500 will allow for a 600 high and 500
wide image, but CAA.org/...-500 would return a 500x417 image instead, so
not enforcing a size is the only way to ensure the user's {max,min}width
settings are properly respected.
2015-04-07 15:24:01 +02:00
multikatt
00f2e58fe8 Remove unused import 2015-04-06 18:47:17 -04:00
multikatt
f2d298d17c More linting 2015-04-06 18:11:38 -04:00
multikatt
540a267f9d Using self._log instead of ui.print_ 2015-04-06 17:48:25 -04:00
multikatt
247b4739ae Adding docstring 2015-04-06 17:21:51 -04:00
multikatt
85544199a7 Cleanup after download 2015-04-06 17:05:46 -04:00
multikatt
d3aff50dbe Linting 2015-04-06 16:20:37 -04:00
multikatt
0ab65fa566 adding get command 2015-04-06 15:34:17 -04:00
Tom Jaspers
7bdcb08ef5 Merge pull request #1394 from tomjaspers/fetchart-minwidth-ratio
Fetchart: minwidth and enforce_ratio options
2015-04-06 11:20:33 +02:00
multikatt
23d16d7b94 Very rough first version
The plugin can add items existing in the library to ipfs
2015-04-06 00:28:22 -04:00
Adrian Sampson
0af2cdaa3a New beets.art image utilities
This makes it cleaner to share the high-level image-embedding logic between
the `embedart` and `convert` plugins. This resolves a regression, introduced
in f504c786, that inadvertently activated the former plugin when the latter
was enabled. I also like avoiding cross-plugin imports.
2015-04-05 12:15:38 -07:00
Adrian Sampson
cf39977fbb Fix #1393: rewrite broken for album-level fields
We now create a computed field for albums as well as items. (This plugin is
very old!)
2015-04-04 16:03:12 -07:00
Tom Jaspers
b5ec26c949 Fetchart: minwidth & enforce_ratio options
- Minimum image width can be specified via minwidth (default `0`)
- The image ratio can be enforced to 1:1 using `enforce_ratio` (default `no`)

See #1058
2015-04-04 20:52:08 +02:00
Adrian Sampson
8ae0317014 bpd: Process commands as bytes (fix #1388) 2015-03-31 07:13:13 -05:00
Tom Jaspers
c95b89ebc1 Thumbnails: add None check on lib_name
`find_library` could return None, which would not cause an OSError
from `loadLibrary`, making the plugin (falsely) think the library is available

Also fixed  wrong method call to skip test in that case

See #1277
2015-03-30 19:56:22 +02:00
Adrian Sampson
e953e6bdcb Merge branch 'master' of github.com:sampsyo/beets 2015-03-29 14:28:22 -07:00
Adrian Sampson
e7bba32a44 Redact some API keys 2015-03-29 14:22:49 -07:00
Bruno Cauet
9705c09035 Merge branch 'thumbnails' 2015-03-29 21:44:42 +02:00
Adrian Sampson
eeca2105f9 Merge pull request #1377 from amishb/custom_ft_title
ftintitle plugin now allows a custom format to be defined (Correct Branch)
2015-03-29 12:05:53 -07:00
Pedro Silva
13d65f9c37 fix default format from config
The (automated?) change to add_format_option had broken the existing
formating logic
2015-03-28 17:23:11 +01:00
Amish Bhadeshia
9a38b07ed4 Housekeeping and styling changes 2015-03-28 11:20:28 +00:00
Pedro Silva
82ce6f054d make helper functions methods in plugin
This helps use the _log attribute that is now available
2015-03-28 10:08:07 +01:00
Adrian Sampson
ef5052e111 Merge pull request #1383 from autochthe/convert/tmpdir
convert: Add 'tmpdir' option
2015-03-27 23:05:18 -04:00
Adrian Sampson
07516b2bca Redact some passwords in plugins 2015-03-27 22:42:28 -04:00
Adrian Sampson
b477f4a53f Merge pull request #1376 from tomjaspers/config-redacted-fields
Config: new option -r redacts sensitive fields

Conflicts:
	beets/util/confit.py
2015-03-27 22:11:24 -04:00
Amish Bhadeshia
6365a9b538 Added indice into curly brackets, for py26 compatabiity 2015-03-27 20:54:42 +00:00
Amish Bhadeshia
232ff05766 Added tests and simplified implementation method 2015-03-27 17:59:35 +00:00
Bruno Cauet
e707342bf9 Add call to g_type_init() for glib < 2.36 2015-03-27 16:33:51 +01:00
Bruno Cauet
2e5803cfad Thumbnails: unicode → bytes filename 2015-03-27 14:00:22 +01:00
Bruno Cauet
f41ec9bbf6 ctpyes: set argtypes & restype 2015-03-27 14:00:13 +01:00
Pedro Silva
9999460cb4 hash attribute values as tuples instead of stringifying on SOH char 2015-03-27 11:48:51 +01:00
Pedro Silva
fb0e03dd6b remove redundant plugin name from logging 2015-03-27 11:47:40 +01:00
Pedro Silva
66e06baca7 fix #1000: provide --strict option (don't match on null attributes) 2015-03-27 11:34:45 +01:00
Mara Kim
ddca1b2e13 Add 'tmpdir' option to convert plugin
Closes sampsyo/beets#1382

Add tmpdir setting

document tmpdir setting
2015-03-27 02:11:33 -05:00
Bruno Cauet
07ee934352 Thumbnails: improve log readability 2015-03-25 20:14:23 +01:00
Bruno Cauet
4b349771ff thumbnails plugin setup: log tools chosen 2015-03-25 20:14:19 +01:00
Bruno Cauet
11a4777219 URI: use gio/gio.h's g_file_get_uri if available 2015-03-25 20:14:16 +01:00
Bruno Cauet
265fa962eb Merge branch 'master' into thumbnails 2015-03-25 18:17:12 +01:00
Tom Jaspers
944d38064d Config: implement redacted fields more idiomatic
- `add_redacted_fields(self, *field_names)` to use argument unpacking
- foo =| bar instead of foo = foo | bar
2015-03-25 14:55:29 +01:00
Bruno Cauet
8f5bae26fd Smartplaylists: improve tests & code modularization 2015-03-25 10:44:33 +01:00
Tom Jaspers
f4ed3e16b1 Config: Add redacted fields from included plugins 2015-03-24 17:01:33 +01:00
Amish Bhadeshia
d2a95158f2 Updated ftintitle plugin to follow a format 2015-03-21 15:36:39 +00:00
Adrian Sampson
a70f8bb91f Fix #1365: lastimport config 2015-03-20 19:52:36 -04:00
Bruno Cauet
bcd57bd2b5 Test queries building sort management in smartplaylist
Slighly modify Sort parsing: avoid building MultiplSort() instances
comptised of a single sort, but return that sort instead, since it wraps
things with any gain.
2015-03-18 18:53:41 +01:00
Bruno Cauet
45c0c9b3cb Deal with sorting
Try to follow any sort found & manage absence of sort. When there are
multiple sort directives given, concatenate them.

Tests not extended yet.
2015-03-18 18:09:42 +01:00
Bruno Cauet
65b52b9c48 python 2.6 compat: don't use set literals
In smartplaylist and test_smartplaylist.
2015-03-16 19:42:54 +01:00
Bruno Cauet
b79c025142 CLI tests for smartplaylist plugin
No import CLI test.
2015-03-16 18:36:08 +01:00
Bruno Cauet
40e793cdb1 Fix flake8 errors 2015-03-16 16:25:43 +01:00
Bruno Cauet
774decda7d Smartplayist: parse_query_parts() → ...ry_string() 2015-03-16 16:21:49 +01:00
Bruno Cauet
2d9f665848 Smartplaylist: offer "splupdate <playlist names>"
splupdate command of the SmartPlaylistPlugin looks in "args" for matches
of playlist names.
2015-03-16 16:03:14 +01:00
Bruno Cauet
f06c33cb71 Smartplaylist: update only if item changed 2015-03-16 15:16:40 +01:00
Bruno Cauet
4bfa439ee1 database_change: send model that changed 2015-03-16 14:32:37 +01:00
Adrian Sampson
f6df14a798 Isolate bugs in pylast
Should fix crashes like this:
http://hastebin.com/nizusukuli.log
2015-03-14 15:13:07 -07:00
Adrian Sampson
736eab412c Bytes arguments to bs1770gain command 2015-03-14 14:43:00 -07:00
Tom Jaspers
96a565a614 info: error msg instead of traceback on IOError
IOErrors were previously not caught, displaying full traceback to the user
2015-03-13 17:55:09 +01:00
David Logie
ee6fba1e82 Fix call to add_format_option() missing plugin. 2015-03-08 12:59:00 +00:00
Bruno
f6c6c35614 Merge pull request #1346 from brunal/subcommand-auto-format-path
Generalize --path, --format and --album options
2015-03-07 14:05:05 +01:00
Bruno Cauet
1722c26ffe Fix DiscogsPlugin.setup() arguments
Session is optional. This fixes re-authorization.

Improve #1347.
2015-03-07 14:00:47 +01:00
Adrian Sampson
bcc591bf97 Generalize exception handler for #1347 2015-03-06 12:01:09 -08:00
Bruno Cauet
d1f6bbaf01 Discogs plugin: catch client lib ValueErrors
When search fails, log the query which caused it and return an empty
result.

Kind of fixes #1347.
2015-03-06 11:16:20 +01:00
Bruno Cauet
58b39f1000 Merge branch 'master' into subcommand-auto-format-path 2015-03-05 17:53:31 +01:00
Bruno Cauet
7798a521b5 Fix convert plugin 2015-03-05 17:40:32 +01:00
Bruno Cauet
ea1dc1eb19 Plugins conversion cont. 2015-03-05 17:40:32 +01:00
Bruno Cauet
650305c9a1 All suitable plugins use CommonOptionsParser features 2015-03-05 17:03:02 +01:00
Bruno Cauet
6234fee67d Option parser: add common options with a method
Add a new OptionParser subclass: CommonOptionsOptionParser, which
provides facilities for adding --album, --path and --format options. The
last one is quite versatile.

Update base commands (from beets.ui.commands) to use those.
2015-03-05 15:01:20 +01:00
Bruno Cauet
9750351a1b beets.util.command_output() & related receives bytes
- May fail with unicode, esp. will non-ascii system path entry.
- Only send it bytes.
- Also applies to subprocess.Popen() & co.
2015-03-04 15:15:46 +01:00
Adrian Sampson
8113c7ba85 Roll back whitespace changes from #1343 2015-03-03 10:41:30 -08:00
jmwatte
5d7d402adb correct typing error 2015-03-03 13:11:25 +01:00
jean-marie winters
a3e32fd410 added fatalreplaygainerror 2015-03-03 11:23:45 +01:00
jean-marie winters
80c49ab360 removed line 288 2015-03-03 11:04:03 +01:00
jean-marie winters
0d49c830d8 just an updateMerge remote-tracking branch 'upstream/master' 2015-03-03 10:49:35 +01:00
jean-marie winters
5bc8ef7009 fix some formating 2015-03-02 22:11:33 +01:00
Adrian Sampson
8bd0633496 replaygain: Fix super call in AudioTools
Fix #1342.
2015-03-02 11:30:14 -08:00
jean-marie winters
1416846283 Merge branch 'bs1770gainsupport'
Conflicts:
	beetsplug/replaygain.py
2015-03-02 16:34:46 +01:00
jean-marie winters
72c5db8876 add doc, clean-up code 2015-03-02 15:38:33 +01:00
jean-marie winters
1385ce11ca Added support for bs1770gain, a loudness-scanner 2015-02-28 15:35:48 +01:00
Bruno Cauet
65a88e2bf4 Fix StrubPlugin.write_item() expected arguments
Fix #1338.
2015-02-24 19:30:51 +01:00
mried
c91e8cb782 Sometimes the extract art test failed because the file type of the extracted image might be PNG or JPG. Belongs to #1328. 2015-02-19 19:43:07 +01:00
Adrian Sampson
ccd8a7e1d4 Merge pull request #1328 from mried/extractart-unicode
Fix a crash when extracting album art
2015-02-18 10:33:33 -08:00
mried
53cefa328e Changed the path format from unicode to bytes. 2015-02-18 19:06:58 +01:00
Bruno Cauet
457afdc55d Auto re-auth for discogs plugin upon error 401
This goes in the direction of #1299 and #1305.
2015-02-18 15:11:52 +01:00
Adrian Sampson
ca0e9a8c03 Merge pull request #1329 from brunal/play-interactive
play command is now interactive

Conflicts:
	docs/changelog.rst
2015-02-17 17:22:03 -05:00
Adrian Sampson
171ded17b6 Merge pull request #1320 from brunal/multiple-logging-levels
Multiple logging levels
2015-02-17 17:10:31 -05:00
Adrian Sampson
31500a741e Merge pull request #1318 from jaquer/no-apply-replaygain
Stop applying mp3gain directly to files. Fixes #1316
2015-02-17 17:03:57 -05:00
Marvin Steadfast
b9174d176f The permissions plugin now uses startswith for finding ancestors in the library path. 2015-02-17 11:45:21 +01:00
Marvin Steadfast
dd0de2f04b Made the permissions plugin simpler. Got rid of some non-needed code and use the ancestors function instead of writing something new. 2015-02-17 11:41:15 +01:00
Marvin Steadfast
8b08ec568c permissions plugin now uses a set instead of a OrderedDict to find duplicates in a list 2015-02-17 11:41:15 +01:00
Marvin Steadfast
21aedeb51a Updated permissions plugin to change directory permissions too. 2015-02-17 11:41:15 +01:00
Tom Jaspers
12ecb2ce35 Fix formatting to new PEP8 version (1.6.2)
PEP8 1.6.2 (2015-02-15):
- added check for breaking around a binary operator

This caused Travis to fail on "W503 line break before binary operator"
2015-02-16 18:21:56 +01:00
Bruno Cauet
39a6145d2d Plugin play uses default item sort in album mode
Offer library.get_default_{item,album}_sort for that purpose.
2015-02-16 12:26:23 +01:00
Bruno Cauet
c47221555f Add beets.util.interactive_open() find cmd + execute
interactive_open() takes a target and an optional command, if it does not
receive a command then it uses open_anything().

It parses command and lexes it with shlex.split(), revieling the client
from that task.

"config -e" command uses it, and gives a better error message in case of
problem. "play" plugin uses it as well, as side-effect being that the
command is now interactive, as requested in issue #1321.

Fix issue #1321.
2015-02-16 12:26:17 +01:00
Bruno Cauet
5d9128aff3 util.interactive_open() return open/xdg-open/start
Depending on the platform return the correct automatic execution
command.
2015-02-16 11:35:13 +01:00
Bruno Cauet
1d8160f9ff Play plugin: use OO, don't pass log around 2015-02-16 10:50:41 +01:00
Malte Ried
eafdd9e379 Extraction of cover art of albums with non ascii characters lead to a crash. 2015-02-15 19:39:39 +01:00
Bruno Cauet
13e47472ac Play plugin: byte newlines in files written
Avoid unicode errors when writing '\n' around file paths.
2015-02-15 15:49:46 +01:00
Bruno Cauet
d267741ff3 Delete 'format' variables that shadow the built-in
Also cleanup the 'the' plugin a bit: delete unused variables.

Relates to #1300.
2015-02-11 16:26:16 +01:00
Bruno Cauet
5a1f499c64 Discogs plugin: fix event listener params
Also delete related deprecated comment.
2015-02-11 09:11:20 +01:00
Bruno Cauet
327b62b610 Improve logging management for plugins: fixes
Delete the remaining usages of BeetsPlugin.listen().

Since BeetsPlugin.listeners are wrapped by a loglevel-setting function,
we cannot easily check their unicity anymore.
BeetsPlugin._raw_listeners set holds the raw listeners.

Legacy plugins that did not handle enough arguments in their listenings
functions may break: dedicated code is now deleted for it would not work
with the decorated listeners.

Tests got fixed. Some modifications were done empirically: if it passes
then it's okay.
2015-02-10 16:55:06 +01:00
Arturo R
60b1819db0 Stop applying mp3gain directly to files. Fixes #1316
Update docs to remove non-existent `apply` option.
2015-02-09 12:51:27 -08:00
Bruno Cauet
c6455c269f Merge branch 'master' into thumbnails
Conflicts:
	docs/changelog.rst
2015-02-09 16:08:29 +01:00
Tom Jaspers
6572e1bf5a Fetchart: add empty album check to iTunes art
Was causing some tests to fail in test_art.py:CombinedTest
2015-02-09 14:59:56 +01:00
Adrian Sampson
66b7e4cd39 Merge branch 'master' of github.com:sampsyo/beets 2015-02-07 12:52:20 -08:00
Adrian Sampson
e7f8a627e9 Style fixes for pep8 1.6 2015-02-07 12:51:54 -08:00
David Logie
9b9c033df6 importfeeds: Fix Unicode error when writing files. 2015-02-07 15:13:01 +00:00
Adrian Sampson
0247785440 discogs: Catch JSON decode errors
Fix #1305 *again*.
2015-02-03 23:42:47 -08:00
Adrian Sampson
cc01d87209 discogs: Catch *another* exception (fix #1305)
Everything but requests is a travesty.
2015-02-03 23:04:14 -08:00
Adrian Sampson
a7878b0eba A couple of explanatory comments for #1292 2015-02-03 09:50:36 -08:00
Adrian Sampson
82e89b8960 Merge pull request #1292 from mried/import-autosingleton
Allow plugins to change the created import tasks
2015-02-03 09:49:13 -08:00
Tom Jaspers
50dbd18493 Duplicates: fix error caused by formatting
Function arguement `format` was shadowing the built-in format function

Fix #1300
2015-02-03 13:31:54 +01:00
Adrian Sampson
77833f6c05 Oops 😳 #1299 2015-02-02 22:34:22 -08:00
Adrian Sampson
8151a40f1f discogs: Catch socket errors (#1299)
See also:

https://github.com/discogs/discogs_client/issues/44
2015-02-02 22:27:14 -08:00
Adrian Sampson
313c3807aa scrub: Use syspath in beet scrub (#1297) 2015-02-02 10:42:31 -08:00
Adrian Sampson
465719a208 scrub: Catch IOErrors in command (fix #1297) 2015-02-02 10:13:48 -08:00
geigerzaehler
46ba99ce79 Merge pull request #1295 from sampsyo/more-info
Info plugin can filter properties in output
2015-02-01 21:19:24 +00:00
Thomas Scholtes
482008bf1d Info plugin can filter properties in output
Resolves #1287
2015-02-01 21:51:26 +01:00
Malte Ried
e681449785 Added documentation
FileFilterPlugin uses the new return value feature
Some tweaks to get the code more readable
2015-02-01 17:01:06 +01:00
Thomas Scholtes
51ab099145 Extend item.write() to embed images without changing item
Fixes #1241 and geigerzaehler/beets-check#14

Before, `embed_item` would add the images to the item and then call
`item.write()` to write the item data, including the image, to the
file. This would trigger `item.store()` in the `after_write` hook of
the check plugin. This would in turn try to persist the temporary
`images` attribute of the item, resulting in an SQL error.
2015-02-01 15:35:24 +01:00
Adrian Sampson
336bb9255c chroma: Fix refactored beet submit
Fix #1293.
2015-01-31 13:04:11 -08:00
Adrian Sampson
14ce6a557e Merge pull request #1183 from marcaddeo/refactor-ftintitle
Refactor ftintitle

Conflicts:
	beetsplug/ftintitle.py
2015-01-31 12:51:15 -08:00
Bruno Cauet
a72ae5991f Add send_art event for embedart and thumbnails
Album.set_art() sends a 'art_sent' event, with the album as a
parameter. embedart and thumbnails listen to that event, instead of
listening to 'album imported'. Consequences:
- 'embedart' and 'thumbnails' don't have to be after 'fetchart' on the
  plugins config line.
- embedart and thumbnails work event when a "beets fetchart" command is
  issued.
- if another plugin ever set art then embedart and thumbnails will "just
  work" with it.
2015-01-31 21:06:01 +01:00
Tom Jaspers
927a53d59b Merge pull request #1281 from tomjaspers/configurable-colors
Colors are now user configurable.

Conflicts:
	beets/ui/__init__.py
	beets/ui/commands.py
2015-01-30 13:48:19 +01:00
Bruno Cauet
d299f40a72 Fix PNG metadata type: string only
instead of int
2015-01-29 16:00:05 +01:00
Tom Jaspers
f483012183 Colorize is now to be called with the abstract color_name instead of the color.
E.g., `colorize('text_success', 'hello world')`

To ensure compatibility with 3rd party plugins, a valid color ('red') can still be passed,
but it will be logged.
2015-01-29 14:33:57 +01:00
Bruno Cauet
9bdeb01689 Improve thumbnails logging
No info message printed twice per cover art (once for the normal
thumbnail and once for the big one)
2015-01-29 13:11:14 +01:00
Bruno Cauet
a78cc65826 Merge freedesktop plugin into thumbnails
Add test for that new code, update docs, update the changelog.
2015-01-29 13:08:02 +01:00
Bruno Cauet
bea5ad3f97 thumbnails: fix --force option management 2015-01-29 12:19:19 +01:00
Bruno Cauet
946aa8e4b3 Fix detection of thumbails to generate 2015-01-29 12:19:19 +01:00
Bruno Cauet
a39ab5163f thumbnails: add "auto" config option
default: True
2015-01-29 11:24:15 +01:00
Bruno Cauet
e8370044c9 thumbnails: add --force (-f) to force regeneration
It compares thumb mtime vs cover mtime when it should compare
Thumb::mtime thumb metadata vs cover mtime.
2015-01-29 11:24:15 +01:00
Bruno Cauet
540cae0de4 thumbnails: fix detection of local resizing capabilities 2015-01-29 11:24:14 +01:00
Bruno Cauet
180a3ece3b Improve thumbnails docstrings 2015-01-29 11:24:02 +01:00
Bruno Cauet
143e749426 thumbnails plugin writes standard metadata to the thumbnail
Write Thumb::URI and Thumb::MTime as requred by the spec:
http://standards.freedesktop.org/thumbnail-spec/latest/x142.html
2015-01-29 11:23:00 +01:00
Malte Ried
67ecf32671 Fixed typos. 2015-01-28 15:46:16 +01:00
Malte Ried
e2a7f7c153 Merge branch 'master' into extractart-for-albums 2015-01-28 15:44:36 +01:00
Bruno Cauet
17d6d6529e thumbails: improve logging, update dependencies 2015-01-28 11:12:55 +01:00
Adrian Sampson
ac3ea16656 Fix for unicode_literals in scrub
Here's an example where unicode_literals may not be a great idea: these should
probably be "native" strings, i.e., bytes on 2.x and unicode on 3.x.
2015-01-27 13:48:13 -08:00
Malte Ried
2c75d0567f Made the new functionality the default behaviour. 2015-01-27 19:59:49 +01:00
Malte Ried
07cea16492 Changed the interface of extractart to make it easier to understand what it does. 2015-01-27 19:41:25 +01:00
Malte Ried
2631d88b39 Merge branch 'master' into extractart-for-albums
Conflicts:
	docs/changelog.rst
2015-01-27 19:18:51 +01:00
Bruno Cauet
5453cf96c8 thumbnails plugin handles 128² and 256² thumbnails
If the source is good enough both will be produced, otherwise the former
only will be created.

This is warranted by the spec: http://standards.freedesktop.org/thumbnail-spec/latest/x122.html
2015-01-27 17:16:26 +01:00
Bruno Cauet
55fd2d2886 thumbnails: create thumbnail dirs if needed 2015-01-27 17:16:25 +01:00
Bruno Cauet
5b8a846d1f Add a new plugin: thumbnails
Generate thumbnails for albums, based on freedesktop specification. This
plugin is POSIX-only.

Require Python Imaging Library or Image Magick
2015-01-27 17:16:25 +01:00
Bruno Cauet
dbef31776f Replace ur'' strings by r'' strings
Since we use unicode_literals they are equivalent, but ur'' strings are
a syntax error in python 3.0+
2015-01-27 09:02:44 +01:00
Adrian Sampson
b8dab9cf9f Merge pull request #1247 from brunal/future
Use all __future__ imports in beets core

Conflicts:
	beetsplug/web/__init__.py
	test/test_embedart.py
2015-01-26 17:02:07 -08:00
Bruno Cauet
4e904c78af Simplify LibModel format management
Delete `ui.format_` and then `ui.print_obj`. Simply ensure that when
there is no format it defaults to '' = default format = config option.
2015-01-26 23:09:56 +01:00
Tom Jaspers
d3fce35481 Colors are user configurable
- Colors are mapped on to a dictionary using abstract names (e.g., text_success)
- Add `colors` option under `ui` to allow users to choose their own color scheme
- Move configuration option `color` from top-level to `ui`
- Show deprecation warning if top-level `color` configuration is used (but respect it)

Fix #1238
2015-01-26 17:24:32 +01:00
Bruno Cauet
060c275fd3 Merge branch 'master' into libmodels-formatting
Conflicts:
	beetsplug/embedart.py
2015-01-26 10:17:15 +01:00
Adrian Sampson
a10d9750a6 Merge pull request #1233 from pprkut/tracktotal
Make tracktotal an item-level field.
2015-01-25 13:02:31 -08:00
Adrian Sampson
ec2e9891c3 Merge pull request #1194 from tomjaspers/master
Fetchart: add fetching artwork from Wikipedia
2015-01-25 12:59:13 -08:00
Adrian Sampson
9fe0eab26f Merge pull request #1262 from brunal/embedart-logging
Improve embedart logging management
2015-01-25 12:55:19 -08:00
Bruno Cauet
8165dec985 Delete manual formattings of album & item 2015-01-25 21:32:22 +01:00
Bruno Cauet
62cd6e37aa Update ui.print_obj_(), add ui.format_()
Code now relies on `format()` for items and albums displaying/logging.
`ui.print_()` calls `unicode()` or `str()` on the strings so for most
usages calling `ui.print_(obj)` replaces `ui.print_(obj, lib, None)`.

Where there is a special format `ui.print_(format(obj, fmt))` is fine,
but when `fmt` can be None then one has to call
`ui.print_(ui.format_(obj, fmt))` -- which is what `ui.print_obj` now
does.
2015-01-25 21:07:03 +01:00
Bruno Cauet
77d46bb2df Embedart logging: higher level for img comparisons 2015-01-25 18:33:20 +01:00
Malte Ried
c43173263c Bugfixes and code rearrange for the extract art for albums feature. Closes #1261 2015-01-25 11:50:05 +01:00
mried
6ac132edf7 Added an option to extract the art file of all matched albums. Closes #1261 2015-01-25 11:50:04 +01:00
David Logie
29de697a8d Fix bug where playlists were not created in subdirs.
Playlist names containing path separators would cause beets to crash if
the parent directories for the playlist didn't already exist.
2015-01-24 13:00:25 +00:00
Bruno Cauet
23dcdebe9a Merge branch 'master' into embedart-logging
Conflicts:
	beetsplug/embedart.py
2015-01-24 11:31:31 +01:00
Adrian Sampson
07065b27b3 Merge pull request #1263 from brunal/embedart-better-extract
embedart: try extracting from items until success

Conflicts:
	beetsplug/embedart.py
2015-01-23 11:00:49 -08:00
Bruno Cauet
b30c6975a1 Embedart extraction: 'cover' is already the default
'cover' is already the default filename (in the absence of a custom
config) so there is no need to re-write that value in the embertart
plugin.

Improve #1258
2015-01-23 18:12:17 +01:00
Bruno Cauet
4a27f83223 embedart: try extracting from items until success
Don't stop at the first item but try them all.
Fix #1261
2015-01-23 17:48:37 +01:00
Bruno Cauet
b001a973a3 Improve embedart logging management
- better logging levels
- always use the preferred user formatting for items & albums
- improved some messages wording

Fix #1244
2015-01-23 17:39:38 +01:00
Malte Ried
b3803d3472 Extractart uses the configured art_filename. Closes #1258 2015-01-23 17:14:14 +01:00
Adrian Sampson
be7ffd9758 Merge pull request #1254 from andremiller/master
Replace print with _log.info() in CORS support
2015-01-21 09:38:37 -08:00
Andre Miller
96e3d8b451 Replaced print with log.info 2015-01-21 19:31:02 +02:00
Adrian Sampson
433d6b7485 embedart: Error on non-existent -f file
Fixes #1252.
2015-01-21 09:07:59 -08:00
Bruno Cauet
1e0185188a Smartplaylist: fix song path writing (str → bytes) 2015-01-21 10:36:45 +01:00
Bruno Cauet
545ba22f94 CORS init in web plugin: print → log 2015-01-21 10:18:13 +01:00
Bruno Cauet
c2f8cb9983 Merge branch 'master' into future
Conflicts:
	test/test_plugins.py
2015-01-21 10:04:33 +01:00
David Logie
99e89a29e2 mbsync: Don't overwrite the format built-in. 2015-01-21 08:05:27 +00:00
David Logie
7db3e1d80c mbsync: Fix bug where singletons always used the album format. 2015-01-21 08:05:27 +00:00
David Logie
2fae94a93a Make the Template object an attribute. 2015-01-21 08:05:26 +00:00
David Logie
3317580296 mbsync: Support custom output format. 2015-01-21 08:05:26 +00:00
Adrian Sampson
f617d162cf keyfinder: Better output parsing (#1248)
We were being sloppy about bytes output from the process. Also, it seems like
the tools outputs the path also, so it's necessary to break on whitespace to
actually get the key name.
2015-01-20 15:17:21 -08:00
Adrian Sampson
dae1776165 Reasonable logging for keyfinder command
Previously the command was completely silent.
2015-01-20 15:12:26 -08:00
Adrian Sampson
5586fcee67 keyfinder: Only write on import when asked to
This should really be standard machinery.
2015-01-20 15:11:13 -08:00
Adrian Sampson
8e94419c2a Fix filefilter (#1186) tests for consistent colons
I added this to the pretend output a few commits ago.
2015-01-20 14:34:42 -08:00
Adrian Sampson
0a8dcadb75 Rename regexfilefilter to filefilter (#1186) 2015-01-20 14:32:22 -08:00
Adrian Sampson
ebc065ecec Merge branch 'mried-import-filefilter'
Merge of PR #1186.
2015-01-20 14:22:55 -08:00
Adrian Sampson
38eecb93c9 Merge pull request #1237 from andremiller/master
Support for CORS
2015-01-20 14:02:27 -08:00
Malte Ried
a62a152010 Moved the regular expression file filter into a separate plugin. 2015-01-20 19:50:00 +01:00
Andre Miller
f815138758 Combined cors and cors_origin config options into one 2015-01-20 19:53:04 +02:00
Bruno Cauet
132f5ba912 Fix bytes/str with unicodenazi 2015-01-20 16:41:18 +01:00
Bruno Cauet
a5026100a3 All plugins use unicode_literals
Given that part of them has no test I may have broke them
2015-01-20 16:22:27 +01:00
Bruno Cauet
438044c6ae Fix bytes/str with unicode-nazi
Further cleaning will require setting unicode_literals on plugins
2015-01-20 15:25:12 +01:00
Andre Miller
47ea4b7d8b flake8 formatting updates 2015-01-20 16:06:16 +02:00
Andre Miller
f47be23658 CORS support now uses flask-cor extension 2015-01-20 15:33:33 +02:00
Bruno Cauet
02d8e88ef1 Replace all mentions of 'str' with 'bytes' 2015-01-20 12:48:15 +01:00
Bruno Cauet
9c41c39913 Do __name__ comparison with bytes and not unicode 2015-01-20 12:03:57 +01:00
Andre Miller
c8880de52c Fixes for flake8 validation 2015-01-20 00:38:26 +02:00
Andre Miller
bd63e1e386 Made CORS configurable and changed host default to 127.0.0.1 2015-01-20 00:20:26 +02:00
Heinz Wiesinger
c86a5f9d97 Make tracktotal an item-level field.
This fixes tracktotal being stored incorrectly for multi-disc releases
where the individual discs have a different number of tracks and
per_disc_numbering is enabled.
2015-01-19 13:02:21 +01:00
Bruno Cauet
90b388b775 Use __future__ imports but unicode_literals everywhere
Include import of __future__ features division, absolute_imports and
print_function everywhere. Don't add unicode_literals yet for it is
harder to convert.

Goal is smoothing the transition to python 3.
2015-01-19 12:25:16 +01:00
Bruno Cauet
b436e75a9e embedart: fix behaviour on IM unparseable output, add tests
Test all EmbedCoverArtPlugin.check_art_similarity() code paths.

Improve #1241.
2015-01-19 11:50:51 +01:00
Adrian Sampson
f346853710 embedart: Do not use shell for subprocess
This avoids bugs when the filename contains spaces, etc.

Pinging @Kraymer: I gave this a brief test, but can you check whether I messed
anything up more subtly?

Came up when looking at #1241.
2015-01-18 16:25:23 -08:00
Adrian Sampson
909c96b060 embedart: Handle unparseable IM output (#1241) 2015-01-18 16:18:22 -08:00
Frederik “Freso” S. Olesen
6031cab891 lastgenre: Add "mass" to the classical genre tree. 2015-01-18 23:00:27 +01:00
Horla
587ff39f22 Update genres-tree.yaml
Removing "classic"
2015-01-18 22:46:40 +01:00
Horla
8ed9e50e18 Update genres-tree.yaml
Changing "classic" to "classical"
2015-01-18 22:27:34 +01:00
Horla
3fdc5c936e Update genres.txt
Add classical subgenres
2015-01-18 22:13:36 +01:00
Horla
3a3150b740 Update genres-tree.yaml
Add classic genre with its subgenres
2015-01-18 22:11:01 +01:00
Malte Ried
0eb185a5e7 Merge branch 'master' into import-filefilter 2015-01-18 18:55:24 +01:00
Tom Jaspers
133c21a9c5 Fetchart: add fetching artwork from Wikipedia following the new class-based structure of the plugin 2015-01-18 15:09:36 +01:00
Andre Miller
9fe2bc1a38 Support for CORS 2015-01-18 10:23:49 +02:00
Adrian Sampson
bf02855ee1 Remove Beatport plugin (c.f. #1229) 2015-01-16 12:15:54 -08:00
Bruno Cauet
7c2d5f0948 Import beets.ui in discogs plugin
The discogs plugin uses beets.ui but did not explicitely import it,
which might cause it to crash when used in standalone.
2015-01-16 17:59:35 +01:00
Bruno Cauet
d2726e1c25 Fix mpdstats plugin config management
Fix #1228:
- remove erroneous calls to `self.config`
- always use `config['mpd']` and not `self.config` (which is
  config['mpdstats']) to match the doc
2015-01-16 11:08:24 +01:00
Bruno Cauet
b49cd3b73b Lyrics plugin: fix google backend
Give config on backends init so the Google backend can get the API key
and Engine Id.
Fix #1226
2015-01-15 11:28:04 +01:00
Adrian Sampson
c1ce71f35c smartplaylist: Fix album_query (fix #1225)
This is far less elegant and functional, but at least it is correct.
2015-01-14 22:00:30 -08:00
Adrian Sampson
38c5bb3666 Fix a docstring 2015-01-14 21:53:13 -08:00
Bruno Cauet
0c3675ada0 Fix replaygain: add 'log' to __init__ parameters 2015-01-14 16:17:20 +01:00
Bruno Cauet
0d1fa80651 Smartplaylist: don't utf8-encode the name
A Template expression expects an unicode, not an utf8-encoded string.
Add a test for that.
2015-01-14 12:32:00 +01:00
Bruno Cauet
6408904a8c Smartplaylit: fix log format string
{0.name} → {0[name]} since the argument is a dict.
2015-01-14 12:15:44 +01:00
Malte Ried
ad65242ebd Merge branch 'master' into import-filefilter
Conflicts:
	beets/importer.py
	beets/plugins.py
	beetsplug/ihate.py
2015-01-14 10:46:03 +01:00
Bruno Cauet
9a2a9b0144 smartplaylist: fix docstring 2015-01-13 18:53:47 +01:00
Bruno Cauet
ca91bc8920 mpdupdate: fix indent 2015-01-13 18:53:30 +01:00
Bruno Cauet
753388550e Clean PlexUpdate plugin
- no global variable
- use logging instead of prints
2015-01-13 12:36:16 +01:00
Bruno Cauet
de86b9b570 Clean MPDupdate plugin
- no global variable
- use logging instead of prints
- unicode logging
2015-01-13 12:30:40 +01:00
Bruno Cauet
a7beaa6d6e Clean & shorten smartplaylist code
- better log messages
- more idiomatic code: "X not in Y" instead of "not (X in Y)"
- shorten _items_for_query:
    - pre-detect whether it's album_query or query, hiding conf. spec to
      the function.
    - Let library.{items,album} parse the query string, therefore
      falling back to beets-level sort spec. if none is given in the
      query
2015-01-13 12:11:52 +01:00
Bruno Cauet
7c4496c110 Smartplaylist: log messages instead of printing
ui.print_ → self._log.info

Also change config['smartplaylist'] into self.config
2015-01-13 11:42:23 +01:00
Bruno Cauet
fdb768c9db Simplify smartplaylist flow
Suppress the global variable, register listeners if it's needed only.
2015-01-13 11:31:42 +01:00