Commit graph

168 commits

Author SHA1 Message Date
Adrian Sampson
d53019f9db Further whitespace fiddling
Most commonly, this sticks with:

    log.debug(
        'some long message here'
    )

instead of placing the closing ) at the end of the string literal.
2016-02-28 14:48:10 -08:00
Peter Kessen
53d2c8d9db Removed unicode_literals from plugins
* echonest
* edit
* embedart
* embyupdate
2016-02-20 13:35:54 +01:00
Jack Wilsdon
12cd5306b7 Update copyright dates to 2016 2015-12-30 15:42:06 +00:00
Peter Kessen
3eb8008b11 added encoding as comment in files
added line like
# -*- coding: utf-8 -*-
to all files with correct license in header
2015-11-19 18:41:01 +01:00
Adrian Sampson
9f7aa866bd Use ui.should_write everywhere
There sure are a lot of plugins that want to write metadata!
2015-11-07 13:20:09 -08:00
Adrian Sampson
d79d11fb15 Docstring and rewrap for #1675 2015-11-02 16:45:45 -08:00
Adrian Sampson
e84414c822 Fix syntax (and unused variable) in #1675 2015-11-02 16:44:02 -08:00
kooimens
bcef3a7123 Create function remove_artfile
Damn it, that was really hard for me:D. First time seriously using python. Please review it carefuly.
2015-11-02 23:56:38 +01: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
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
D Andrew Reynhout
c9380abc3b Test config opt import/write before embedding art (fixes #1427) 2015-04-23 15:43:56 -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
Bruno Cauet
265fa962eb Merge branch 'master' into thumbnails 2015-03-25 18:17:12 +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
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
mried
53cefa328e Changed the path format from unicode to bytes. 2015-02-18 19:06:58 +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
c6455c269f Merge branch 'master' into thumbnails
Conflicts:
	docs/changelog.rst
2015-02-09 16:08:29 +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
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
Malte Ried
67ecf32671 Fixed typos. 2015-01-28 15:46:16 +01: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
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
060c275fd3 Merge branch 'master' into libmodels-formatting
Conflicts:
	beetsplug/embedart.py
2015-01-26 10:17:15 +01:00
Bruno Cauet
8165dec985 Delete manual formattings of album & item 2015-01-25 21:32:22 +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
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
433d6b7485 embedart: Error on non-existent -f file
Fixes #1252.
2015-01-21 09:07:59 -08: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
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
Bruno Cauet
4babc40fd8 Delete useless "config['mypluginname']" mentions
Replace with self.config where this is painless.
More plugins would benefit from this update but that requires turning
functions into methods.
2015-01-12 10:55:59 +01:00
Bruno Cauet
b27c5304d1 Merge branch 'master' into logging
Conflicts:
	beetsplug/fetchart.py
	beetsplug/mpdstats.py
2015-01-09 15:15:27 +01:00
Frederik “Freso” S. Olesen
4b1f0cbf48 Happy 2015. ;)
See 7a410f636b

