Beispiel #1
0
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
Beispiel #2
0
    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))
Beispiel #5
0
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'])