-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
75 lines (64 loc) · 2.77 KB
/
Copy pathmain.py
File metadata and controls
75 lines (64 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os
import time
BLOCK_TIME = 900
AUTH_FILE = 'auth.txt'
LOCK_FILE = 'lockout.txt'
LINE_WIDTH = '=' * 45
if os.path.exists(AUTH_FILE):
print(LINE_WIDTH)
print('ВХОД В СИСТЕМУ')
print(LINE_WIDTH)
if os.path.exists(LOCK_FILE):
with open(LOCK_FILE, encoding='utf-8') as lock:
unlock_time = float(lock.read())
if time.time() < unlock_time:
time_ost = int((unlock_time - time.time()) / 60)
print(f'До разблокировки осталось {time_ost} минут')
exit()
else:
os.remove(LOCK_FILE)
with open(AUTH_FILE, encoding='utf-8') as auth:
attempts = 3
while True:
login = input('Логин: ')
password = input('Пароль: ')
status = None
auth.seek(0)
if login == auth.readline().strip() and \
password == auth.readline().strip():
status = True
print(f"Статус: {status}")
print('Добро пожаловать!')
break
else:
if attempts > 0:
status = False
print(f"Статус: {status}")
print(f'Неверно! Осталось {attempts} попыток.')
attempts -= 1
else:
unlock_time = time.time() + BLOCK_TIME
with open(LOCK_FILE, 'w', encoding='utf-8') as lockout:
lockout.write(str(unlock_time))
print(f'Попыток не осталось! Вы заблокированы на 15 минут.')
else:
print(LINE_WIDTH)
print('ДОБРО ПОЖАЛОВАТЬ!')
print(LINE_WIDTH)
print('Это ваш первый запуск.')
print('Необходимо зарегистрироваться.')
print()
with open(AUTH_FILE, 'w', encoding='utf-8') as auth:
while True:
login = input('Придумайте логин: ')
password = input('Придумайте пароль: ')
if not login or not password:
print('Логин и пароль не могут быть пустыми!')
elif login != login.strip() or password != password.strip():
print('В конце и начале пароля и логина не должно быть пробелов!')
elif len(login) > 50 or len(password) > 50:
print('Логин и пароль могут содержать не более 50 символов!')
else:
auth.write(login + '\n')
auth.write(password)
break