diff --git a/API/TG.py b/API/TG.py index 36422a9..47fb1eb 100644 --- a/API/TG.py +++ b/API/TG.py @@ -15,4 +15,4 @@ def send_telegram(text): -send_telegram("TEST") \ No newline at end of file +# send_telegram("TEST") \ No newline at end of file diff --git a/API/__init__.py b/API/__init__.py index e69de29..26e1cec 100644 --- a/API/__init__.py +++ b/API/__init__.py @@ -0,0 +1,6 @@ +import sys +import os + +# Добавляем папку 'games' (родительскую для API) в пути поиска +project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) +sys.path.insert(0, project_root) diff --git a/API/__pycache__/rok.cpython-313.pyc b/API/__pycache__/rok.cpython-313.pyc index 7137437..e4d55f8 100644 Binary files a/API/__pycache__/rok.cpython-313.pyc and b/API/__pycache__/rok.cpython-313.pyc differ diff --git a/API/__pycache__/rokky.cpython-313.pyc b/API/__pycache__/rokky.cpython-313.pyc index fcec8c2..aae78ff 100644 Binary files a/API/__pycache__/rokky.cpython-313.pyc and b/API/__pycache__/rokky.cpython-313.pyc differ diff --git a/API/df.py b/API/df.py index cdde929..1bd7282 100644 --- a/API/df.py +++ b/API/df.py @@ -1,5 +1,17 @@ from rok import download_products, download_prices from rokky import decrypt_and_unpack, add_product, update_prices +import sys +import os + +# Добавляем папку 'games' (родительскую для API) в пути поиска +project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) +sys.path.insert(0, project_root) + +# from services.orders import get_sku + +# db_sku, db_price = get_sku(102180432) + +# print(db_price) download_products() download_prices() diff --git a/API/rok.py b/API/rok.py index cbc3d0d..45049a4 100644 --- a/API/rok.py +++ b/API/rok.py @@ -29,7 +29,7 @@ def tokens(): return access_token access_token = tokens() -print(partner) + def get_orders(access_token, page=1, page_size=25): url = f"{BASE_URL}/orders" @@ -78,7 +78,8 @@ def download_prices(): print("Каталог цен скачан.") -def create_order(access_token, sku, quantity, unit_price, partner_order_id): +def create_order(sku, quantity, unit_price, partner_order_id): + # try: url = f"{BASE_URL}/orders" headers = { @@ -89,20 +90,43 @@ def create_order(access_token, sku, quantity, unit_price, partner_order_id): payload = { "items": [ { - "sku": sku, - "quantity": quantity, - "unitPrice": unit_price + "sku": int(sku), + "quantity": int(quantity), + "unitPrice": float(unit_price) } ], "partnerOrderId": partner_order_id } - response = requests.post(url, headers=headers, json=payload) - response.raise_for_status() + try: + response = requests.post(url, json=payload, headers=headers, timeout=30) + + # 🔥 Самое важное: если статус не 2xx — печатаем детали ошибки + if response.status_code >= 400: + print(f"\n❌ Ошибка {response.status_code}") + print(f"🔍 URL: {response.url}") + print(f"📦 Тело запроса: {payload}") + print(f"📄 Ответ сервера (raw): {response.text}") + + # Пробуем распарсить как JSON, если сервер возвращает структурированную ошибку + try: + error_data = response.json() + print(f"🧩 Ответ сервера (json): {error_data}") + except ValueError: + pass # Ответ не JSON, уже напечатали raw выше + + response.raise_for_status() # Всё равно выбрасываем исключение + + return response.json() + + except requests.exceptions.RequestException as e: + print(f"🌐 Сетевая ошибка: {e}") + raise + # print(response.json()) - return response.json() + # return response.json() -def get_orders(access_token, page=1, page_size=25): +def get_orders(page=1, page_size=25): url = f"{BASE_URL}/orders" headers = { @@ -138,14 +162,14 @@ def get_order_content(order_id): return content -# content = get_order_content(5379484) +# content = get_order_content(5379499) # print(content) -# orders = get_orders(access_token) +# orders = get_orders() # print(orders) -# order = create_order(access_token, 22774, 1, 21.17, "my-test-order-123") +# order = create_order(22774, 1, 21.3, "my-test-order-12w3") # print(order) diff --git a/API/ww b/API/ww new file mode 100644 index 0000000..e69de29 diff --git a/app/__pycache__/routes.cpython-313.pyc b/app/__pycache__/routes.cpython-313.pyc index 37a1e5d..b807e07 100644 Binary files a/app/__pycache__/routes.cpython-313.pyc and b/app/__pycache__/routes.cpython-313.pyc differ diff --git a/app/routes.py b/app/routes.py index 72ce3d0..828bfa2 100644 --- a/app/routes.py +++ b/app/routes.py @@ -2,8 +2,9 @@ from flask import Blueprint, request, jsonify import sqlite3 import json # from services.rokky import ones -# from API.rok import get_order_content +from API.rok import create_order from API.TG import send_telegram +from services.orders import get_sku import logging @@ -30,9 +31,13 @@ def index1(): # всё остальное сохраняем как JSON content = json.dumps(params, ensure_ascii=False) - send_telegram(content) + db_sku, db_price = get_sku(sku) + create_order(db_sku, price, db_price, f"my-test-order-{product_id}") + # send_telegram(content) conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() + + try: cursor.execute(""" diff --git a/services/__pycache__/red.cpython-313.pyc b/services/__pycache__/red.cpython-313.pyc index b0d5d26..44c142a 100644 Binary files a/services/__pycache__/red.cpython-313.pyc and b/services/__pycache__/red.cpython-313.pyc differ diff --git a/services/__pycache__/rokky.cpython-313.pyc b/services/__pycache__/rokky.cpython-313.pyc deleted file mode 100644 index a6b467f..0000000 Binary files a/services/__pycache__/rokky.cpython-313.pyc and /dev/null differ diff --git a/services/__pycache__/tim.cpython-313.pyc b/services/__pycache__/tim.cpython-313.pyc index 63b4df8..77c4830 100644 Binary files a/services/__pycache__/tim.cpython-313.pyc and b/services/__pycache__/tim.cpython-313.pyc differ diff --git a/services/orders.py b/services/orders.py new file mode 100644 index 0000000..aa22bc5 --- /dev/null +++ b/services/orders.py @@ -0,0 +1,40 @@ +import sqlite3 + +# Получаем sku из параметров +def get_sku(sku): + if sku: + # Подключаемся к БД + conn = sqlite3.connect("./files/rokky.db") + cursor = conn.cursor() + + try: + # Выполняем поиск: выбираем sku и gg, где sku совпадает с искомым + # Используем (sku,) как кортеж для передачи параметра + cursor.execute("SELECT sku, gg, price FROM products WHERE gg = ?", (sku,)) + + # Получаем одну запись + result = cursor.fetchone() + + if result: + db_sku, db_gg, db_price = result + # Выводим sku из таблицы + print(f"Найденный SKU: {db_sku}") + + # # Если нужно также вывести значение из колонки gg: + # print(f"Значение gg: {db_gg}") + print(f"Значение price: {db_price}") + return db_sku, db_price + else: + print(f"Товар с SKU {sku} не найден") + + except sqlite3.Error as e: + print(f"Ошибка базы данных: {e}") + + finally: + # Обязательно закрываем соединение + conn.close() + + + + +# get_sku(102180432) \ No newline at end of file diff --git a/services/red.py b/services/red.py index 0144490..d18f8dd 100644 --- a/services/red.py +++ b/services/red.py @@ -1,4 +1,17 @@ import datetime +from API.rok import download_products, download_prices +from API.rokky import decrypt_and_unpack, add_product, update_prices def run_task(): - print("REDs service работает:", datetime.datetime.now()) \ No newline at end of file + download_prices() + decrypt_and_unpack("prices") + update_prices() + print("REDs download_prices:", datetime.datetime.now()) + + +def run_task1(): + download_products() + decrypt_and_unpack("products") + add_product() + print("REDs download__product:", datetime.datetime.now()) + \ No newline at end of file diff --git a/services/tim.py b/services/tim.py index e3bf6b4..17afbc0 100644 --- a/services/tim.py +++ b/services/tim.py @@ -7,6 +7,6 @@ def start_scheduler(): scheduler = BackgroundScheduler() # каждые 10 секунд - scheduler.add_job(run_task, 'interval', seconds=10) + scheduler.add_job(run_task, 'interval', minutes=10) scheduler.start() \ No newline at end of file