예제 #1
0
    def _get_cached_token(self, token_name, token_variant=None):
        """Return a cached token"""
        path = self._get_token_path(token_name, token_variant)

        if not exists(path):
            return None

        with open_file(path) as fdesc:
            token = get_json_data(fdesc)

        if token is None:
            return None

        from datetime import datetime
        import dateutil.parser
        import dateutil.tz
        now = datetime.now(dateutil.tz.tzlocal())
        exp = dateutil.parser.parse(token.get('expirationDate'))
        if exp <= now:
            log(2, "Token expired, cached token '{path}' deleted", path=path)
            delete(path)
            return None

        log(3, "Got cached token '{path}'", path=path)
        return token.get(token_name)
예제 #2
0
    def _set_cached_token(self, token, token_variant=None):
        """Save token to cache"""
        from json import dump
        token_name = list(token.keys())[0]
        path = self._get_token_path(token_name, token_variant)

        if not exists(get_tokens_path()):
            mkdir(get_tokens_path())

        with open_file(path, 'w') as fdesc:
            dump(token, fdesc)
예제 #3
0
 def delete_tokens():
     """Delete all cached tokens"""
     # Remove old tokens
     # FIXME: Deprecate and simplify this part in a future version
     _, files = listdir(addon_profile())
     token_files = [item for item in files if item.endswith('.tkn')]
     # Empty userdata/tokens/ directory
     if exists(get_tokens_path()):
         _, files = listdir(get_tokens_path())
         token_files += ['tokens/' + item for item in files]
     if token_files:
         for item in token_files:
             delete(addon_profile() + item)
         notification(message=localize(30985))
예제 #4
0
 def delete_tokens():
     ''' Delete all cached tokens '''
     # Remove old tokens
     # FIXME: Deprecate and simplify this part in a future version
     dirs, files = listdir(get_userdata_path())  # pylint: disable=unused-variable
     token_files = [item for item in files if item.endswith('.tkn')]
     # Empty userdata/tokens/ directory
     if exists(get_tokens_path()):
         dirs, files = listdir(get_tokens_path())  # pylint: disable=unused-variable
         token_files += ['tokens/' + item for item in files]
     if token_files:
         for item in token_files:
             delete(get_userdata_path() + item)
         notification(message=localize(30985))
예제 #5
0
    def _get_cached_token(self, token_name, token_variant=None):
        ''' Return a cached token '''
        from json import load
        cached_token = None
        path = self._get_token_path(token_name, token_variant)

        if exists(path):
            from datetime import datetime
            import dateutil.parser
            import dateutil.tz
            with open_file(path) as fdesc:
                token = load(fdesc)
            now = datetime.now(dateutil.tz.tzlocal())
            exp = dateutil.parser.parse(token.get('expirationDate'))
            if exp > now:
                log(3, "Got cached token '{path}'", path=path)
                cached_token = token.get(token_name)
            else:
                log(2, "Cached token '{path}' deleted", path=path)
                delete(path)
        return cached_token
예제 #6
0
 def _create_settings_dir():
     ''' Create settings directory '''
     settingsdir = get_userdata_path()
     if not exists(settingsdir):
         mkdir(settingsdir)
예제 #7
0
 def _create_settings_dir():
     """Create settings directory"""
     settingsdir = addon_profile()
     if not exists(settingsdir):
         mkdir(settingsdir)