This commit is contained in:
+87
@@ -25,6 +25,7 @@ from db_update_shortname import ai_shortname_all, generate_ai_shortname
|
||||
from evtg_publish import tg_post_event_by_id, tg_post_all_events
|
||||
from zk_load import load_json_all
|
||||
from volk_load import load_categories, load_all_events
|
||||
from volk_cat_publish import tg_post_category_by_id, tg_post_all_categories
|
||||
|
||||
# Загружаем настройки из .env
|
||||
load_dotenv()
|
||||
@@ -1072,6 +1073,92 @@ def api_publish_all_events():
|
||||
log_event(error_msg)
|
||||
return jsonify({'success': False, 'error': error_msg}), 500
|
||||
|
||||
@bp.route('/api/publish_all_categories', methods=['POST'])
|
||||
@login_required
|
||||
def api_publish_all_categories():
|
||||
try:
|
||||
log_event("Запуск публикации всех площадок...")
|
||||
|
||||
# Создаем асинхронную обертку для запуска в отдельном потоке
|
||||
import asyncio
|
||||
from threading import Thread
|
||||
import queue
|
||||
|
||||
def run_async_func():
|
||||
try:
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
result = loop.run_until_complete(tg_post_all_categories())
|
||||
return result
|
||||
except Exception as e:
|
||||
return e
|
||||
|
||||
# Создаем очередь для передачи результата
|
||||
q = queue.Queue()
|
||||
# Запускаем в отдельном потоке
|
||||
thread = Thread(target=lambda: q.put(run_async_func()))
|
||||
thread.start()
|
||||
thread.join()
|
||||
result = q.get()
|
||||
|
||||
if isinstance(result, Exception):
|
||||
raise result
|
||||
|
||||
log_event("Публикация всех площадок выполнена успешно")
|
||||
return jsonify({'success': True})
|
||||
except Exception as e:
|
||||
error_msg = f"Ошибка при публикации всех площадок: {str(e)}"
|
||||
log_event(error_msg)
|
||||
return jsonify({'success': False, 'error': error_msg}), 500
|
||||
|
||||
@bp.route('/api/publish_category/<category_id>', methods=['POST'])
|
||||
@login_required
|
||||
def api_publish_category(category_id):
|
||||
try:
|
||||
# Сначала проверяем существование категории
|
||||
db = get_db()
|
||||
with db.conn.cursor() as cursor:
|
||||
cursor.execute("SELECT ID, TITLE FROM categories WHERE ID = %s", (category_id,))
|
||||
category = cursor.fetchone()
|
||||
if not category:
|
||||
return jsonify({'success': False, 'error': 'Category not found'}), 404
|
||||
|
||||
db.close()
|
||||
|
||||
log_event(f"Запуск публикации площадки ID: {category_id}")
|
||||
|
||||
# Создаем асинхронную обертку для запуска в отдельном потоке
|
||||
import asyncio
|
||||
from threading import Thread
|
||||
import queue
|
||||
|
||||
def run_async_func():
|
||||
try:
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
result = loop.run_until_complete(tg_post_category_by_id(category_id))
|
||||
return result
|
||||
except Exception as e:
|
||||
return e
|
||||
|
||||
# Создаем очередь для передачи результата
|
||||
q = queue.Queue()
|
||||
# Запускаем в отдельном потоке
|
||||
thread = Thread(target=lambda: q.put(run_async_func()))
|
||||
thread.start()
|
||||
thread.join()
|
||||
result = q.get()
|
||||
|
||||
if isinstance(result, Exception):
|
||||
raise result
|
||||
|
||||
log_event(f"Публикация площадки ID {category_id} выполнена успешно")
|
||||
return jsonify({'success': True})
|
||||
except Exception as e:
|
||||
error_msg = f"Ошибка при публикации площадки: {str(e)}"
|
||||
log_event(error_msg)
|
||||
return jsonify({'success': False, 'error': error_msg}), 500
|
||||
|
||||
@bp.route('/api/load_categories', methods=['POST'])
|
||||
@login_required
|
||||
def api_load_categories():
|
||||
|
||||
Reference in New Issue
Block a user