DmitrMakeev
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -8,7 +8,7 @@ import re
|
|
8 |
import json
|
9 |
import base64
|
10 |
import asyncio
|
11 |
-
import
|
12 |
from unidecode import unidecode
|
13 |
|
14 |
api_key_sys = os.getenv('api_key_sys')
|
@@ -108,62 +108,69 @@ for db in DATABASES:
|
|
108 |
|
109 |
|
110 |
|
111 |
-
|
112 |
-
|
113 |
code_executed = False
|
114 |
|
115 |
# Переменная для хранения данных
|
116 |
export_data_var = None
|
117 |
|
118 |
-
async def fetch(
|
119 |
-
async with
|
120 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
|
122 |
async def main():
|
123 |
global code_executed, export_data_var
|
124 |
|
125 |
if start_up == '1' and not code_executed:
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
async with aiohttp.ClientSession() as session:
|
130 |
-
# Отправка первого запроса к серверу
|
131 |
-
data = await fetch(session, url_template)
|
132 |
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
136 |
|
137 |
-
|
138 |
-
|
139 |
-
print(f"Ждем {time_delay} секунд перед вторым запросом...")
|
140 |
-
await asyncio.sleep(time_delay)
|
141 |
|
142 |
-
|
143 |
-
|
144 |
|
145 |
-
|
146 |
-
|
|
|
|
|
147 |
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
# Сохранение данных в переменную
|
152 |
-
export_data_var = export_data
|
153 |
-
|
154 |
-
# Пример использования переменной export_data_var
|
155 |
-
# Здесь вы можете выполнять любые операции с данными
|
156 |
-
print("Пример использования переменной export_data_var:")
|
157 |
-
print(export_data_var)
|
158 |
-
|
159 |
-
code_executed = True # Устанавливаем флаг выполнения кода
|
160 |
-
else:
|
161 |
-
print(f"Ошибка при выполнении второго запроса по export_id, статус код: {export_data.get('status_code')}")
|
162 |
-
else:
|
163 |
-
print("Ошибка в ответе от сервера:", data.get("error_message"))
|
164 |
else:
|
165 |
print("Системная переменная start_up не равна '1' или код уже выполнялся пр�� старте сервера.")
|
166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
|
168 |
|
169 |
|
|
|
8 |
import json
|
9 |
import base64
|
10 |
import asyncio
|
11 |
+
import httpx
|
12 |
from unidecode import unidecode
|
13 |
|
14 |
api_key_sys = os.getenv('api_key_sys')
|
|
|
108 |
|
109 |
|
110 |
|
111 |
+
# Флаг выполнения кода
|
|
|
112 |
code_executed = False
|
113 |
|
114 |
# Переменная для хранения данных
|
115 |
export_data_var = None
|
116 |
|
117 |
+
async def fetch(url):
|
118 |
+
async with httpx.AsyncClient() as client:
|
119 |
+
response = await client.get(url)
|
120 |
+
return response.json()
|
121 |
+
|
122 |
+
async def get_export_id():
|
123 |
+
url_template = f"{gc_url_gru}/{id_gru}/users?key={gc_api}&created_at[from]={date_from}&status={status}"
|
124 |
+
data = await fetch(url_template)
|
125 |
+
if data.get("success"):
|
126 |
+
return data.get("info", {}).get("export_id", "")
|
127 |
+
else:
|
128 |
+
raise Exception(f"Ошибка в ответе от сервера: {data.get('error_message')}")
|
129 |
+
|
130 |
+
async def get_export_data(export_id):
|
131 |
+
export_url_template = f"{gc_url_export}/{export_id}?key={gc_api}"
|
132 |
+
data = await fetch(export_url_template)
|
133 |
+
if data.get("success"):
|
134 |
+
return data
|
135 |
+
else:
|
136 |
+
raise Exception(f"Ошибка при выполнении второго запроса по export_id, статус код: {data.get('status_code')}")
|
137 |
|
138 |
async def main():
|
139 |
global code_executed, export_data_var
|
140 |
|
141 |
if start_up == '1' and not code_executed:
|
142 |
+
try:
|
143 |
+
export_id = await get_export_id()
|
144 |
+
print("Export ID:", export_id)
|
|
|
|
|
|
|
145 |
|
146 |
+
# Задержка в 5 минут перед вторым запросом (в секундах)
|
147 |
+
time_delay = 5 * 60
|
148 |
+
print(f"Ждем {time_delay} секунд перед вторым запросом...")
|
149 |
+
await asyncio.sleep(time_delay)
|
150 |
|
151 |
+
export_data = await get_export_data(export_id)
|
152 |
+
print("Полученные данные по export_id:", export_data)
|
|
|
|
|
153 |
|
154 |
+
# Сохранение данных в переменную
|
155 |
+
export_data_var = export_data
|
156 |
|
157 |
+
# Пример использования переменной export_data_var
|
158 |
+
# Здесь вы можете выполнять любые операции с данными
|
159 |
+
print("Пример использования переменной export_data_var:")
|
160 |
+
print(export_data_var)
|
161 |
|
162 |
+
code_executed = True # Устанавливаем флаг выполнения кода
|
163 |
+
except Exception as e:
|
164 |
+
print(f"Ошибка: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
else:
|
166 |
print("Системная переменная start_up не равна '1' или код уже выполнялся пр�� старте сервера.")
|
167 |
|
168 |
+
app = Flask(__name__)
|
169 |
+
|
170 |
+
@app.before_first_request
|
171 |
+
def init_async():
|
172 |
+
asyncio.run(main())
|
173 |
+
|
174 |
|
175 |
|
176 |
|