flpolprojects commited on
Commit
ae4402f
·
verified ·
1 Parent(s): 59c39e2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -17
app.py CHANGED
@@ -4,8 +4,6 @@ import os
4
  from datetime import datetime
5
  from aiogram import Bot, Dispatcher, types, F
6
  from aiogram.filters import Command
7
- from aiogram.fsm.context import FSMContext
8
- from aiogram.fsm.state import State, StatesGroup
9
  from aiogram.utils.keyboard import ReplyKeyboardBuilder, InlineKeyboardBuilder
10
  from flask import Flask, request, jsonify, render_template_string
11
  import logging
@@ -44,11 +42,6 @@ def save_data(data):
44
 
45
  data = load_data()
46
 
47
- # Состояния для FSM (Finite State Machine)
48
- class CartStates(StatesGroup):
49
- waiting_for_product = State()
50
- waiting_for_quantity = State()
51
-
52
  # Клавиатуры
53
  def get_main_keyboard():
54
  builder = ReplyKeyboardBuilder()
@@ -243,16 +236,10 @@ def delete_product(product_id):
243
  logger.error(f"Ошибка при удалении товара: {e}")
244
  return jsonify({'status': 'error', 'message': str(e)}), 500
245
 
246
- # Запуск бота и Flask в разных потоках
247
  async def on_startup(_):
248
  logger.info("Бот запущен!")
249
 
250
- def run_bot():
251
- try:
252
- asyncio.run(dp.start_polling(bot, on_startup=on_startup))
253
- except Exception as e:
254
- logger.error(f"Ошибка в боте: {e}")
255
-
256
  def run_flask():
257
  try:
258
  app.run(host='0.0.0.0', port=7860)
@@ -260,9 +247,13 @@ def run_flask():
260
  logger.error(f"Ошибка в Flask: {e}")
261
 
262
  if __name__ == '__main__':
263
- bot_thread = threading.Thread(target=run_bot)
 
 
 
264
  flask_thread = threading.Thread(target=run_flask)
265
- bot_thread.start()
266
  flask_thread.start()
267
- bot_thread.join()
 
268
  flask_thread.join()
 
4
  from datetime import datetime
5
  from aiogram import Bot, Dispatcher, types, F
6
  from aiogram.filters import Command
 
 
7
  from aiogram.utils.keyboard import ReplyKeyboardBuilder, InlineKeyboardBuilder
8
  from flask import Flask, request, jsonify, render_template_string
9
  import logging
 
42
 
43
  data = load_data()
44
 
 
 
 
 
 
45
  # Клавиатуры
46
  def get_main_keyboard():
47
  builder = ReplyKeyboardBuilder()
 
236
  logger.error(f"Ошибка при удалении товара: {e}")
237
  return jsonify({'status': 'error', 'message': str(e)}), 500
238
 
239
+ # Запуск бота и Flask
240
  async def on_startup(_):
241
  logger.info("Бот запущен!")
242
 
 
 
 
 
 
 
243
  def run_flask():
244
  try:
245
  app.run(host='0.0.0.0', port=7860)
 
247
  logger.error(f"Ошибка в Flask: {e}")
248
 
249
  if __name__ == '__main__':
250
+ # Запускаем бота в главном потоке
251
+ asyncio.run(dp.start_polling(bot, on_startup=on_startup))
252
+
253
+ # Запускаем Flask в отдельном потоке
254
  flask_thread = threading.Thread(target=run_flask)
255
+ flask_thread.daemon = True # Flask будет завершаться при завершении основного потока
256
  flask_thread.start()
257
+
258
+ # Ждём завершения основного цикла бота
259
  flask_thread.join()