Command used:

    git grep -l 'Copyright 201'|xargs sed -i -E 's/Copyright 201./Copyright 2015/'`
2015-01-08 21:37:09 +01:00
Bruno Cauet
860e7e1483 Update 3 plugins: func → methods, listeners
- functions turn into method in order to have the logger object
- registering the listener has to be updated too
2015-01-06 21:42:09 +01:00
Bruno Cauet
b8211a3c4c Every plugin uses its own logger
logging.getLogger(__name__) everywhere!
Several loggers prefixed every log message with [logername], which we
delete here.
2015-01-06 10:35:44 +01:00
Bruno Cauet
30f158a95e Move "from beets import logging" statements
Move the import next to other beets-related imports
2015-01-05 10:05:21 +01:00
Bruno Cauet
45db930457 embedart: restore an apparent typo (which wasn't)
hashes → phashes
2015-01-05 07:59:53 +01:00
Bruno Cauet
f5c5666729 Attain pep8-cleanliness
No more E12 or E501
2015-01-04 17:29:31 +01:00
Bruno Cauet
7df8bef8b7 Update logging imports: logging → beets.logging 2015-01-04 17:02:27 +01:00
Bruno Cauet
8cac47af2a Convert beets plugins to lazy logging 2015-01-04 17:02:27 +01:00
Michael Ludwig
c76f8bee46 embedart: Added syspath call to art exists check 2014-12-21 13:08:02 -05:00
Thomas Scholtes
9d3729dc5e mediafile: Test deleting images and implement it for MP3s 2014-12-01 17:20:16 +01:00
Adrian Sampson
69b7d1f160 Changelog for #1036 (fix #1028) 2014-10-28 11:50:36 -07:00
kerobaros
3a56077b0c Fixed logic error, added a .get(bool). 2014-10-27 21:20:26 -05:00
kerobaros
f782dfd376 I'll get used to this git thing one day. Cleaning up. 2014-10-24 21:36:30 -05:00
kerobaros
d06da6381f Updating to master to form a new PR. 2014-10-24 21:33:09 -05:00
Adrian Sampson
a7b7e23436 Minor fixes for #1033 2014-10-24 16:46:55 -07:00
kerobaros
9a191baca4 Working on issue #1028, resize images only once per album. 2014-10-24 15:01:52 -05:00
kerobaros
ca431b0bf8 Seperated some code out from extract() into get_art(item). Cleaner and quicker way to check for embedded art. 2014-10-23 22:37:19 -05:00
kerobaros
7f37514bb9 Whoops, trailing space. Take 2. 2014-10-23 21:17:42 -05:00
kerobaros
9be753736b Slight style tweaks. 2014-10-23 21:13:30 -05:00
kerobaros
e06f492f91 Whoops, take two. 2014-10-23 15:31:38 -05:00
kerobaros
75b62b723f Added "ifempty" config to embedart plugin, re: issue 1020 2014-10-23 15:27:15 -05:00
Adrian Sampson
7754fe5a40 embedart: Fix logging during import (#1014)
Regression introduced in 2813cd26c1.
2014-10-14 09:42:11 -07:00
Adrian Sampson
b777bde0af Fix #1006: errant info-level log
Introduced in e99df7bc65.
2014-10-11 15:05:01 -07:00
Adrian Sampson
983aac287b Add a displayable_path call in embedart (fix #995) 2014-10-09 11:13:39 -07:00
Adrian Sampson
d17c148e52 Minor fixes, changelog for #974 2014-09-25 15:33:52 -07:00
Fabrice Laporte
d2cf41fc70 restore command_output() implementation as of 0ec285f 2014-09-22 13:49:23 +02:00
Fabrice Laporte
c1224caab5 Merge branch 'fetchart_issue848'
Conflicts:
	test/test_embedart.py
2014-09-21 14:23:59 +02:00
Fabrice Laporte
1c2448c3e0 add can_compare flag to ArtResizer 2014-09-20 12:19:10 +02:00
Thomas Scholtes
1e45ba597d embed_item function does not raise if image file not found
Fixes #968
2014-09-18 16:19:05 +02:00
Fabrice Laporte
1bffe2a7bf obey Travis orders 2014-09-17 22:57:38 +02:00
Fabrice Laporte
e99df7bc65 embedart: add compare_threshold option
if compare_threshold > 0 we call check_art_similarity to return sooner
if it happens that candidate image and embedded one are similar.
2014-09-17 22:01:08 +02:00
e5e4eaeacd39c5cfba4d7c852c48277ae50331e6
66aee8094f Clean up of logging messages as described here
All logging now prefers the ' (single quote) over the " (double quote)

https://github.com/sampsyo/beets/wiki/Hacking
2014-09-09 11:28:43 +10:00
Adrian Sampson
7de6259c1d MediaFile: make id3v23 a constructor parameter
For #899, we need to change MediaFile's behavior (pre-write) based on whether
we're doing ID3v2.3 or not. So we need a field on the object, not a parameter
to `save()`.
2014-08-15 12:09:18 -07:00
Thomas Scholtes
2813cd26c1 Refactor embedart to work at item level
Embedding images now triggers the `*_write` plugin events. This
allows *beets-check* to update the checksum. See the [beets-check
issue][1].

[1]: https://github.com/geigerzaehler/beets-check/issues/7
2014-06-02 17:10:48 +02:00
Thomas Scholtes
9090f0979f Use new _embed api 2014-04-26 19:44:29 +02:00
Thomas Scholtes
9b88525736 Make function to embed art agnostic of items 2014-04-26 19:41:44 +02:00
Thomas Scholtes
73a1b63f7d Catch and log file errors when embedding images
Fixes #723.
2014-04-25 12:33:19 +02:00
Adrian Sampson
e5a9db1cac fix up some indentation warnings in plugins 2014-04-13 17:55:49 -07:00
Adrian Sampson
fb37be44db restore some comments from #684
I wanted to leave a few of these as comments -- they serve more as separators
than as internal documentation.
2014-04-13 17:43:43 -07:00
Fabrice Laporte
3ead936fe5 flake8 cleaning beetsplug/*
Remaining warnings are related to visual indentation.
2014-04-13 23:24:57 +02:00
Adrian Sampson
33b44717ab embedart: catch log errors (fix #678) 2014-04-10 11:24:59 -07:00
Adrian Sampson
443b8089d5 remove unnecessary IndexableEnum
This is not really critical since list(Type)[i] works just as well. This fixes
a couple other problems from the enum transition:
- The name of TYPES was not really consistent with its new role as an enum
  type. Renamed this ImageType.
- Fix a rather egregious bug in embedart (undefined reference to Image).
2014-04-08 16:59:50 -07:00
Thomas Scholtes
071a5c363d Use new MediaFile api to embed art 2014-04-08 01:41:26 +02:00
Chris Cogburn
d0c3cb5779 Fix for id3v23 to include config parameter to save 2013-11-05 21:27:26 -06:00
Adrian Sampson
19958f75ff embedart: fix error message when imagehdr fails 2013-09-12 10:45:02 -07:00
Lucas Duailibe
51ed0939d6 fixing things 2013-03-25 15:20:38 -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
Adrian Sampson
6898d95b9e allow convert to be used without embedart enabled 2013-01-23 15:56:49 -08:00
Adrian Sampson
7a410f636b happy new year
For future reference, this command did the trick:
ack -l 'Copyright 201' | xargs perl -pi -E 's/Copyright 201./Copyright 2013/'
2013-01-11 10:43:41 -08:00
Adrian Sampson
6d68a4855e per-plugin configuration defaults in __init__()
This uses the new BeetsPlugin.config convenience view heavily. Things are
slowly getting less verbose.
2012-12-18 22:35:44 -08:00