DmitrMakeev commited on
Commit
6a3ed0f
·
verified ·
1 Parent(s): cc62fad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -39
app.py CHANGED
@@ -8,7 +8,7 @@ import re
8
  import json
9
  import base64
10
  import asyncio
11
- import aiohttp
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(session, url):
119
- async with session.get(url) as response:
120
- return await response.json()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
 
122
  async def main():
123
  global code_executed, export_data_var
124
 
125
  if start_up == '1' and not code_executed:
126
- # Формирование URL для первого запроса
127
- url_template = f"{gc_url_gru}/{id_gru}/users?key={gc_api}&created_at[from]={date_from}&status={status}"
128
-
129
- async with aiohttp.ClientSession() as session:
130
- # Отправка первого запроса к серверу
131
- data = await fetch(session, url_template)
132
 
133
- if data.get("success"):
134
- export_id = data.get("info", {}).get("export_id", "")
135
- print("Export ID:", export_id)
 
136
 
137
- # Задержка в 5 минут перед вторым запросом (в секундах)
138
- time_delay = 5 * 60
139
- print(f"Ждем {time_delay} секунд перед вторым запросом...")
140
- await asyncio.sleep(time_delay)
141
 
142
- # Формирование URL для второго запроса по export_id
143
- export_url_template = f"{gc_url_export}/{export_id}?key={gc_api}"
144
 
145
- # Отправка второго запроса к серверу по export_id
146
- export_data = await fetch(session, export_url_template)
 
 
147
 
148
- if export_data.get("success"):
149
- print("Полученные данные по export_id:", export_data)
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