示例#1
0
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')
示例#2
0
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')
示例#3
0
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')