def __init__(self): self.api = Musicmanager(debug_logging=False) refresh_token = json.loads( settings['google']['musicmanager'])['refresh_token'] credentials = session.credentials_from_refresh_token( refresh_token, session.Mobileclient.oauth) self.api.login(credentials)
def login(self, initial_code, refresh_token, device_id): if self.api.is_authenticated(): self.api.logout() if device_id is None or device_id == "mac": device_id = gmusicapi.Mobileclient.FROM_MAC_ADDRESS oauth_info = gmusicapi.Mobileclient._session_class.oauth if not refresh_token: flow = OAuth2WebServerFlow(**oauth_info._asdict()) if not initial_code: logger.error('Please provide the initial code from the following URL: %s', flow.step1_get_authorize_url()) credentials = flow.step2_exchange(initial_code) refresh_token = credentials.refresh_token logger.info('Please update your config to include the following refresh_token: %s', refresh_token) authenticated = self.api.oauth_login( device_id, oauth_credentials=credentials_from_refresh_token(refresh_token, oauth_info)) if authenticated: logger.info('Logged in to Google Music') else: logger.error('Failed to login to Google Music') return authenticated
def login(self, refresh_token, device_id): if self.api.is_authenticated(): self.api.logout() if device_id is None or device_id == "mac": device_id = gmusicapi.Mobileclient.FROM_MAC_ADDRESS oauth_info = gmusicapi.Mobileclient._session_class.oauth if not refresh_token: logger.error( "No refresh_token in gmusic config. Please run " + "`mopidy gmusic login`." ) return False authenticated = self.api.oauth_login( device_id, oauth_credentials=credentials_from_refresh_token( refresh_token, oauth_info ), ) if authenticated: logger.info("Logged in to Google Play Music") else: logger.error("Failed to login to Google Play Music") return authenticated
def login(self, initial_code, refresh_token, device_id): if self.api.is_authenticated(): return if device_id is None or device_id == "mac": device_id = gmusicapi.Mobileclient.FROM_MAC_ADDRESS oauth_info = gmusicapi.Mobileclient._session_class.oauth if not refresh_token: flow = OAuth2WebServerFlow(**oauth_info._asdict()) if not initial_code: logger.error( 'Please provide the initial code from the following URL: %s', flow.step1_get_authorize_url()) credentials = flow.step2_exchange(initial_code) refresh_token = credentials.refresh_token logger.info( 'Please update your config to include the following refresh_token: %s', refresh_token) authenticated = self.api.oauth_login( device_id, oauth_credentials=credentials_from_refresh_token( refresh_token, oauth_info)) if authenticated: logger.info('Logged in to Google Music') else: logger.error('Failed to login to Google Music') return authenticated
def _get_kwargs(envargs): kwargs = {} for arg in envargs: if arg.is_required and arg.envarg not in os.environ: raise ValueError("%s was not exported and must be %s" % (arg.envarg, arg.description)) val = os.environ.get(arg.envarg) if arg.kwarg == 'oauth_credentials' and val is not None: oauth_info = session.Musicmanager.oauth if arg.envarg == 'GM_O' else session.Mobileclient.oauth kwargs['oauth_credentials'] = session.credentials_from_refresh_token(val, oauth_info) else: kwargs[arg.kwarg] = val return kwargs
def _get_kwargs(envargs): kwargs = {} for arg in envargs: if arg.is_required and arg.envarg not in os.environ: raise ValueError("%s was not exported and must be %s" % (arg.envarg, arg.description)) val = os.environ.get(arg.envarg) if arg.kwarg == 'oauth_credentials' and val is not None: oauth_info = session.Musicmanager.oauth if arg.envarg == 'GM_O' else session.Mobileclient.oauth kwargs[ 'oauth_credentials'] = session.credentials_from_refresh_token( val, oauth_info) else: kwargs[arg.kwarg] = val return kwargs