This commit is contained in:
Alex55 2026-03-20 14:36:25 +02:00
parent 233cd7d2bb
commit ad066a84d9
15 changed files with 117 additions and 17 deletions

View File

@ -15,4 +15,4 @@ def send_telegram(text):
send_telegram("TEST") # send_telegram("TEST")

View File

@ -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)

Binary file not shown.

View File

@ -1,5 +1,17 @@
from rok import download_products, download_prices from rok import download_products, download_prices
from rokky import decrypt_and_unpack, add_product, update_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_products()
download_prices() download_prices()

View File

@ -29,7 +29,7 @@ def tokens():
return access_token return access_token
access_token = tokens() access_token = tokens()
print(partner)
def get_orders(access_token, page=1, page_size=25): def get_orders(access_token, page=1, page_size=25):
url = f"{BASE_URL}/orders" url = f"{BASE_URL}/orders"
@ -78,7 +78,8 @@ def download_prices():
print("Каталог цен скачан.") 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" url = f"{BASE_URL}/orders"
headers = { headers = {
@ -89,20 +90,43 @@ def create_order(access_token, sku, quantity, unit_price, partner_order_id):
payload = { payload = {
"items": [ "items": [
{ {
"sku": sku, "sku": int(sku),
"quantity": quantity, "quantity": int(quantity),
"unitPrice": unit_price "unitPrice": float(unit_price)
} }
], ],
"partnerOrderId": partner_order_id "partnerOrderId": partner_order_id
} }
response = requests.post(url, headers=headers, json=payload) try:
response.raise_for_status() response = requests.post(url, json=payload, headers=headers, timeout=30)
return response.json() # 🔥 Самое важное: если статус не 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}")
def get_orders(access_token, page=1, page_size=25): # Пробуем распарсить как 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()
def get_orders(page=1, page_size=25):
url = f"{BASE_URL}/orders" url = f"{BASE_URL}/orders"
headers = { headers = {
@ -138,14 +162,14 @@ def get_order_content(order_id):
return content return content
# content = get_order_content(5379484) # content = get_order_content(5379499)
# print(content) # print(content)
# orders = get_orders(access_token) # orders = get_orders()
# print(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) # print(order)

0
API/ww Normal file
View File

View File

@ -2,8 +2,9 @@ from flask import Blueprint, request, jsonify
import sqlite3 import sqlite3
import json import json
# from services.rokky import ones # 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 API.TG import send_telegram
from services.orders import get_sku
import logging import logging
@ -30,10 +31,14 @@ def index1():
# всё остальное сохраняем как JSON # всё остальное сохраняем как JSON
content = json.dumps(params, ensure_ascii=False) 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) conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor() cursor = conn.cursor()
try: try:
cursor.execute(""" cursor.execute("""
INSERT INTO orders (sku, product_id, email, price, content) INSERT INTO orders (sku, product_id, email, price, content)

40
services/orders.py Normal file
View File

@ -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)

View File

@ -1,4 +1,17 @@
import datetime import datetime
from API.rok import download_products, download_prices
from API.rokky import decrypt_and_unpack, add_product, update_prices
def run_task(): def run_task():
print("REDs service работает:", datetime.datetime.now()) 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())

View File

@ -7,6 +7,6 @@ def start_scheduler():
scheduler = BackgroundScheduler() scheduler = BackgroundScheduler()
# каждые 10 секунд # каждые 10 секунд
scheduler.add_job(run_task, 'interval', seconds=10) scheduler.add_job(run_task, 'interval', minutes=10)
scheduler.start() scheduler.start()