From ff81bbf8f5b7ce008ea49dd2c979ad7ba5be8f50 Mon Sep 17 00:00:00 2001 From: Ohm Patel Date: Wed, 30 Dec 2015 22:03:50 -0600 Subject: [PATCH] ABrainz: Added first pass of plugin. Only prints MBID and response status code to console. --- beetsplug/acoustic.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 beetsplug/acoustic.py diff --git a/beetsplug/acoustic.py b/beetsplug/acoustic.py new file mode 100644 index 000000000..4eb7ea2de --- /dev/null +++ b/beetsplug/acoustic.py @@ -0,0 +1,38 @@ +from __future__ import (division, absolute_import, print_function, + unicode_literals) + + +from beets import plugins, ui +import requests + +ACOUSTIC_URL = "http://acousticbrainz.org/" +LEVEL = "/high-level" +PLUGIN_DESCRIPTION = "Fetch metadata from AcousticBrainz" + + +class AcousticPlugin(plugins.BeetsPlugin): + def __init__(self): + super(AcousticPlugin, self).__init__() + + def commands(self): + cmd = ui.Subcommand('acoustic', help=PLUGIN_DESCRIPTION) + + def func(lib, opts, args): + fetch_info(lib) + + cmd.func = func + return [cmd] + + +# Currently outputs MBID and corresponding request status code +def fetch_info(lib): + for item in lib.items(): + if item.mb_trackid: + r = requests.get(generate_url(item.mb_trackid)) + print(item.mb_trackid) + print(r.status_code) + + +# Generates url of AcousticBrainz end point for given MBID +def generate_url(mbid): + return ACOUSTIC_URL + mbid + LEVEL