123
This commit is contained in:
parent
839bc69202
commit
9ce07a09bd
Binary file not shown.
|
|
@ -0,0 +1,16 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name dest2.com www.dest2.com;
|
||||||
|
|
||||||
|
location /.well-known/acme-challenge/ {
|
||||||
|
root /var/www/certbot;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://flask:5205;
|
||||||
|
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,258 @@
|
||||||
|
import requests
|
||||||
|
import time
|
||||||
|
import json
|
||||||
|
import hashlib
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
import os
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
TOKEN = os.getenv('GGTOKEN')
|
||||||
|
SELLER_ID = os.getenv('SELLER_ID')
|
||||||
|
API_KEY = os.getenv('GGTOKEN')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TOKEN_FILE = "./files/ggsel_token.json"
|
||||||
|
|
||||||
|
|
||||||
|
def save_token(token):
|
||||||
|
with open(TOKEN_FILE, "w") as f:
|
||||||
|
json.dump({"token": token}, f)
|
||||||
|
|
||||||
|
|
||||||
|
def load_token():
|
||||||
|
if not os.path.exists(TOKEN_FILE):
|
||||||
|
return None
|
||||||
|
|
||||||
|
with open(TOKEN_FILE) as f:
|
||||||
|
try:
|
||||||
|
data = json.load(f)
|
||||||
|
return data.get("token")
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def safe_json(response):
|
||||||
|
if not response.text:
|
||||||
|
raise Exception("Empty response from API")
|
||||||
|
|
||||||
|
try:
|
||||||
|
return response.json()
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
print("Invalid JSON response:")
|
||||||
|
print(response.text)
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
def get_token():
|
||||||
|
timestamp = str(int(time.time()))
|
||||||
|
sign_string = API_KEY + timestamp
|
||||||
|
sign = hashlib.sha256(sign_string.encode()).hexdigest()
|
||||||
|
|
||||||
|
url = "https://seller.ggsel.com/api_sellers/api/apilogin"
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
"seller_id": SELLER_ID,
|
||||||
|
"timestamp": timestamp,
|
||||||
|
"sign": sign
|
||||||
|
}
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"Accept": "application/json"
|
||||||
|
}
|
||||||
|
|
||||||
|
response = requests.post(url, json=payload, headers=headers)
|
||||||
|
|
||||||
|
print(response.status_code)
|
||||||
|
res = response.json()
|
||||||
|
token = res['token']
|
||||||
|
|
||||||
|
save_token(token)
|
||||||
|
print(token)
|
||||||
|
return token
|
||||||
|
|
||||||
|
|
||||||
|
def balans():
|
||||||
|
token = load_token()
|
||||||
|
|
||||||
|
if not token:
|
||||||
|
token = get_token()
|
||||||
|
|
||||||
|
url = "https://seller.ggsel.com/api_sellers/api/sellers/account/balance/info"
|
||||||
|
|
||||||
|
headers = {"Accept": "application/json"}
|
||||||
|
params = {"token": token}
|
||||||
|
|
||||||
|
r = requests.get(url, params=params, headers=headers)
|
||||||
|
print(r.status_code)
|
||||||
|
|
||||||
|
# если токен умер
|
||||||
|
if r.status_code in (401, 403):
|
||||||
|
token = get_token()
|
||||||
|
params["token"] = token
|
||||||
|
r = requests.get(url, params=params, headers=headers)
|
||||||
|
|
||||||
|
return r.json()
|
||||||
|
|
||||||
|
def last_sales(top=10, group=False):
|
||||||
|
token = load_token()
|
||||||
|
|
||||||
|
if not token:
|
||||||
|
token = get_token()
|
||||||
|
|
||||||
|
url = "https://seller.ggsel.com/api_sellers/api/seller-last-sales"
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Accept": "application/json",
|
||||||
|
"locale": "ru"
|
||||||
|
}
|
||||||
|
|
||||||
|
params = {
|
||||||
|
"token": token,
|
||||||
|
"seller_id": SELLER_ID,
|
||||||
|
"top": top,
|
||||||
|
"group": str(group).lower()
|
||||||
|
}
|
||||||
|
|
||||||
|
r = requests.get(url, params=params, headers=headers)
|
||||||
|
print(r.status_code)
|
||||||
|
|
||||||
|
# если токен умер
|
||||||
|
if r.status_code in (401, 403):
|
||||||
|
token = get_token()
|
||||||
|
params["token"] = token
|
||||||
|
r = requests.get(url, params=params, headers=headers)
|
||||||
|
|
||||||
|
return r.json()
|
||||||
|
|
||||||
|
|
||||||
|
# print(last_sales())
|
||||||
|
|
||||||
|
def get_messages(id_i, id_from=None, id_to=None, newer=None, count=50):
|
||||||
|
token = load_token()
|
||||||
|
|
||||||
|
if not token:
|
||||||
|
token = get_token()
|
||||||
|
|
||||||
|
url = "https://seller.ggsel.com/api_sellers/api/debates/v2"
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Accept": "application/json"
|
||||||
|
}
|
||||||
|
|
||||||
|
params = {
|
||||||
|
"token": token,
|
||||||
|
"id_i": id_i,
|
||||||
|
"count": min(count, 100)
|
||||||
|
}
|
||||||
|
|
||||||
|
if id_from:
|
||||||
|
params["id_from"] = id_from
|
||||||
|
|
||||||
|
if id_to:
|
||||||
|
params["id_to"] = id_to
|
||||||
|
|
||||||
|
if newer:
|
||||||
|
params["newer"] = newer
|
||||||
|
|
||||||
|
r = requests.get(url, params=params, headers=headers)
|
||||||
|
print(r.status_code)
|
||||||
|
|
||||||
|
# если токен умер
|
||||||
|
if r.status_code in (401, 403):
|
||||||
|
token = get_token()
|
||||||
|
params["token"] = token
|
||||||
|
r = requests.get(url, params=params, headers=headers)
|
||||||
|
|
||||||
|
return r.json()
|
||||||
|
|
||||||
|
|
||||||
|
# пример
|
||||||
|
print(get_messages(id_i=18840912))
|
||||||
|
|
||||||
|
|
||||||
|
def get_chats(page=1, pagesize=20, filter_new=None, email=None, id_ds=None):
|
||||||
|
token = load_token()
|
||||||
|
|
||||||
|
if not token:
|
||||||
|
token = get_token()
|
||||||
|
|
||||||
|
url = "https://seller.ggsel.com/api_sellers/api/debates/v2/chats"
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Accept": "application/json"
|
||||||
|
}
|
||||||
|
|
||||||
|
params = {
|
||||||
|
"token": token,
|
||||||
|
"page": page,
|
||||||
|
"pagesize": pagesize
|
||||||
|
}
|
||||||
|
|
||||||
|
if filter_new is not None:
|
||||||
|
params["filter_new"] = filter_new
|
||||||
|
|
||||||
|
if email:
|
||||||
|
params["email"] = email
|
||||||
|
|
||||||
|
if id_ds:
|
||||||
|
params["id_ds"] = id_ds
|
||||||
|
|
||||||
|
r = requests.get(url, params=params, headers=headers)
|
||||||
|
print(r.status_code)
|
||||||
|
|
||||||
|
# если токен умер
|
||||||
|
if r.status_code in (401, 403):
|
||||||
|
token = get_token()
|
||||||
|
params["token"] = token
|
||||||
|
r = requests.get(url, params=params, headers=headers)
|
||||||
|
|
||||||
|
return r.json()
|
||||||
|
|
||||||
|
|
||||||
|
# пример
|
||||||
|
# print(get_chats())
|
||||||
|
# def tokens():
|
||||||
|
|
||||||
|
# timestamp = str(int(time.time()))
|
||||||
|
# sign_string = API_KEY + timestamp
|
||||||
|
# sign = hashlib.sha256(sign_string.encode()).hexdigest()
|
||||||
|
|
||||||
|
# url = "https://seller.ggsel.com/api_sellers/api/apilogin"
|
||||||
|
|
||||||
|
# payload = {
|
||||||
|
# "seller_id": SELLER_ID,
|
||||||
|
# "timestamp": timestamp,
|
||||||
|
# "sign": sign
|
||||||
|
# }
|
||||||
|
|
||||||
|
# headers = {
|
||||||
|
# "Content-Type": "application/json",
|
||||||
|
# "Accept": "application/json"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# response = requests.post(url, json=payload, headers=headers)
|
||||||
|
|
||||||
|
# print(response.status_code)
|
||||||
|
# res = response.json()
|
||||||
|
# token = res['token']
|
||||||
|
# return token
|
||||||
|
|
||||||
|
|
||||||
|
# def balans():
|
||||||
|
# url = "https://seller.ggsel.com/api_sellers/api/sellers/account/balance/info"
|
||||||
|
|
||||||
|
# params = {
|
||||||
|
# "token": tokens()
|
||||||
|
# }
|
||||||
|
|
||||||
|
# headers = {
|
||||||
|
# "Accept": "application/json"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# response = requests.get(url, params=params, headers=headers)
|
||||||
|
|
||||||
|
# print(response.status_code)
|
||||||
|
# print(response.json())
|
||||||
Loading…
Reference in New Issue