def _get_nest(): '''Get an authenticated Nest object''' if not os.path.isdir(alfred.cache_dir): os.mkdir(alfred.cache_dir) if not os.access(alfred.cache_dir, os.W_OK): raise IOError('No write access to dir: %s' % alfred.cache_dir) nest = nestlib.Nest(cache_dir=alfred.cache_dir) if not nest.has_session: alfred.show_message('First things first...', 'Before you can use this ' 'workflow you need to supply your Nest account ' "email and password. This information isn't " 'stored anywhere (only a session cookie is ' "saved), so you'll periodically have to login " 'again.') while True: email = alfred.get_from_user('Email', 'Nest account email address') if len(email) == 0: nest = None break password = alfred.get_from_user('Password', 'Nest account password', hidden=True) if len(password) == 0: nest = None break if nest.login(email, password): alfred.show_message('Success!', "You're logged in an ready to go!") break else: alfred.show_message('Login failed', 'Either the Nest service is temporarily ' 'down or your email and password were ' 'incorrect. Click OK to try again.') return nest
def do_service(self, svc): self.config['service'] = svc key_name = 'key.{}'.format(svc) key = self.config.get(key_name) answer = alfred.get_from_user( 'Update API key', u'Enter your API key for {}'.format( SERVICES[svc]['name']), value=key, extra_buttons='Get key') button, sep, key = answer.partition('|') if button == 'Ok': self.config[key_name] = key self.puts(u'Using {} for weather data with key {}'.format( SERVICES[svc]['name'], key)) elif button == 'Get key': import webbrowser webbrowser.open(SERVICES[svc]['getkey'])
def do_service(svc): settings = _load_settings(False) settings['service'] = svc key_name = 'key.{}'.format(svc) key = settings.get(key_name) user_key = alfred.get_from_user( 'Update API key', 'Enter your API key for {}'.format( SERVICES[svc]['name']), value=key) if len(user_key) != 0: key = user_key settings[key_name] = user_key _save_settings(settings) _out('Using {} for weather data with key {}'.format(SERVICES[svc]['name'], key))
def do_service(svc): settings = _load_settings(False) settings['service'] = svc key_name = 'key.{}'.format(svc) key = settings.get(key_name) user_key = alfred.get_from_user('Update API key', 'Enter your API key for {}'.format( SERVICES[svc]['name']), value=key) if len(user_key) != 0: key = user_key settings[key_name] = user_key _save_settings(settings) _out('Using {} for weather data with key {}'.format( SERVICES[svc]['name'], key))
def do_service(svc): _load_settings(False) settings['service'] = svc key_name = 'key.{}'.format(svc) key = settings.get(key_name) answer = alfred.get_from_user('Update API key', u'Enter your API key for {}'.format( SERVICES[svc]['name']), value=key, extra_buttons='Get key') button, sep, key = answer.partition('|') if button == 'Ok': settings[key_name] = key _save_settings() _out(u'Using {} for weather data with key {}'.format( SERVICES[svc]['name'], key)) elif button == 'Get key': import webbrowser webbrowser.open(SERVICES[svc]['getkey'])