mirror of
https://github.com/beetbox/beets.git
synced 2025-12-25 18:13:17 +01:00
discogs #1040: Standard API key, handle failure
This commit is contained in:
parent
1af2d31ee6
commit
a8a5191cf5
1 changed files with 21 additions and 17 deletions
|
|
@ -31,36 +31,40 @@ log = logging.getLogger('beets')
|
|||
urllib3_logger = logging.getLogger('requests.packages.urllib3')
|
||||
urllib3_logger.setLevel(logging.CRITICAL)
|
||||
|
||||
USER_AGENT = 'beets/{0} +http://beets.radbox.org/'.format(beets.__version__)
|
||||
|
||||
|
||||
class DiscogsPlugin(BeetsPlugin):
|
||||
|
||||
def __init__(self):
|
||||
super(DiscogsPlugin, self).__init__()
|
||||
self.config.add({
|
||||
'apikey': 'rAzVUQYRaoFjeBjyWuWZ',
|
||||
'apisecret': 'plxtUTqoCzwxZpqdPysCwGuBSmZNdZVy',
|
||||
'source_weight': 0.5,
|
||||
})
|
||||
|
||||
c_key = self.config['apikey'].get(unicode)
|
||||
c_secret = self.config['apisecret'].get(unicode)
|
||||
try:
|
||||
c_key = beets.config['discogs']['consumer_key'].get(unicode)
|
||||
c_secret = beets.config['discogs']['consumer_secret'].get(unicode)
|
||||
except beets.confit.NotFoundError:
|
||||
raise beets.ui.UserError('discogs API keys not configured.')
|
||||
try:
|
||||
token = beets.config['discogs']['token'].get(unicode)
|
||||
secret = beets.config['discogs']['secret'].get(unicode)
|
||||
token = self.config['token'].get(unicode)
|
||||
secret = self.config['secret'].get(unicode)
|
||||
except beets.confit.NotFoundError:
|
||||
token, secret = self.authenticate(c_key, c_secret)
|
||||
|
||||
self.config.add({
|
||||
'source_weight': 0.5,
|
||||
})
|
||||
self.discogs_client = Client('beets/%s +http://beets.radbox.org/' %
|
||||
beets.__version__, c_key, c_secret,
|
||||
self.discogs_client = Client(USER_AGENT, c_key, c_secret,
|
||||
token, secret)
|
||||
|
||||
def authenticate(self, c_key, c_secret):
|
||||
auth_client = Client('beets/%s +http://beets.radbox.org/' %
|
||||
beets.__version__, c_key, c_secret)
|
||||
auth_client = Client(USER_AGENT, c_key, c_secret)
|
||||
_, _, url = auth_client.get_authorize_url()
|
||||
beets.ui.print_("To authenticate to discogs please visit %s" % url)
|
||||
code = beets.ui.input_("Enter the code: ")
|
||||
token, secret = auth_client.get_access_token(code)
|
||||
beets.ui.print_("To authenticate with Discogs, visit:")
|
||||
beets.ui.print_(url)
|
||||
code = beets.ui.input_("Enter the code:")
|
||||
try:
|
||||
token, secret = auth_client.get_access_token(code)
|
||||
except DiscogsAPIError:
|
||||
raise beets.ui.UserError('Discogs authorization failed')
|
||||
beets.ui.print_("token: %s\nsecret: %s" % (token, secret))
|
||||
beets.ui.print_("Add the above to beets config!")
|
||||
return token, secret
|
||||
|
|
|
|||
Loading…
Reference in a new issue