Update app.py
Browse files
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
|
| 119 |
-
|
| 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 |
-
|
| 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 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
#
|
| 159 |
-
|
| 160 |
-
print(
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|
|
|
|
|
|
|
|
|
|
|
|