def edit_achievements(student_login): key = load_key(f'students/{student_login}.key') json_achievements = load_encrypted( f'students/{student_login}-achievements', key) with open(f'students/{student_login}.temp', 'w') as f: f.write(json_achievements) editor = os.getenv('EDITOR', default='vi') valid_json = False while not valid_json: os.system(f'{editor} students/{student_login}.temp') with open(f'students/{student_login}.temp') as f: json_achievements = f.read() try: _ = json.loads(json_achievements) valid_json = True except json.JSONDecodeError: print("Arquivo mal formatado.") time.sleep(2) save_encrypted(f'students/{student_login}-achievements', key, json_achievements) os.remove(f'students/{student_login}.temp')
def new_user(): student_login = '' while student_login == '': student_login = input('login insper: ').strip() student_key = create_key(f'students/{student_login}.key') student_name = input('nome completo: ') student_avatar = input('imagem de avatar: ') s = Student(student_login, student_name, student_avatar, []) write_string_to_file(f'students/{student_login}', s.toJSON()) save_encrypted(f'students/{student_login}-achievements', student_key, '[]')
def newUser(): student_login = '' while student_login == '': student_login = input('login insper: ').strip() student_key = create_key(f'students/{student_login}.key') student_name = input('nome completo: ') ghname = input('usuário do github: ') s = Student(student_login, student_name, ghname, []) write_string_to_file(f'students/{student_login}', s.toJSON()) save_encrypted(f'students/{student_login}-achievements', student_key, '[]')
def edit_achievements(student_login): key = load_key(f'students/{student_login}.key') json_achievements = load_encrypted( f'students/{student_login}-achievements', key) with open(f'students/{student_login}.temp', 'w') as f: f.write(json_achievements) editor = os.getenv('EDITOR', default='vi') os.system(f'{editor} students/{student_login}.temp') with open(f'students/{student_login}.temp') as f: json_achievements = f.read() save_encrypted(f'students/{student_login}-achievements', key, json_achievements) os.remove(f'students/{student_login}.temp')
def edit_achievements(student_login): key = load_key(f'students/{student_login}.key') json_achievements = load_encrypted( f'students/{student_login}-achievements', key) with open(f'students/{student_login}.temp', 'w') as f: f.write(json_achievements) if 'win32' in sys.platform: editor = os.getenv('EDITOR', default='notepad.exe') else: editor = os.getenv('EDITOR', default='vi') while True: os.system(f'{editor} students/{student_login}.temp') with open(f'students/{student_login}.temp') as f: json_achievements = f.read() try: _ = json.loads(json_achievements) except json.JSONDecodeError: print("Arquivo mal formatado.") time.sleep(2) continue print('Validando skills no arquivo JSON....') s = Student.load(student_login) s._load_skills_from_string(json_achievements) valid_skills = True for ach in s.all_achievements: try: ach.validate_metadata() except ValueError as e: print('- ', ach, '\n\t', e) valid_skills = False if valid_skills: break time.sleep(2) print('\n\n==================') print('Nenhum erro encontrado!') save_encrypted(f'students/{student_login}-achievements', key, json_achievements) os.remove(f'students/{student_login}.temp')