404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.137.142.253: ~ $
import json
import os
from ...logger import logger
from ... import exceptions

from ...constants import PROTON_XDG_CONFIG_HOME
from ._base import KeyringBackend


class KeyringBackendJsonFiles(KeyringBackend):
    # Low priority
    priority = -1000

    def __init__(self):
        super().__init__()

        self.__path_base = PROTON_XDG_CONFIG_HOME

    def __get_filename_for_key(self, key):
        self._ensure_key_is_valid(key)

        return os.path.join(self.__path_base, f'keyring-{key}.json')

    def __getitem__(self, key):
        f = self.__get_filename_for_key(key)
        if not os.path.exists(f):
            raise KeyError(key)
        with open(self.__get_filename_for_key(key), 'r') as f:
            try:
                return json.load(f)
            except json.decoder.JSONDecodeError as e:
                logger.exception(e)
                raise exceptions.JSONDataEmptyError(e)
            except TypeError as e:
                logger.exception(e)
                raise exceptions.JSONDataNoneError(e)
            except Exception as e:
                logger.exception(e)
                raise exceptions.JSONDataError(e)

    def __delitem__(self, key):
        f = self.__get_filename_for_key(key)
        if not os.path.exists(f):
            raise KeyError(key)
        os.unlink(f)

    def __setitem__(self, key, value):
        self._ensure_key_is_valid(key)
        self._ensure_value_is_valid(value)

        with open(self.__get_filename_for_key(key), 'w') as f:
            json.dump(value, f)

    def _ensure_backend_is_working(self):
        pass

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 118 B 0644
_base.py File 1.58 KB 0644
linuxkeyring.py File 5.21 KB 0644
textfilekeyring.py File 1.56 KB 0644