Lemutar
eb8048f54d
add picture fetch over for google search
2014-05-14 21:23:28 +00:00
Stig Inge Lea Bjørnsen
e800c9cc62
Plugin rename importmtimes -> importadded.
...
This includes some minor changes to the documentation.
2014-05-14 00:05:44 +02:00
Stig Inge Lea Bjørnsen
34c256925e
Fix style errors reported by Flake8.
2014-05-14 00:05:44 +02:00
Stig Inge Lea Bjørnsen
f8abd50090
Only delete album item mtimes that are in the dictionary.
2014-05-14 00:05:44 +02:00
Stig Inge Lea Bjørnsen
94aad7e309
Record mtimes instead of pre-import paths.
...
This adds support for move imports.
Item and file mtime preservation is now configurable and disabled by
default.
2014-05-14 00:05:44 +02:00
Stig Inge Lea Bjørnsen
0bf4222947
Add importmtimes plugin for preserving file mtimes during copy imports.
...
File modification times are stored as item.mtime, item.added and
album.added.
2014-05-14 00:05:44 +02:00
Adrian Sampson
5a1fa9e3f1
Merge pull request #743 from udiboy1209/master
...
Fix web plugin scroll and lyrics newline bug
2014-05-12 22:43:11 -07:00
udiboy1209
ac7646f0f4
Fix alignment of play button with logo
2014-05-11 19:21:50 +05:30
Adrian Sampson
7310f6e945
Documentation tweaks for bucket ( #747 )
2014-05-10 17:14:35 -07:00
Fabrice Laporte
02f7e78fd3
fix flake8 warnings
2014-05-10 10:57:44 +02:00
Fabrice Laporte
21feab7ab1
add tests to check bad buckets definitions
...
message is now printed to the user when buckets declared in the config
file cannot be parsed
2014-05-10 10:55:38 +02:00
Fabrice Laporte
0d5050bdce
fix handling of digits chars in alpha buckets
...
Characters were search in string.ascii_lowercase that does not contain
digits chars.
2014-05-08 16:13:17 +02:00
Fabrice Laporte
4add189608
Add option to extrapolate year buckets names
...
- spans are now tracked via a list of dicts instead of 2 lists
previously (simpler code)
- extend_year_spans() pregenerates all possible ranges at plugin setup
stage
- a BucketError is now raised if declared bucket format not accepted
2014-05-08 01:28:17 +02:00
Fabrice Laporte
509af59d4e
cleanup docstrings and add tests
2014-05-04 08:51:11 +02:00
Fabrice Laporte
31569baba7
fix range upper bound + tests added
2014-05-03 23:46:31 +02:00
udiboy1209
07b791dbd3
improve detail display and scrollbar in web plugin
...
Moved track, format, lyrics, etc. to separate div with id 'extra-detail'
so that theses can scroll independent of the main details(Title, Album, Artist).
Split the templates and javascript rendering objects accordingly.
This has a better scrollbar display than the previous commit.
2014-05-03 21:08:07 +05:30
Fabrice Laporte
581bf768ca
add buckets plugin + tests
...
Add a new template functions %bucket(text, field) for path formatting.
2014-05-03 13:55:21 +02:00
udiboy1209
35eb60c393
More elegant fix to line break display problem for lyrics in web plugin
...
The javascript `replace` method was previously being used, which worked in a hacky way.
But the more elegant way to do it, as suggested by minitech on this question http://stackoverflow.com/questions/23440298 ,
is to use CSS, and make the browser automatically display white-spaces using `white-space: pre-wrap`
2014-05-03 10:31:02 +05:30
udiboy1209
756f4c4d29
Fix web plugin scroll and lyrics newline bug
2014-05-02 20:54:57 +05:30
Adrian Sampson
6cc643520d
Merge branch 'KraYmer-lyrics-integration-sources'
2014-05-01 08:58:07 -07:00
Adrian Sampson
e19632c11d
Merge branch 'master' of github.com:sampsyo/beets
2014-04-29 10:23:30 -07:00
Adrian Sampson
54445882d8
replaygain: Log when files are unsupported
2014-04-29 10:23:07 -07:00
Adrian Sampson
362db8f22f
Merge pull request #728 from sampsyo/lastgenre-tests-new
...
Tests for lastgenre (cleaned up)
2014-04-29 08:38:56 -07:00
Adrian Sampson
233f71a457
Use real booleans for whitelist/canonical options
...
As opposed to the strings "true" and "false".
2014-04-28 23:00:00 -07:00
Fabrice Laporte
ef3c1cd1ff
use booleans for whitelist and c14n options
...
homogenise options setup using booleans, while keeping the empty string
(synonym of ‘true’) for backward compatibility.
2014-04-28 10:31:22 +02:00
Adrian Sampson
d5dbaeff7a
lastgenre: Restore default whitelist
2014-04-27 13:54:32 -07:00
Fabrice Laporte
0b3c5ddbe0
Canonicalization only return most common genre
2014-04-27 22:27:20 +02:00
Fabrice Laporte
817b8cc96e
Allowing the whitelist to be disabled
...
By default it is disabled, setting the value to the empty
string will use the built-in whitelist (same behaviour than
c14n).
2014-04-27 22:26:09 +02:00
Adrian Sampson
9f5f70aeab
Merge pull request #720 from sampsyo/import-refactor
...
Import refactor
2014-04-27 09:51:10 -07:00
Adrian Sampson
35b6602795
Use self.config instead of global config
2014-04-26 21:00:59 -07:00
Adrian Sampson
e7af3319f8
lastgenre: Restore min_weight option
2014-04-26 20:59:39 -07:00
Fabrice Laporte
d0d3c18da2
lastgenre: rewrite filtering logic to make tests pass
...
- remove filter_tags() as genres should not be removed this soon while
c14n has not been applied
- group all filtering logic in the function _resolve_genres (formerly
_strings_to_genre)
2014-04-26 20:51:13 -07:00
Fabrice Laporte
2e8e55736d
get rid of module level options variable
...
Conflicts:
beetsplug/lastgenre/__init__.py
2014-04-26 20:51:00 -07:00
Fabrice Laporte
499a7b868e
Move the filtering logic of '_tags_for' function into a dedicated 'filter_tags' function.
2014-04-26 20:50:04 -07:00
Thomas Scholtes
fea5df2339
covert: embed coverart into converted files
2014-04-26 19:49:29 +02:00
Thomas Scholtes
c20c62409d
convert: log error instead of crashing
2014-04-26 19:47:50 +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
Fabrice Laporte
74898347c0
is_page_candidate() handle more languages
...
Add translations in spanish and german for tokens to
ignore when comparing an url title with a song title.
2014-04-26 19:25:25 +02:00
Fabrice Laporte
8ba91a49c6
change chars replacements done by slugify()
...
adapt slugify() to make it return strings that can be used
as yaml keys (no spaces, etc.)
adapt is_page_candidate() accordingly
2014-04-26 19:22:40 +02:00
Fabrice Laporte
567e6300fd
fix flake8
2014-04-26 07:27:13 +02:00
Fabrice Laporte
117d16f2ad
lyrics: add tests to track which websites can be scraped by our algo and be
...
used as sources fot the google custom search engine.
2014-04-26 07:26:50 +02:00
Thomas Scholtes
e96753f96a
Plugins use import_task.album
2014-04-25 13:52:03 +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
80bec3935e
config name change, changelog for #692
2014-04-22 14:50:54 -07:00
Adrian Sampson
8cc05077ed
Merge branch 'SUTJael-ftintitle_drop'
2014-04-22 14:47:28 -07:00
Bruno Cauet
7b0ce4f28e
Disable the video stream in all ffmpeg conversions
...
Propagate the previous commit's change to all ffmpeg command lines.
2014-04-21 19:59:18 +02:00
SUTJael
4d616ceb93
Fix styling
2014-04-21 16:13:43 +02:00
SUTJael
345d47b40d
Fix indent
2014-04-21 16:06:34 +02:00
Bruno Cauet
db2a2d1e25
Disable video feed in ffmpeg's flac conversion
...
Video feeds may be found in flac files, and the current ffmpeg
conversion command does not ignore them, causing beets to fail
to convert the file.
Add `-vn` to the command line to fix the problem.
Fix issue #712 .
2014-04-21 15:37:10 +02:00
SUTJael
974e3128a6
Fix formatting issues.
...
Drop parameter sticky
2014-04-21 13:07:26 +02:00
Adrian Sampson
d96d12440e
underscore_naming in play ( #708 )
2014-04-19 14:55:34 -07:00
Adrian Sampson
e8f56c897b
play ( #708 ): obviate debug option
...
Just reuse beets' global verbose logging.
2014-04-19 14:54:20 -07:00
Adrian Sampson
9192b7f5cb
play plugin ( #708 ): docs clarification, etc.
2014-04-19 14:41:30 -07:00
Adrian Sampson
492acbb721
Merge pull request #708 from davidhampgonsalves/master
...
Play Plugin
2014-04-19 14:32:34 -07:00
david hamp-gonsalves
f67490c464
reworking messaging
2014-04-19 09:34:50 -03:00
david hamp-gonsalves
44e84e775a
correcting sytles
2014-04-19 09:24:37 -03:00
david hamp-gonsalves
f8b6c1ea11
added default commands to use system file associations
2014-04-19 08:52:18 -03:00
Adrian Sampson
5f4a9c6446
fix Windows path manipulation in importfeeds
2014-04-18 15:52:23 -07:00
david hamp-gonsalves
22f341eb97
added play plugin and docs
2014-04-18 10:33:53 -03:00
Yevgeny Bezman
e82147ce6d
replaygain: added missing import
2014-04-17 21:32:12 +03:00
Yevgeny Bezman
bfac8cf84f
replaygain: ignoring deprecation warning for threads_init in newer gi versions. Fixes #697
2014-04-17 20:06:03 +03:00
Thomas Scholtes
ea04344560
Test and fix unicode issues in logs. Fixes #699
...
The helper functions for creating test fixtures now include unicode characters.
2014-04-17 12:12:49 +02:00
Adrian Sampson
de1247c7bc
query-based fix for #693
...
This is @geigerzaehler's fix from b868799 , just with the typo fixed
(singletons -> singleton).
An alternate (more verbose) fix would have been:
singletons_query.subqueries.append(
dbcore.query.BooleanQuery('singleton', True, False)
)
i.e., pass `False` for the `fast` parameter to indicate that this is not a
fixed-field query.
2014-04-16 10:18:38 -07:00
Thomas Scholtes
0751c560e3
Check for singleton directly
2014-04-16 14:42:19 +02:00
Thomas Scholtes
b8687999e2
Query string for computed fields. Fixes #693
2014-04-16 14:18:07 +02:00
Thomas Scholtes
4e2828668c
Refactor mbsync
2014-04-16 14:02:51 +02:00
Adrian Sampson
033cf9ec21
spell check
2014-04-15 21:17:23 -07:00
SUTJael
2b7538ee82
Add drop option to FtInTitlePlugin
2014-04-15 23:04:41 +02:00
Adrian Sampson
9fd0e1d3fe
fix #687 : template indexes in logging statements
2014-04-14 10:35:20 -07:00
Pedro Silva
8aec50ff8c
call truncate, not convert, when truncating
2014-04-14 15:39:36 +02:00
Pedro Silva
cf2f78ef55
fix #685 : truncate files larger than 50MB for upload
...
The new behavior is as follows:
1. If the file size is greater than 50MB, and the 'truncate' config
option is 'no', skip the file.
2. If the file size is greater than 50MB, and the 'truncate' config
option is 'yes', reencode the file to ogg, and truncate to first 5
minutes.
2014-04-14 10:00:54 +02:00
Adrian Sampson
a45ac4a9d6
enable unused import checking
...
The "noqa" marker is for exceptions such as these.
2014-04-13 20:48:30 -07:00
Adrian Sampson
e21c04e912
flake8-cleanliness in missing
...
This is a little bit dumb, but one way to get the style checker to accept the
nice alignment in this plugin is to make it a dict.
2014-04-13 17:59:17 -07: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
2ec140edbc
fix import path to BooleanQuery ( #680 )
2014-04-12 13:48:37 -07:00
Adrian Sampson
2caacba3c6
Merge branch 'ktkonrad-singleton'
2014-04-12 13:40:54 -07:00
Adrian Sampson
e5d28e2171
lyrics is flake8-clean
2014-04-12 13:32:46 -07:00
Adrian Sampson
7fcd7daf7c
lyrics: minor style/doc cleanup
2014-04-12 13:08:24 -07:00
Adrian Sampson
2dafaa2f0c
Merge branch 'KraYmer-lyrics-enh-tests'
2014-04-12 12:58:20 -07:00
Adrian Sampson
3549f9785c
keyfinder: handle errors in command execution
2014-04-12 11:22:11 -07:00
Thomas Scholtes
650b49795b
Add keyfinder plugin
...
Closes #662 and #279 .
2014-04-12 18:44:38 +02:00
Fabrice Laporte
42747797cd
better handling of songs with featuring artists, songs variants versions (live
...
etc), and songs combinations (lyrics are then appended)
2014-04-12 12:29:20 +02:00
Kyle Konrad
d044e1773a
Replace SingletonQuery with BooleanQuery on computed singleton field.
...
Updated use in command parsing and mbsync plugin.
2014-04-11 22:20:04 -07:00
Adrian Sampson
271a1627a5
mbsync: call album.save()
...
This must have been broken as long as album.save() was a necessary call (i.e.,
since the introduction of the dbcore base classes).
2014-04-11 19:50:13 -07:00
Thomas Scholtes
c01fc542ed
Support for initial_key with EchoNest
2014-04-11 21:03:11 +02:00
Thomas Scholtes
c27d26ddbf
Refactor zero plugin
2014-04-10 22:01:04 +02:00
Adrian Sampson
6b0c03db9d
info: don't print out album art blobs
2014-04-10 11:50:59 -07:00
Adrian Sampson
4c9daa12cc
Merge pull request #676 from geigerzaehler/item-try-write
...
Add item.try_write() to log errors
2014-04-10 11:33:06 -07:00
Adrian Sampson
b79a1199ad
remove stray ITEM_FIELDS reference ( #650 )
2014-04-10 11:31:51 -07:00
Adrian Sampson
33b44717ab
embedart: catch log errors ( fix #678 )
2014-04-10 11:24:59 -07:00
Thomas Scholtes
5d753b4f38
Remove ALBUM_* constants. Closes #650
2014-04-10 17:44:39 +02:00
Thomas Scholtes
f6f974ec87
Remove ITEM_* constants
...
We might consider renaming `Item._fields` to `Item.fields` since other parts of
beets use it as a replacement for `ITEM_KEYS`.
See also #650 .
2014-04-10 17:11:21 +02:00
Thomas Scholtes
c3ea1ded30
Add item.try_write() to log errors
...
Many commands and plugins use `item.write()` to update tags. Since the success
of the call is not critical to the functionality of most consumers we want to
catch any exceptions, log an error and continue with our task. The new method
encapsulates this logic.
This fixes #675 .
2014-04-10 15:26:05 +02:00
Thomas Scholtes
b7a26811ef
Add "shell" keyword for commands and use it in convert
...
Convert used to split the user command at whitespaces and pass it to `Popen`.
This approach is to naive, it also was not consistent with output from the
logs. Instead we pass the whole command to a subshell.
2014-04-09 20:41:30 +02: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
Thomas Scholtes
55e5381bbd
Merge branch 'extendable-mediafile'
...
Conflicts:
beets/library.py
docs/dev/plugins.rst
2014-04-07 23:49:29 +02:00
Thomas Scholtes
6402b664c6
More refactoring for convert
2014-04-07 20:17:55 +02:00
Thomas Scholtes
651bdf0acc
Refactor convert plugin
...
* `encode()` raises an error when the command returns with non-zero exit
status. We catch that in the higher-level conversion functions and skip to
the next item without writing tags.
* Simplified the handling of the `keep_new` flag.
2014-04-07 18:24:59 +02:00
Thomas Scholtes
9d87a7fc02
Make convert --keep-new work again
...
Iincludes some more tests for the convert plugin. The test use the extended
TestHelper class and the new pathlib (see #621 ).
2014-04-07 18:07:43 +02:00
Adrian Sampson
dd053d7723
changelog and style fixes for #665
2014-04-06 17:59:30 -07:00
Lee Reinhardt
bf05135e5f
Added extra checking to fetchart plugin.
...
Will avoid a KeyError being raised when Content-Type header is missing.
See #664 .
2014-04-06 14:42:51 -05:00
Yevgeny Bezman
2a6e5c7273
Merge branch 'replaygain-backends'
...
Conflicts:
tox.ini
2014-04-06 08:45:35 +03:00
Thomas Scholtes
1b434a7dae
Import original file when conversion fails.
...
Fixes previous test
2014-04-05 21:09:12 +02:00
Thomas Scholtes
1c598d4cee
Add replaygain target level for gstreamer
2014-04-04 22:42:17 +02:00
Thomas Scholtes
81a2433e9d
Use GLib.MainLoop instead of deprecated GObject
2014-04-04 19:46:43 +02:00
Thomas Scholtes
81f53fb0d2
Add basic cli tests for replaygain
2014-04-04 19:44:16 +02:00
Yevgeny Bezman
cf49d88156
replaygain: clarified the need to strange thread initialization|
2014-04-04 20:20:14 +03:00
Yevgeny Bezman
d8c37d6ca3
replaygain: Added a FatalReplayGainError class to signal the plugin that the backend failed completely
2014-04-04 19:17:41 +02:00
Thomas Scholtes
a5bdbdcf7f
Move available backends to class level
...
See also https://github.com/sampsyo/beets/issues/650
2014-04-04 19:17:41 +02:00
Thomas Scholtes
439fc1938f
Remove debug print statements
2014-04-04 19:17:41 +02:00
Thomas Scholtes
89680d835a
Refine docstrings and fix style issues (flake8)
2014-04-04 19:17:41 +02:00
Yevgeny Bezman
6aa1cc95cb
replaygain: Improved error handling
2014-04-04 19:17:41 +02:00
Yevgeny Bezman
2d9f40d62d
replaygain: fixed small errors introduced by previous refactor. Commented the code in key parts.
2014-04-04 19:17:41 +02:00
Adrian Sampson
08b2bff28d
eliminate GStreamer globals and initialize_config
2014-04-04 19:17:41 +02:00
Adrian Sampson
2369122075
minor Python style; move namedtuples to module
2014-04-04 19:17:41 +02:00
Yevgeny Bezman
d2c6d00b7b
replaygain: Added some informative prints, removed hardcoded debug print
2014-04-04 19:17:40 +02:00
Yevgeny Bezman
9581b91e10
replaygain: Added gstreamer support, fixed some small bugs
2014-04-04 19:17:40 +02:00
Yevgeny Bezman
86ee30df0d
replaygain: modified current implementation to fit a backend framework in anticipation of other implementations
2014-04-04 19:17:40 +02:00
Thomas Scholtes
766c8b190b
Add path argument to item.write()
...
Symmetrical to item.read(), this allows us to update the tags of files that are
not in the library. The motivation was this issue [1].
The commit also includes a nasty hack in the plugin code that prevents breaking
other plugins.
[1]: https://github.com/geigerzaehler/beets-check/issues/1
2014-04-04 14:56:10 +02:00
Adrian Sampson
c5174b3881
use command_output utility in echonest
...
That's the last direct use of the subprocess calls.
2014-04-03 19:51:50 -07:00
Adrian Sampson
d407db725f
convert: catch OSErrors and display error message
...
This also adds close_fds (only available on Unixes) to the common subprocess
invocation utility.
2014-04-03 19:47:21 -07:00
Thomas Scholtes
4b1a1e3d65
Remove ITEM_KEYS_WRITABLE
2014-04-04 00:03:40 +02:00
Adrian Sampson
729e001432
benchmark: customizable album ID
2014-04-03 13:00:20 -07:00
Adrian Sampson
cd57c8da7f
benchmarking for slow matches
...
Investigating #609 . The culprit seems to be repeated reading of the config's
weight settings.
2014-04-03 11:56:26 -07:00
brilnius
e1878b34e7
Merge pull request #618 from brilnius/fix615
...
lastgenre plugin: separator in genre lists can now be configured
2014-03-19 22:22:41 +01:00
Bruno Tournay
81b74151ca
Genre separator from config must be unicode string
2014-03-19 22:16:02 +01:00
Thomas Scholtes
0daea144e8
Fix album import feed with slashes
...
Makes tests from f2da1922b28571216c7bc0eaa71f56a316dc0d5d pass.
Fixes #610 and supersedes #611 .
2014-03-19 17:26:11 +01:00
Bruno Tournay
618708916b
Separator in genre lists can now be configured
2014-03-18 22:03:11 +01:00
Pedro Silva
e8f6781fa0
fix #568 : ignore items with all keys null
2014-03-14 12:04:43 +01:00
brilnius
b8ef621941
Merge pull request #599 from brilnius/spl_auto
...
Ability to disable auto regeneration of smartplaylist
2014-03-10 22:46:55 +01:00
Bruno Tournay
865ea40eab
Simplified config access
2014-03-10 22:44:38 +01:00
Johannes
856a28a8a0
Revert "no module-global session ( #597 )"
...
This reverts commit c56412a1d5 .
- The Requests library advertises itself as thread safe.
- Cookies aren't so interesting, but keep-alive /
connection pooling would be nice to have.
2014-03-10 08:53:12 +00:00
Bruno Tournay
33632e0caf
We can now disable auto regeneration of smartplaylist
2014-03-09 22:57:07 +01:00
Adrian Sampson
fb038ecc30
changelog & style tweaks for album_query ( #595 )
2014-03-09 13:22:34 -07:00
Adrian Sampson
aa01906761
Merge pull request #595 from brilnius/spl_album_query
...
smartplaylist album_query parameter
2014-03-09 13:17:49 -07:00
Bruno Tournay
8a73a173df
Attempt to factorize duplicate code
2014-03-09 20:15:51 +01:00
Adrian Sampson
c56412a1d5
no module-global session ( #597 )
...
This might have been perfectly correct, but I read that requests.Session
objects share cookies between requests. That makes me nervous for two reasons:
- thread safety (does requests lock the cookie jar internally? who knows?!?)
- leaking cookies could have privacy/performance implications; we don't need
'em anyway
2014-03-09 11:54:31 -07:00
Adrian Sampson
7ddb8676c4
Merge pull request #597 from johtso/fetchart-requests-plus-useragent
...
Switch fetchart to requests and send user-agent
2014-03-09 11:43:51 -07:00
Johannes
3367dad0a4
Make fetchart use requests and send useragent
...
Closes #585
2014-03-09 09:26:30 +00:00
Adam M
e30a776baa
fix iteration over keys instead of values
2014-03-08 22:10:37 +00:00
Adrian Sampson
ef36890a4e
changelog and code simplification for #594
2014-03-08 13:58:37 -08:00
Adam M
c09b86db9c
don't iterate over all items to calculate max_bpm
...
https://github.com/sampsyo/beets/pull/594#issuecomment-37108627
2014-03-08 21:17:37 +00:00
Bruno Tournay
05d54b4f23
Added ability to also include in playlist result from query based on albums (album_query parameter).
2014-03-08 21:24:56 +01:00
Adam M
dfe8280ff2
add format option to echosim command
2014-03-08 16:22:50 +00:00
Adam M
a0faa530f9
convert echonest bpm to value between 0-1
2014-03-08 16:12:29 +00:00
Adam M
1e7fc76817
add threshold option to echosim command
2014-03-08 15:35:20 +00:00