Update app.py
Browse files
app.py
CHANGED
@@ -19,8 +19,7 @@ from unidecode import unidecode
|
|
19 |
import uuid
|
20 |
import shutil
|
21 |
import psutil
|
22 |
-
|
23 |
-
import base64
|
24 |
|
25 |
|
26 |
|
@@ -1004,48 +1003,17 @@ def get_order_monitop():
|
|
1004 |
|
1005 |
|
1006 |
|
1007 |
-
# Функция для
|
1008 |
-
def decrypt(encrypted_data, key):
|
1009 |
-
# Добавляем заполнение до длины, кратной 16
|
1010 |
-
def pad(s):
|
1011 |
-
return s + (AES.block_size - len(s) % AES.block_size) * chr(AES.block_size - len(s) % AES.block_size)
|
1012 |
-
|
1013 |
-
# Удаляем заполнение
|
1014 |
-
def unpad(s):
|
1015 |
-
return s[:-ord(s[len(s)-1:])]
|
1016 |
-
|
1017 |
-
# Декодируем зашифрованные данные из base64
|
1018 |
-
encrypted_data = base64.b64decode(encrypted_data)
|
1019 |
-
|
1020 |
-
# Создаем объект AES для расшифровки
|
1021 |
-
cipher = AES.new(key.encode('utf-8'), AES.MODE_ECB)
|
1022 |
-
|
1023 |
-
# Расшифровываем данные
|
1024 |
-
decrypted_data = unpad(cipher.decrypt(encrypted_data).decode('utf-8'))
|
1025 |
-
|
1026 |
-
return decrypted_data
|
1027 |
-
|
1028 |
-
# Чтение ордера по ключу и ВК ИД для приложения
|
1029 |
@app.route('/get_order', methods=['POST'])
|
1030 |
def get_order():
|
1031 |
try:
|
1032 |
-
logging.debug("Starting
|
1033 |
|
1034 |
# Читаем параметры из POST-запроса
|
1035 |
data = request.json
|
1036 |
-
encrypted_key_admin = data.get('api_key_auth', '')
|
1037 |
vkid = data.get('vk_id', '')
|
1038 |
order = data.get('order', '')
|
1039 |
|
1040 |
-
# Расшифровываем ключ администратора
|
1041 |
-
key_admin = decrypt(encrypted_key_admin, crypto_key_auth)
|
1042 |
-
|
1043 |
-
# Проверка что key_admin совпадает с api_key_admin. Если совпадает продолжаем, если нет возвращаем "not"
|
1044 |
-
if key_admin != api_key_auth:
|
1045 |
-
logging.error("Invalid admin key")
|
1046 |
-
response = {order: 'not', 'online_date': '', 'crypto': ''}
|
1047 |
-
return jsonify(response), 200
|
1048 |
-
|
1049 |
if not vkid or not order:
|
1050 |
logging.error("VK ID and order are required")
|
1051 |
return json.dumps({"error": "VK ID and order are required"}), 400
|
@@ -1057,16 +1025,10 @@ def get_order():
|
|
1057 |
cursor.execute("SELECT orders FROM contacts WHERE vk_id = ?", (vkid,))
|
1058 |
result = cursor.fetchone()
|
1059 |
|
1060 |
-
# Получаем текущую дату и время на сервере
|
1061 |
-
utc_now = datetime.utcnow()
|
1062 |
-
msk_tz = pytz.timezone('Europe/Moscow')
|
1063 |
-
msk_now = utc_now.replace(tzinfo=pytz.utc).astimezone(msk_tz)
|
1064 |
-
current_time = msk_now.isoformat(timespec='microseconds')
|
1065 |
-
|
1066 |
# Если запись по vk_id не найдена, возвращаем значение "not" для ордера
|
1067 |
if not result:
|
1068 |
logging.error(f"VK ID {vkid} not found")
|
1069 |
-
response = {order: 'not'
|
1070 |
return jsonify(response), 200
|
1071 |
|
1072 |
shop_st = result[0] if result[0] else '{}'
|
@@ -1076,11 +1038,8 @@ def get_order():
|
|
1076 |
# Ищем значение по ключу order
|
1077 |
value = shop_st_data.get(order, 'not')
|
1078 |
|
1079 |
-
#
|
1080 |
-
|
1081 |
-
|
1082 |
-
# Возвращаем данные из столбца и текущую дату и время
|
1083 |
-
response = {order: value, 'online_date': current_time, 'crypto': crypto_value}
|
1084 |
return jsonify(response), 200
|
1085 |
|
1086 |
except Exception as e:
|
|
|
19 |
import uuid
|
20 |
import shutil
|
21 |
import psutil
|
22 |
+
|
|
|
23 |
|
24 |
|
25 |
|
|
|
1003 |
|
1004 |
|
1005 |
|
1006 |
+
# Функция для для Чтение ордера для приложения
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1007 |
@app.route('/get_order', methods=['POST'])
|
1008 |
def get_order():
|
1009 |
try:
|
1010 |
+
logging.debug("Starting get_order")
|
1011 |
|
1012 |
# Читаем параметры из POST-запроса
|
1013 |
data = request.json
|
|
|
1014 |
vkid = data.get('vk_id', '')
|
1015 |
order = data.get('order', '')
|
1016 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1017 |
if not vkid or not order:
|
1018 |
logging.error("VK ID and order are required")
|
1019 |
return json.dumps({"error": "VK ID and order are required"}), 400
|
|
|
1025 |
cursor.execute("SELECT orders FROM contacts WHERE vk_id = ?", (vkid,))
|
1026 |
result = cursor.fetchone()
|
1027 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1028 |
# Если запись по vk_id не найдена, возвращаем значение "not" для ордера
|
1029 |
if not result:
|
1030 |
logging.error(f"VK ID {vkid} not found")
|
1031 |
+
response = {order: 'not'}
|
1032 |
return jsonify(response), 200
|
1033 |
|
1034 |
shop_st = result[0] if result[0] else '{}'
|
|
|
1038 |
# Ищем значение по ключу order
|
1039 |
value = shop_st_data.get(order, 'not')
|
1040 |
|
1041 |
+
# Возвращаем данные из столбца
|
1042 |
+
response = {order: value}
|
|
|
|
|
|
|
1043 |
return jsonify(response), 200
|
1044 |
|
1045 |
except Exception as e:
|