Skip to content

Commit

Permalink
discogs #1040: Standard API key, handle failure
Browse files Browse the repository at this point in the history
  • Loading branch information
sampsyo committed Oct 26, 2014
1 parent 1af2d31 commit a8a5191
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions beetsplug/discogs.py
Expand Up @@ -31,36 +31,40 @@
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
Expand Down

0 comments on commit a8a5191

Please sign in to comment.