DmitrMakeev commited on
Commit
33de58e
1 Parent(s): 6a3ed0f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -56
app.py CHANGED
@@ -108,71 +108,67 @@ for db in DATABASES:
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
 
177
 
178
 
@@ -1053,11 +1049,10 @@ def gc_db_email():
1053
 
1054
 
1055
 
 
 
 
1056
 
1057
 
1058
 
1059
 
1060
-
1061
-
1062
- if __name__ == '__main__':
1063
- app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
 
108
 
109
 
110
 
 
111
  code_executed = False
112
 
113
  # Переменная для хранения данных
114
  export_data_var = None
115
 
116
+ async def fetch(session, url):
117
+ async with session.get(url) as response:
118
+ return await response.json()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
  async def main():
121
  global code_executed, export_data_var
122
 
123
+ print(f"start_up: {start_up}, code_executed: {code_executed}")
 
 
 
 
 
 
 
 
124
 
125
+ if start_up == '1' and not code_executed:
126
+ print("start_up равен '1' и код еще не выполнялся.")
127
+ # Формирование URL для первого запроса
128
+ url_template = f"{gc_url_gru}/{id_gru}/users?key={gc_api}&created_at[from]={date_from}&status={status}"
129
+ print(f"URL первого запроса: {url_template}")
130
+
131
+ async with aiohttp.ClientSession() as session:
132
+ # Отправка первого запроса к серверу
133
+ data = await fetch(session, url_template)
134
+ print("Первый запрос отправлен.")
135
+
136
+ if data.get("success"):
137
+ export_id = data.get("info", {}).get("export_id", "")
138
+ print("Export ID:", export_id)
139
+
140
+ # Задержка в 5 минут перед вторым запросом (в секундах)
141
+ time_delay = 5 * 60
142
+ print(f"Ждем {time_delay} секунд перед вторым запросом...")
143
+ await asyncio.sleep(time_delay)
144
+
145
+ # Формирование URL для второго запроса по export_id
146
+ export_url_template = f"{gc_url_export}/{export_id}?key={gc_api}"
147
+ print(f"URL второго запроса: {export_url_template}")
148
+
149
+ # Отправка второго запроса к серверу по export_id
150
+ export_data = await fetch(session, export_url_template)
151
+ print("Второй запрос отправлен.")
152
+
153
+ if export_data.get("success"):
154
+ print("Полученные данные по export_id:", export_data)
155
+
156
+ # Сохранение данных в переменную
157
+ export_data_var = export_data
158
+
159
+ # Пример использования переменной export_data_var
160
+ # Здесь вы можете выполнять любые операции с данными
161
+ print("Пример использования переменной export_data_var:")
162
+ print(export_data_var)
163
+
164
+ code_executed = True # Устанавливаем флаг выполнения кода
165
+ else:
166
+ print(f"Ошибка при выполнении второго запроса по export_id, статус код: {export_data.get('status_code')}")
167
+ else:
168
+ print("Ошибка в ответе от сервера:", data.get("error_message"))
169
  else:
170
  print("Системная переменная start_up не равна '1' или код уже выполнялся при старте сервера.")
171
 
 
 
 
 
 
 
 
 
172
 
173
 
174
 
 
1049
 
1050
 
1051
 
1052
+ if __name__ == '__main__':
1053
+ asyncio.run(main())
1054
+ app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
1055
 
1056
 
1057
 
1058