This commit is contained in:
root 2026-04-18 14:21:12 +02:00
parent 9273fd7e9a
commit 4d44da4ecf
15 changed files with 175 additions and 65 deletions

Binary file not shown.

View File

@ -4,6 +4,7 @@ load_dotenv()
import sqlite3 import sqlite3
import requests import requests
conn = sqlite3.connect("./files/rokky.db") conn = sqlite3.connect("./files/rokky.db")
partner = os.getenv('partner') partner = os.getenv('partner')
user_name = os.getenv('userName') user_name = os.getenv('userName')
@ -25,14 +26,15 @@ json_data = {
def tokens(): def tokens():
response = requests.post('https://partner.rokky.com/api/v1/tokens', headers=headers, json=json_data) response = requests.post('https://partner.rokky.com/api/v1/tokens', headers=headers, json=json_data)
# print(response.json()) print(response.json())
data = response.json() data = response.json()
access_token = data["accessToken"] access_token = data["accessToken"]
return access_token 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" url = f"{BASE_URL}/orders"
headers = { headers = {
@ -82,6 +84,7 @@ def download_prices():
def create_order(sku, unit_price, partner_order_id): def create_order(sku, unit_price, partner_order_id):
# try: # try:
access_token = tokens()
conn = sqlite3.connect("./files/rokky.db") conn = sqlite3.connect("./files/rokky.db")
cursor = conn.cursor() cursor = conn.cursor()
url = f"{BASE_URL}/orders" url = f"{BASE_URL}/orders"
@ -142,6 +145,7 @@ def create_order(sku, unit_price, partner_order_id):
# return response.json() # return response.json()
def get_orders(page=1, page_size=25): def get_orders(page=1, page_size=25):
access_token = tokens()
url = f"{BASE_URL}/orders" url = f"{BASE_URL}/orders"
headers = { headers = {
@ -161,6 +165,7 @@ def get_orders(page=1, page_size=25):
def get_order_content(order_id): def get_order_content(order_id):
access_token = tokens()
conn = sqlite3.connect("./files/rokky.db") conn = sqlite3.connect("./files/rokky.db")
cursor = conn.cursor() cursor = conn.cursor()

View File

@ -16,6 +16,42 @@ password = os.getenv('password')
conn = sqlite3.connect("./files/rokky.db") 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): def decrypt_file(input_file, output_file, password):
with open(input_file, "rb") as f: with open(input_file, "rb") as f:
encrypted = f.read() encrypted = f.read()
@ -62,6 +98,8 @@ def decrypt_and_unpack(name):
# decrypt_file( # decrypt_file(
# "./files/prices.json.gz.enc", # "./files/prices.json.gz.enc",
# "./files/prices.json.gz", # "./files/prices.json.gz",
@ -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("prices")
# decrypt_and_unpack("products") # decrypt_and_unpack("products")

View File

@ -4,11 +4,12 @@ import os
import sqlite3 import sqlite3
import json import json
# from services.rokky import ones # 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 API.TG import send_telegram
from services.orders import get_sku from services.orders import get_sku
from services.gg import get_product, create_messagea from services.gg import get_product, create_messagea
from services.send_mai import send_html_flow from services.send_mai import send_html_flow
# from services.orders_rokky import rok_orders
import logging import logging
@ -21,7 +22,9 @@ IMAGE_FOLDER = os.path.join(BASE_DIR, 'images')
@main.route("/") @main.route("/")
def index(): def index():
return "Hello wstkeys!!123!" print(get_orders())
return "Hello wstkeys! Hello1"
@main.route("/images/<filename>") @main.route("/images/<filename>")
def get_image(filename): def get_image(filename):
@ -98,7 +101,7 @@ def new_order():
send_telegram(order_id) send_telegram(order_id)
logging.warn(f"newOrder: {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) send_html_flow(order_id)
@ -134,7 +137,7 @@ def sku():
def product_update(): def product_update():
# получаем параметры # получаем параметры
sku = request.args.get("rokky") sku = request.args.get("rokky")
ggsale = request.args.get("ggsale") ggsale = request.args.get("ggsel")
if not sku or not ggsale: if not sku or not ggsale:
return jsonify({"error": "Missing parameters"}), 400 return jsonify({"error": "Missing parameters"}), 400

9
models/del_s.py Normal file
View File

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

View File

@ -4,23 +4,22 @@ conn = sqlite3.connect("./files/rokky.db")
cursor = conn.cursor() cursor = conn.cursor()
cursor.execute(""" cursor.execute("""
CREATE TABLE IF NOT EXISTS products ( CREATE TABLE IF NOT EXISTS orders (
id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER PRIMARY KEY AUTOINCREMENT,
sku INTEGER UNIQUE, id_i INTEGER UNIQUE,
product_type TEXT, id_d INTEGER,
product_id INTEGER, name_p TEXT,
name TEXT, im TEXT,
developer TEXT, email TEXT,
publisher TEXT, chat_id TEXT,
cover TEXT, currency TEXT,
release_date TEXT, amount TEXT,
genres TEXT, date TEXT,
price TEXT, sku_rokky TEXT,
price_gg TEXT, price_rokky TEXT,
price_sales TEXT, orders_rokky TEXT,
price_salesgg TEXT, key TEXT,
gg TEXT, content TEXT
insale TEXT
) )
""") """)

58
services/orders_rokky.py Normal file
View File

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

View File

@ -1,12 +1,16 @@
import datetime import datetime
from API.rok import download_products, download_prices from API.rok import download_products, download_prices
from API.rokky import decrypt_and_unpack, add_product, update_prices from API.rokky import decrypt_and_unpack, add_product, update_prices
from services.orders_rokky import rok_orders
def run_task(): def run_task():
print("REDs start download_prices:!", datetime.datetime.now())
download_prices() download_prices()
decrypt_and_unpack("prices") decrypt_and_unpack("prices")
print("START update_prices")
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(): def run_task1():
@ -15,3 +19,19 @@ def run_task1():
add_product() add_product()
print("REDs download__product:", datetime.datetime.now()) print("REDs download__product:", datetime.datetime.now())
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)

View File

@ -1,14 +1,24 @@
from apscheduler.schedulers.background import BackgroundScheduler 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(): def start_scheduler():
scheduler = BackgroundScheduler() scheduler = BackgroundScheduler()
# каждые 10 секунд scheduler.add_job(run_task2, 'interval', minutes=1, next_run_time=datetime.datetime.now())
scheduler.add_job(run_task, 'interval', minutes=10) scheduler.add_job(run_task, 'interval', minutes=5)
# Раз в сутки (24 часа) scheduler.add_job(run_task1, 'interval', days=1)
scheduler.add_job(run_task, 'interval', days=1) # scheduler.add_job(
# run_task3,
# 'interval',
# minutes=2,
# next_run_time=datetime.datetime.now() # 🔥 сразу запуск
# )
scheduler.start() scheduler.start()