Bot container restart from admin-panel

This commit is contained in:
2025-07-21 17:16:07 +09:00
parent 20f67ed96c
commit 421bebb770
267 changed files with 2307 additions and 300 deletions

View File

@@ -1,37 +1,101 @@
# import requests
# import json
# from dotenv import load_dotenv
# import os
# load_dotenv()
# API_URL='http://106.245.250.243:8000/api/clients'
# API_KEY='g1XqG9lir4RneLuX01VAob+F0MpVCZTpG2is8UBWLZ0='
# def fetch_clients(api_url, api_key):
# """
# Подключаемся к API с использованием заданного X-API-Key
# """
# headers = {
# "X-API-Key": api_key
# }
# try:
# response = requests.get(api_url, headers=headers)
# response.raise_for_status()
# return response.json()
# except requests.exceptions.RequestException as e:
# print(f"Ошибка при запросе к API: {e}")
# return None
# if __name__ == '__main__':
# api_endpoint = f"{os.getenv('API_URL')}"
# api_key = os.getenv("API_KEY")
# print(api_endpoint, api_key)
# if not api_endpoint or not api_key:
# print("Необходимо задать API_URL и API_KEY в .env файле.")
# exit(1)
# clients = fetch_clients(api_endpoint, api_key)
# if clients is not None:
# print(json.dumps(clients, indent=4, ensure_ascii=False))
# else:
# print("Не удалось получить данные с API.")
import requests
import json
from dotenv import load_dotenv
import os
from dotenv import load_dotenv
load_dotenv('.env')
load_dotenv()
def fetch_clients(api_url, api_key):
"""
Подключаемся к API с использованием заданного X-API-Key
"""
headers = {
"X-API-Key": api_key
}
try:
response = requests.get(api_url, headers=headers)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"Ошибка при запросе к API: {e}")
return None
class ApiClient:
def __init__(self, base_url=None, api_key=None):
self.base_url = base_url or os.getenv('API_URL', 'http://106.245.250.243:8000/api')
self.api_key = api_key or os.getenv('API_KEY')
if not self.api_key:
raise ValueError("API_KEY не задан ни в .env, ни через параметры конструктора")
self.headers = {
"X-API-Key": self.api_key
}
def fetch_clients(self):
"""Получение списка клиентов"""
try:
url = f"{self.base_url}/clients"
response = requests.get(url, headers=self.headers)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"Ошибка при получении клиентов: {e}")
return None
def fetch_invoices(self, filters=None):
"""Получение списка счетов с возможными фильтрами"""
try:
url = f"{self.base_url}/invoices"
response = requests.get(url, headers=self.headers, params=filters)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"Ошибка при получении счетов: {e}")
return None
if __name__ == '__main__':
api_endpoint = os.getenv("API_URL")
api_key = os.getenv("API_KEY")
print(api_endpoint, api_key)
if not api_endpoint or not api_key:
print("Необходимо задать API_URL и API_KEY в .env файле.")
exit(1)
clients = fetch_clients(api_endpoint, api_key)
if clients is not None:
client = ApiClient()
print("=== Клиенты ===")
clients = client.fetch_clients()
if clients:
print(json.dumps(clients, indent=4, ensure_ascii=False))
else:
print("Не удалось получить данные с API.")
print("Не удалось получить клиентов")
print("\n=== Счета ===")
filters = {
"page": 1,
# "created_at[after]": "2024-12-01T00:00:00",
# "created_at[before]": "2025-01-01T00:00:00"
}
invoices = client.fetch_invoices(filters)
if invoices:
print(json.dumps(invoices, indent=4, ensure_ascii=False))
else:
print("Не удалось получить счета")