Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -15,6 +15,9 @@ from io import BytesIO
|
|
| 15 |
|
| 16 |
import uuid
|
| 17 |
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
|
| 20 |
|
|
@@ -950,10 +953,13 @@ def send_message():
|
|
| 950 |
message_text = data.get('message', '').strip()
|
| 951 |
|
| 952 |
if message_text:
|
|
|
|
|
|
|
|
|
|
| 953 |
message = {
|
| 954 |
'id': len(messages) + 1,
|
| 955 |
'user_id': user_id,
|
| 956 |
-
'
|
| 957 |
'timestamp': datetime.now().strftime("%H:%M:%S"),
|
| 958 |
'username': f"User_{user_id}"
|
| 959 |
}
|
|
@@ -968,13 +974,35 @@ def send_message():
|
|
| 968 |
|
| 969 |
@app.route('/get_messages')
|
| 970 |
def get_messages():
|
| 971 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 972 |
|
| 973 |
@app.route('/get_new_messages')
|
| 974 |
def get_new_messages():
|
| 975 |
last_id = request.args.get('last_id', 0, type=int)
|
| 976 |
new_messages = [msg for msg in messages if msg['id'] > last_id]
|
| 977 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 978 |
|
| 979 |
|
| 980 |
|
|
|
|
| 15 |
|
| 16 |
import uuid
|
| 17 |
|
| 18 |
+
from cryptography.fernet import Fernet
|
| 19 |
+
from cryptography.hazmat.primitives import hashes
|
| 20 |
+
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
|
| 21 |
|
| 22 |
|
| 23 |
|
|
|
|
| 953 |
message_text = data.get('message', '').strip()
|
| 954 |
|
| 955 |
if message_text:
|
| 956 |
+
# Шифруем сообщение перед сохранением
|
| 957 |
+
encrypted_text = encrypt_message(message_text)
|
| 958 |
+
|
| 959 |
message = {
|
| 960 |
'id': len(messages) + 1,
|
| 961 |
'user_id': user_id,
|
| 962 |
+
'encrypted_text': encrypted_text, # Сохраняем зашифрованный текст
|
| 963 |
'timestamp': datetime.now().strftime("%H:%M:%S"),
|
| 964 |
'username': f"User_{user_id}"
|
| 965 |
}
|
|
|
|
| 974 |
|
| 975 |
@app.route('/get_messages')
|
| 976 |
def get_messages():
|
| 977 |
+
# Расшифровываем сообщения перед отправкой клиенту
|
| 978 |
+
decrypted_messages = []
|
| 979 |
+
for msg in messages:
|
| 980 |
+
decrypted_msg = msg.copy()
|
| 981 |
+
decrypted_msg['text'] = decrypt_message(msg['encrypted_text'])
|
| 982 |
+
decrypted_messages.append(decrypted_msg)
|
| 983 |
+
|
| 984 |
+
return jsonify({'messages': decrypted_messages})
|
| 985 |
|
| 986 |
@app.route('/get_new_messages')
|
| 987 |
def get_new_messages():
|
| 988 |
last_id = request.args.get('last_id', 0, type=int)
|
| 989 |
new_messages = [msg for msg in messages if msg['id'] > last_id]
|
| 990 |
+
|
| 991 |
+
# Расшифровываем новые сообщения
|
| 992 |
+
decrypted_messages = []
|
| 993 |
+
for msg in new_messages:
|
| 994 |
+
decrypted_msg = msg.copy()
|
| 995 |
+
decrypted_msg['text'] = decrypt_message(msg['encrypted_text'])
|
| 996 |
+
decrypted_messages.append(decrypted_msg)
|
| 997 |
+
|
| 998 |
+
return jsonify({'messages': decrypted_messages})
|
| 999 |
+
|
| 1000 |
+
@app.route('/clear_chat', methods=['POST'])
|
| 1001 |
+
def clear_chat():
|
| 1002 |
+
"""Очистка всех сообщений"""
|
| 1003 |
+
global messages
|
| 1004 |
+
messages.clear()
|
| 1005 |
+
return jsonify({'status': 'success', 'message': 'Чат очищен'})
|
| 1006 |
|
| 1007 |
|
| 1008 |
|