import json import os import hashlib DATA_FILE = os.path.join(os.path.dirname(__file__), 'users.json') def load_data(): if not os.path.exists(DATA_FILE): return {} try: with open(DATA_FILE, 'r', encoding='utf-8') as f: return json.load(f) except Exception: return {} def save_data(data): with open(DATA_FILE, 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4) def hash_password(password): return hashlib.sha256(password.encode('utf-8')).hexdigest() def register_user(login, password): data = load_data() if login in data: return False, 'Такой пользователь уже существует' data[login] = { 'password': hash_password(password), 'repositories': [] } save_data(data) return True, 'Профиль создан' def check_user(login, password): data = load_data() return login in data and data[login].get('password') == hash_password(password) def get_repositories(login): data = load_data() return data.get(login, {}).get('repositories', []) def add_repository(login, repo_link): data = load_data() if login not in data: return False repos = data[login].setdefault('repositories', []) if repo_link in repos: return False repos.append(repo_link) save_data(data) return True def delete_repository(login, repo_link): data = load_data() if login in data and repo_link in data[login].get('repositories', []): data[login]['repositories'].remove(repo_link) save_data(data)