Commit graph

554 commits

Author SHA1 Message Date
Adrian Sampson
0969749e5b cleanup, docs, and changelog for relative_to (#74) 2013-01-22 21:02:41 -08:00
Philippe Mongeau
c01e06e0fe importfeeds: document the relative_to configuration option 2013-01-22 22:54:29 -05:00
Adrian Sampson
899ac18f71 importfeeds migration: remove prefix (GC-503) 2013-01-22 11:55:58 -08:00
Adrian Sampson
f7bef39769 GH-72: use function bodies instead of special var 2013-01-05 17:48:00 -08:00
Adrian Sampson
51e9c519d4 plugin renames: fuzzy and random
Renamed fuzzy_search to fuzzy and rdm to random. These names should be easier
to remember since they are the same as the commands they provide.

--HG--
rename : beetsplug/fuzzy_search.py => beetsplug/fuzzy.py
rename : beetsplug/rdm.py => beetsplug/random.py
rename : docs/plugins/fuzzy_search.rst => docs/plugins/fuzzy.rst
rename : docs/plugins/rdm.rst => docs/plugins/random.rst
2012-12-23 14:46:20 -08:00
Adrian Sampson
11e1fd1bd8 document new Confit-based configuration 2012-12-20 21:56:47 -08:00
Adrian Sampson
c0461c8847 improve some short plugin descriptions 2012-12-17 17:29:24 -08:00
Adrian Sampson
4f5c5d4e4f echonest_tempo: docs wording fix 2012-12-02 16:34:05 -08:00
Adrian Sampson
f5628e03f6 include official beets Echo Nest API key 2012-12-02 16:32:19 -08:00
Adrian Sampson
a8cf42d05b echonest_tempo: changelog + doc fixes + print fix 2012-12-02 16:25:45 -08:00
David Brenner
0fe2331842 Create echonest_tempo plugin - use EchoNest API to get tempo (bpm).
A simple plugin that connects to the EchoNest API to retrieve
tempo (bpm) metadata for tracks. Functions similarly to the lyrics
plugin.

Requires the pyechonest library.
2012-12-02 18:27:20 -05:00
Wieland Hoffmann
335ce9c73c Some grammar corrections for docs/.../ihate.rst 2012-12-01 10:53:35 +01:00
Adrian Sampson
becd4f957d long-overdue docs for the "info" plugin 2012-11-27 19:44:46 -08:00
Adrian Sampson
90f7fabb9a convert docs phrasing tweaks
@yagebu: I did a code review of the new version of convert using FFmpeg as a
backend. Everything looks perfect. These are just a few changes to the docs.
Thanks again!
2012-11-06 14:38:45 -08:00
Jakob Schnitzer
19acf0809f convert: switch from flac and lame to ffmpeg
Instead of flac and lame the convert plugin now uses ffmpeg. This adds
support for more input formats and simplifies the code. ffmpeg also uses
the lame encoder internally and has equivalents of all the -V<num>
presets which should be sufficient.
2012-11-05 22:30:21 +01:00
Fabrice Laporte
dfddc3a899 Update docs/plugins/fetchart.rst 2012-11-01 23:58:49 +01:00
Adrian Sampson
338eb6388e documentation for convert.exe problem (#64)
We currently just document the fact that convert.exe can interfere with finding
ImageMagick's convert binary. We can solve this with a config option easily once
confit is merged.

This also changes the line endings for fetchart.rst back to Unix.
2012-11-01 14:25:46 -07:00
Adrian Sampson
d9974081a7 add extension for proxied images
`urllib.urlretrieve` was using the correct extension in most cases -- I think
when the URL ended with .jpg -- but not in every case. This was leading to files
named just "cover" and not "cover.jpg" or something else sensible. In
particular, proxied URLs don't have .jpg extensions. This generates the filename
manually so the source image always has an extension.
2012-11-01 12:39:02 -07:00
Adrian Sampson
29c6f9c342 changelog and light style fixes for #64 2012-10-31 17:52:21 -07:00
Fabrice Laporte
7f2aa44ac6 Add 'maxwidth' option to embedart and fetchart plugins.
artresizer.py instances an ArtResizer object that uses internally the PIL; ImageMagick
or a web proxy service to perform the resizing operations.
Because embedart works on input images located on filesystem it requires PIL or ImageMagick, whereas
fetchart is able to do the job with the fallback webproxy resizer.
2012-10-28 15:36:42 +01:00
Adrian Sampson
9368075756 replaygain: reinstate albumgain config option 2012-10-20 16:49:52 -07:00
Adrian Sampson
0ab3426bd9 replaygain: add command
You can now disable automatic analysis and instead use a command to manually
analyze albums or tracks.
2012-10-17 22:12:38 -07:00
Adrian Sampson
83f3069d57 replaygain: remove albumgain setting
We now always calculate album gain when importing an album. This is "free" (no
performance cost) now and players are free to ignore the setting if they so
choose.
2012-10-17 20:11:20 -07:00
Adrian Sampson
6b7d9a6f40 merge pull request #56 (thread count detection) 2012-10-14 14:01:04 -07:00
Adrian Sampson
b9e2beddec replaygain: changelog & doc enhancements for GH-55 2012-10-12 22:42:08 -07:00
Adrian Sampson
b6f34000f0 Merge pull request #55 from KraYmer/upstream
Adding threads to new ReplayGain backend based on command-line tool
2012-10-12 22:27:42 -07:00
Adrian Sampson
d8433f977c convert: changelog thanks & doc enhancements 2012-10-12 22:11:07 -07:00
Andrew G. Dunn
780cbed809 Made a simple update to the documentation 2012-10-12 16:57:12 -04:00
kraymer
6208c453c6 add apply_gain option (was default) 2012-10-12 08:52:12 +02:00
kraymer
7265119aad change replaygain plugin backend: it now invokes a command line tool (mp3gain or aacgain) 2012-10-12 08:51:36 +02:00
Jakob Schnitzer
f4d6826462 convert: Added note to docs that 'dest' is a required setting 2012-10-08 23:02:22 +02:00
Jakob Schnitzer
b05fc8ef4f Merge branch 'convert' 2012-10-08 12:49:04 +02:00
Jakob Schnitzer
ec6bbf53d4 convert: Add docs 2012-10-08 12:34:35 +02:00
Blemjhoo Tezoulbr
3eb11355cf ihate plugin: ver 1.0 - initial import 2012-10-05 02:37:21 +03:00
Blemjhoo Tezoulbr
c9fafb8379 plugin the: ver 1.1 - singleton mode, code cleanup 2012-10-05 02:04:51 +03:00
Adrian Sampson
56958d175b docs + changelog for GH-50 (lastgenre command) 2012-10-04 09:47:59 -07:00
Adrian Sampson
4aac7f5324 zero: changelog note & doc improvements 2012-09-25 14:15:33 -07:00
Adrian Sampson
d09308eab2 Merge pull request #49 from tezoulbr/master
new plugin - zero
2012-09-25 14:04:19 -07:00
Philippe Mongeau
d6f2bf20f4 fuzzy_search: enable setting threshold value from the config file 2012-09-22 17:35:39 -04:00
Blemjhoo Tezoulbr
edcacde9ba zero plugin ref included in plugins doc index 2012-09-22 19:06:38 +03:00
Blemjhoo Tezoulbr
aff36fa694 zero plugin, version 0.9 2012-09-22 15:50:33 +03:00
Adrian Sampson
e092af2b2f changelog note: fuzzy_search plugin 2012-09-18 10:33:58 -07:00
Adrian Sampson
0d3064bae8 Merge pull request #48 from phmongeau/fuzzy
Fuzzy Search plugin
2012-09-18 10:26:16 -07:00
Philippe Mongeau
a49dcb81c6 add documentation for fuzzy_search 2012-09-17 22:41:02 -04:00
Blemjhoo Tezoulbr
16aa842ccf plugin the: version 1.0 2012-09-16 04:42:39 +03:00
Adrian Sampson
6200f0a4c8 scrub: remove all types of tags 2012-08-24 15:39:13 -07:00
Adrian Sampson
0cab7bd8de inline: fix example in docs (use albumartist)
Previously, the example used the track artist ($artist) for the initial
directory component.
2012-08-07 09:59:00 -07:00
Adrian Sampson
96de3ee400 add track mapping to album_distance plugin method 2012-08-03 18:12:58 -07:00
Adrian Sampson
c25fb4b544 link to OSSBuilds for Gstreamer on Windows
(Thanks to Darrin, who pointed this out via email!)
2012-08-03 09:38:56 -07:00
Wieland Hoffmann
70910f5ac1 Fix the reference to the ".beetsconfig" doc in plugins/web 2012-07-12 11:19:49 +02:00
Adrian Sampson
ba80e1578a revise changelog/docs mention of cover art source 2012-07-09 14:16:40 -07:00
Adrian Sampson
6503e85a57 fetchart: autofetch option
This necessitated a slight refactoring in the plugin event handling mechanism.
Rather than loading all handlers up front and storing them in a module-scope
structure, we now scan for event handlers at every send(). This is probably
very slightly less efficient but allows for more flexible logic.
2012-06-24 19:01:19 -07:00
Adrian Sampson
fbb5823541 fetchart: command to manually download art 2012-06-24 18:27:00 -07:00
Adrian Sampson
77cbb19564 fetchart: get local art for as-is imports (GC-339) 2012-06-24 17:41:37 -07:00
Adrian Sampson
d807b3fbf1 Cover Art Archive support (GC-71) 2012-06-24 16:57:04 -07:00
Adrian Sampson
11d4fb1abb move album art fetching to a plugin (fetchart) 2012-06-24 00:34:50 -07:00
Adrian Sampson
ad4b7f8ff5 new plugin event: import_task_files 2012-06-14 12:41:39 -07:00
Adrian Sampson
48ffa08928 plugin import stages 2012-06-08 14:49:04 -07:00
Adrian Sampson
6c220f284a fix outdated BPD documentation
The update command is now supported.
2012-05-31 23:30:08 -07:00
Adrian Sampson
face0ba323 chroma submission: fix crash; better errors 2012-05-17 14:54:58 -07:00
Adrian Sampson
dfcd47942d new plugin event: library_opened 2012-05-15 12:39:04 -07:00
Adrian Sampson
c9da7bf3f8 new plugin event: import_task_choice 2012-05-15 12:33:57 -07:00
kraymer
f93dd6999b correct typo 2012-05-09 09:08:55 +02:00
kraymer
c4783e25f8 'Issue 358:Options for when lastgenre fails to find a tag'. Added 'fallback_str' plugin parameter to specify a fallback string when no genre found. Declare the parameter without specifying a value (= empty string) to blank the genre field when no genre found. 2012-05-08 23:41:07 +02:00
Adrian Sampson
a28f930c52 transaction objects to control DB access
In an attempt to finally address the longstanding SQLite locking issues, I'm
introducing a way to explicitly, lexically scope transactions. The Transaction
class is a context manager that always fully fetches after SELECTs and
automatically commits on exit. No direct access to the library is allowed, so
all changes will eventually be committed and all queries will be completed. This
will also provide a debugging mechanism to show where concurrent transactions
are beginning and ending.

To support composition (transaction reentrancy), an internal, per-Library stack
of transactions is maintained. Commits only happen when the outermost
transaction exits. This means that, while it's possible to introduce atomicity
bugs by invoking Library methods outside of a transaction, you can conveniently
call them *without* a currently-active transaction to get a single atomic
action.

Note that this "transaction stack" concepts assumes a single Library object per
thread. Because we need to duplicate Library objects for concurrent access due
to sqlite3 limitation already, this is fine for now. Later, the interface should
provide one transaction stack per thread for shared Library objects.
2012-05-06 23:24:05 -07:00
Adrian Sampson
fa3e41c86a BPD: print messages reflecting tree (re)build 2012-04-30 12:02:00 -07:00
Adrian Sampson
ca5af1d62b add featInTitle to "other plugins" list 2012-04-28 21:05:41 -07:00
Adrian Sampson
2a38fcce6a typo in inline plugin docs 2012-04-20 09:58:02 -07:00
Adrian Sampson
d8776b3ed2 doc fixes
(I obviously don't know how to use git-cherry-pick.)
2012-04-10 12:11:23 -07:00
kraymer
78fbe6d836 rename 'm3uupdate' plugin to 'importfeeds'. Handles two more output formats: multi m3u files (one per item imported) and symlinks. Update plugin docs.
Conflicts:

	docs/plugins/index.rst
2012-04-10 12:06:38 -07:00
Adrian Sampson
44bcc5b3bd chroma: "beet submit" command (#332) 2012-04-01 20:41:27 -07:00
Adrian Sampson
01dce53212 store Acoustid data in DB & file
This is accomplished via a new event, "import_task_apply", which is called
right after metadata is applied to newly-imported items.

This change makes chroma REQUIRE a new version (0.6) of pyacoustid. Users with
older versions installed will see complaints about a missing method
"fingerprint_file".
2012-04-01 19:38:46 -07:00
Adrian Sampson
82a4bafc3e chroma: fingerprint when task begins
The old "caching"-based approach to fingerprinting was kinda hacky to begin
with. Now, the chroma plugin has an explicit opportunity (in the form of a new
event) to perform its initial fingerprinting and lookup for all tracks. Then,
this information is used explicitly during the autotagging phase rather than
being used transparently through memoization of the lookup function.
2012-04-01 18:55:14 -07:00
Adrian Sampson
ef740740ce link to Homebrew gst-python instructions 2012-03-31 14:06:25 -07:00
Adrian Sampson
2466305d7e add MusicBrainz collection plugin by @jeffayle 2012-03-23 11:34:57 -07:00
Adrian Sampson
9befb94561 -n option for random command (#24) 2012-03-23 10:33:44 -07:00
Adrian Sampson
7e6cdd75d6 docs & changelog for rdm plugin 2012-03-23 10:26:50 -07:00
Adrian Sampson
6bfbb899bc docs: more readable list of included plugins 2012-03-18 16:58:02 -07:00
Adrian Sampson
af0da7d1b6 m3uupdate docs, changelog, and cleanup (#23) 2012-03-18 16:42:12 -07:00
Adrian Sampson
dfc5ddb942 mention hangs in replaygain warning 2012-02-19 12:30:14 -08:00
Adrian Sampson
6fd8ae0e95 move plugin API docs to their own page 2012-02-09 14:43:59 -08:00
Adrian Sampson
08e93a5309 plugin API to extend MediaFile (#324) 2012-02-09 14:35:47 -08:00
Adrian Sampson
6817c70592 document fpcalc installation of Chromaprint 2012-01-27 12:41:07 -08:00
Adrian Sampson
a58253b79c "lyrics -p" prints out lyrics 2012-01-19 12:43:29 -08:00
Adrian Sampson
01a54e2e0e first stab at revamped lyrics plugin (#137) 2012-01-19 12:25:11 -08:00
Adrian Sampson
0275836293 warning about replaygain instability (#289) 2012-01-18 14:41:19 -08:00
Adrian Sampson
347a29b0f6 rewrite plugin
--HG--
rename : docs/plugins/inline.rst => docs/plugins/rewrite.rst
2012-01-16 20:48:23 -08:00
Adrian Sampson
9920cc482c add "scrub" plugin (#280)
--HG--
rename : beetsplug/embedart.py => beetsplug/scrub.py
rename : docs/plugins/embedart.rst => docs/plugins/scrub.rst
2012-01-02 14:03:28 -08:00
Adrian Sampson
890021008a inline plugin: define template fields in config (#169) 2011-12-27 14:43:58 -08:00
Adrian Sampson
93678307ef lastgenre now writes tags to files (#279)
This was accomplished by adding a new "config" parameter to the *_imported
events so that the handlers can check whether writing is enabled.
2011-12-20 17:49:11 -08:00
Adrian Sampson
69c0e8d496 doc fixes for extensible template fields 2011-12-17 21:46:09 -08:00
Adrian Sampson
91901fc379 plugin-extensible path format fields (#169) 2011-12-17 21:29:15 -08:00
Adrian Sampson
621b3d4bb7 link to plugin template format docs 2011-12-16 12:18:44 -08:00
Adrian Sampson
f1ebc82a55 plugin hooks for template functions (#231) 2011-12-16 11:56:40 -08:00
Adrian Sampson
d1e43e9346 docs for partial album matches (#260) 2011-12-01 14:26:30 -08:00
Adrian Sampson
c03fb658c7 clean up genre canonicalization (#264)
- Canonicalization is disabled by default. (This prevents pyyaml from being a
  dependency if you don't use canonicalization.)
- Config value to set the tree file.
- Python style.
- Added YAML file to MANIFEST.in.
- Documentation.
2011-12-01 12:14:11 -08:00
Adrian Sampson
d63924b142 docs for replaygain plugin (#248) 2011-11-13 15:51:11 -08:00
Adrian Sampson
f2bb220f5a chroma plugin (for acoustid fingerprinting) (#152)
--HG--
rename : docs/plugins/lastid.rst => docs/plugins/chroma.rst
2011-11-12 15:33:00 -08:00
Adrian Sampson
b62b462b1e file-based genre whitelist & cleanup
--HG--
rename : beetsplug/lastgenre.py => beetsplug/lastgenre/__init__.py
2011-10-07 12:51:38 -07:00
Adrian Sampson
d6431b992e lastgenre plugin (#139) 2011-09-23 12:33:47 -07:00
Adrian Sampson
55c72f678e document item_imported plugin event 2011-09-23 11:51:20 -07:00
Adrian Sampson
521131bc2b screenshot image and syntax cleanup 2011-09-17 15:32:27 -07:00
Adrian Sampson
2073b2e5f4 web plugin page 2011-09-17 13:39:06 -07:00
Adrian Sampson
2f8370669e translate plugin documentation 2011-09-17 11:04:51 -07:00