18.04
This commit is contained in:
parent
9273fd7e9a
commit
4d44da4ecf
Binary file not shown.
Binary file not shown.
11
API/rok.py
11
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()
|
||||
|
|
|
|||
72
API/rokky.py
72
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")
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -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/<filename>")
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
@ -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
|
||||
)
|
||||
""")
|
||||
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -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()
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -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())
|
||||
|
||||
|
||||
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)
|
||||
|
||||
|
|
@ -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()
|
||||
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()
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue