diff --git a/API/__pycache__/rok.cpython-313.pyc b/API/__pycache__/rok.cpython-313.pyc index 735ec71..7383ace 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 1b79bee..47039a2 100644 Binary files a/API/__pycache__/rokky.cpython-313.pyc and b/API/__pycache__/rokky.cpython-313.pyc differ diff --git a/API/rok.py b/API/rok.py index d06e945..e5544e3 100644 --- a/API/rok.py +++ b/API/rok.py @@ -4,6 +4,7 @@ load_dotenv() import sqlite3 import requests + conn = sqlite3.connect("./files/rokky.db") partner = os.getenv('partner') user_name = os.getenv('userName') @@ -25,14 +26,15 @@ json_data = { def tokens(): response = requests.post('https://partner.rokky.com/api/v1/tokens', headers=headers, json=json_data) - # print(response.json()) + print(response.json()) data = response.json() access_token = data["accessToken"] return access_token -access_token = tokens() +# access_token = tokens() -def get_orders(access_token, page=1, page_size=25): +def get_orders(page=1, page_size=25): + access_token = tokens() url = f"{BASE_URL}/orders" headers = { @@ -82,6 +84,7 @@ def download_prices(): def create_order(sku, unit_price, partner_order_id): # try: + access_token = tokens() conn = sqlite3.connect("./files/rokky.db") cursor = conn.cursor() url = f"{BASE_URL}/orders" @@ -142,6 +145,7 @@ def create_order(sku, unit_price, partner_order_id): # return response.json() def get_orders(page=1, page_size=25): + access_token = tokens() url = f"{BASE_URL}/orders" headers = { @@ -161,6 +165,7 @@ def get_orders(page=1, page_size=25): def get_order_content(order_id): + access_token = tokens() conn = sqlite3.connect("./files/rokky.db") cursor = conn.cursor() diff --git a/API/rokky.py b/API/rokky.py index 5a5d7c7..f23587f 100644 --- a/API/rokky.py +++ b/API/rokky.py @@ -16,6 +16,42 @@ password = os.getenv('password') conn = sqlite3.connect("./files/rokky.db") + +def update_prices(): + + with open("./files/prices.json", "r") as f: + prices = json.load(f) + conn = sqlite3.connect("./files/rokky.db") + cursor = conn.cursor() + + data = [] + for item in prices: + sku = item["sku"] + price = item.get("price") + price_gg = item.get("baseSuggestedRetailPrice") + price_sales = item.get("discountPercentage") + is_sale = item.get("isSale") + + data.append(( + price, + price_gg, + price_sales, + is_sale, + sku, + )) + + cursor.executemany(""" + UPDATE products + SET + price = ?, + price_gg = ?, + price_sales = ?, + insale = ? + WHERE sku = ? + """, data) + print("Обновил цены") + conn.commit() + def decrypt_file(input_file, output_file, password): with open(input_file, "rb") as f: encrypted = f.read() @@ -56,8 +92,10 @@ def decrypt_and_unpack(name): with gzip.open(gz, "rb") as f_in: with open(json_file, "wb") as f_out: shutil.copyfileobj(f_in, f_out) - + print(f"Готово: {json_file}") + + @@ -164,39 +202,7 @@ def add_product(): -def update_prices(): - with open("./files/prices.json", "r") as f: - prices = json.load(f) - cursor = conn.cursor() - - data = [] - for item in prices: - sku = item["sku"] - price = item.get("price") - price_gg = item.get("baseSuggestedRetailPrice") - price_sales =item.get("discountPercentage") - is_sale = item.get("isSale") - - data.append(( - price, - price_gg, - price_sales, - is_sale, - sku - )) - - cursor.executemany(""" - UPDATE products - SET - price = ?, - price_gg = ?, - price_sales = ?, - insale = ? - WHERE sku = ? - """, data) - - conn.commit() # decrypt_and_unpack("prices") # decrypt_and_unpack("products") diff --git a/app/__pycache__/__init__.cpython-313.pyc b/app/__pycache__/__init__.cpython-313.pyc index 434a7d8..745e933 100644 Binary files a/app/__pycache__/__init__.cpython-313.pyc and b/app/__pycache__/__init__.cpython-313.pyc differ diff --git a/app/__pycache__/routes.cpython-313.pyc b/app/__pycache__/routes.cpython-313.pyc index c0f3714..0215d19 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 904bc78..a10fbcc 100644 --- a/app/routes.py +++ b/app/routes.py @@ -4,11 +4,12 @@ import os import sqlite3 import json # from services.rokky import ones -from API.rok import create_order, get_order_content +from API.rok import create_order, get_order_content, get_orders from API.TG import send_telegram from services.orders import get_sku from services.gg import get_product, create_messagea from services.send_mai import send_html_flow +# from services.orders_rokky import rok_orders import logging @@ -21,7 +22,9 @@ IMAGE_FOLDER = os.path.join(BASE_DIR, 'images') @main.route("/") def index(): - return "Hello wstkeys!!123!" + print(get_orders()) + return "Hello wstkeys! Hello1" + @main.route("/images/") def get_image(filename): @@ -98,7 +101,7 @@ def new_order(): send_telegram(order_id) logging.warn(f"newOrder: {order_id}") - get_order_content(int(order_id)) + # get_order_content(int(order_id)) send_html_flow(order_id) @@ -134,7 +137,7 @@ def sku(): def product_update(): # получаем параметры sku = request.args.get("rokky") - ggsale = request.args.get("ggsale") + ggsale = request.args.get("ggsel") if not sku or not ggsale: return jsonify({"error": "Missing parameters"}), 400 diff --git a/models/del_s.py b/models/del_s.py new file mode 100644 index 0000000..33d2419 --- /dev/null +++ b/models/del_s.py @@ -0,0 +1,9 @@ +import sqlite3 + +conn = sqlite3.connect("./files/rokky.db") +cursor = conn.cursor() + +cursor.execute("DROP TABLE IF EXISTS orders") + +conn.commit() +conn.close() \ No newline at end of file diff --git a/models/orders.py b/models/orders.py index de0e91b..774c877 100644 --- a/models/orders.py +++ b/models/orders.py @@ -4,23 +4,22 @@ conn = sqlite3.connect("./files/rokky.db") cursor = conn.cursor() cursor.execute(""" -CREATE TABLE IF NOT EXISTS products ( +CREATE TABLE IF NOT EXISTS orders ( id INTEGER PRIMARY KEY AUTOINCREMENT, - sku INTEGER UNIQUE, - product_type TEXT, - product_id INTEGER, - name TEXT, - developer TEXT, - publisher TEXT, - cover TEXT, - release_date TEXT, - genres TEXT, - price TEXT, - price_gg TEXT, - price_sales TEXT, - price_salesgg TEXT, - gg TEXT, - insale TEXT + id_i INTEGER UNIQUE, + id_d INTEGER, + name_p TEXT, + im TEXT, + email TEXT, + chat_id TEXT, + currency TEXT, + amount TEXT, + date TEXT, + sku_rokky TEXT, + price_rokky TEXT, + orders_rokky TEXT, + key TEXT, + content TEXT ) """) diff --git a/services/__pycache__/__init__.cpython-313.pyc b/services/__pycache__/__init__.cpython-313.pyc index 463a455..3ecf4c0 100644 Binary files a/services/__pycache__/__init__.cpython-313.pyc and b/services/__pycache__/__init__.cpython-313.pyc differ diff --git a/services/__pycache__/red.cpython-313.pyc b/services/__pycache__/red.cpython-313.pyc index 3b0c3e5..aa6bb55 100644 Binary files a/services/__pycache__/red.cpython-313.pyc and b/services/__pycache__/red.cpython-313.pyc differ diff --git a/services/__pycache__/tim.cpython-313.pyc b/services/__pycache__/tim.cpython-313.pyc index 2e9bae5..9e7ddd7 100644 Binary files a/services/__pycache__/tim.cpython-313.pyc and b/services/__pycache__/tim.cpython-313.pyc differ diff --git a/services/orders_rokky.py b/services/orders_rokky.py new file mode 100644 index 0000000..ae7634b --- /dev/null +++ b/services/orders_rokky.py @@ -0,0 +1,58 @@ +import sqlite3 +from API.rok import get_order_content +import requests +# from send_mai import send_html_flow + + +conn = sqlite3.connect("./files/rokky.db") +cursor = conn.cursor() + + +def rok_orders(): + conn = sqlite3.connect("./files/rokky.db") + cursor = conn.cursor() + + cursor.execute(""" + SELECT * FROM orders + WHERE key IS NULL OR key = '' + """) + + rows = cursor.fetchall() + + for row in rows: + order_id = row[12] # ✅ id (а не 12!) + id_i = row[1] + + print(f"Обработка заказа {order_id}") + try: + # пример: + new_key = get_order_content(int(order_id)) + + cursor.execute(""" + UPDATE orders + SET key = ? + WHERE id = ? + """, (new_key, order_id)) + + url = "https://wstkeys.top/newOrder" + # url = "http://0.0.0.0:5205/newOrder" + + payload = {"orderId": int(order_id), "partnerSchemaId": 209} + + headers = { + "Content-Type": "application/json" + } + + response = requests.post(url, json=payload, headers=headers) + except Exception as a: + print(a) + + print(response.status_code) + print(response.text) + + conn.commit() + conn.close() + + + + \ No newline at end of file diff --git a/services/red.py b/services/red.py index d18f8dd..0a5ae54 100644 --- a/services/red.py +++ b/services/red.py @@ -1,12 +1,16 @@ import datetime from API.rok import download_products, download_prices from API.rokky import decrypt_and_unpack, add_product, update_prices +from services.orders_rokky import rok_orders def run_task(): + print("REDs start download_prices:!", datetime.datetime.now()) download_prices() decrypt_and_unpack("prices") + print("START update_prices") update_prices() - print("REDs download_prices:", datetime.datetime.now()) + print("END update_prices", datetime.datetime.now()) + print("REDs download_prices:!", datetime.datetime.now()) def run_task1(): @@ -14,4 +18,20 @@ def run_task1(): decrypt_and_unpack("products") add_product() print("REDs download__product:", datetime.datetime.now()) - \ No newline at end of file + +def run_task2(): + try: + print("START run_task2") + rok_orders() + print("END run_task2", datetime.datetime.now()) + except Exception as e: + print("ERROR run_task2:", e) + +def run_task3(): + try: + print("START run_task3") + update_prices() + print("END run_task3", datetime.datetime.now()) + except Exception as e: + print("ERROR run_task3:", e) + \ No newline at end of file diff --git a/services/tim.py b/services/tim.py index d767e7c..b65df49 100644 --- a/services/tim.py +++ b/services/tim.py @@ -1,14 +1,24 @@ from apscheduler.schedulers.background import BackgroundScheduler -from services.red import run_task +import datetime +import time + +from services.red import run_task, run_task1, run_task2,run_task3 def start_scheduler(): scheduler = BackgroundScheduler() - - # каждые 10 секунд - scheduler.add_job(run_task, 'interval', minutes=10) - # Раз в сутки (24 часа) - scheduler.add_job(run_task, 'interval', days=1) - scheduler.start() \ No newline at end of file + scheduler.add_job(run_task2, 'interval', minutes=1, next_run_time=datetime.datetime.now()) + scheduler.add_job(run_task, 'interval', minutes=5) + scheduler.add_job(run_task1, 'interval', days=1) + # scheduler.add_job( + # run_task3, + # 'interval', + # minutes=2, + # next_run_time=datetime.datetime.now() # 🔥 сразу запуск + # ) + + scheduler.start() + +