flask_api.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from flask import Flask
  2. from flask_cors import CORS
  3. import os
  4. from application.kodi_alive_thread import start_kodi_alive_check
  5. from application.kodi_free_time_thread import start_kodi_free_time_play
  6. from application.scheduler_service import start_scheduler
  7. from utils.logger_config import logger
  8. # 导入所有蓝图
  9. from api.auth import auth_bp
  10. from api.main import main_bp
  11. from api.led import led_bp
  12. from api.kodi import kodi_bp
  13. from api.mitv import mitv_bp
  14. from api.ha import ha_bp
  15. from api.door import door_bp
  16. from api.pc import pc_bp
  17. from api.utils import UPLOAD_FOLDER
  18. app = Flask(__name__)
  19. app.secret_key = 'your_secret_key_here_hnhz_0821' # 用于 session 加密,请更改为随机字符串
  20. CORS(app) # 允许跨域请求
  21. # 配置上传文件夹
  22. app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
  23. app.config['MAX_CONTENT_LENGTH'] = 100 * 1024 * 1024 # 限制上传文件大小为 100MB(含视频附件)
  24. # 确保上传文件夹存在
  25. if not os.path.exists(UPLOAD_FOLDER):
  26. os.makedirs(UPLOAD_FOLDER)
  27. # 注册蓝图
  28. app.register_blueprint(auth_bp)
  29. app.register_blueprint(main_bp)
  30. app.register_blueprint(led_bp)
  31. app.register_blueprint(kodi_bp)
  32. app.register_blueprint(mitv_bp)
  33. app.register_blueprint(ha_bp)
  34. app.register_blueprint(door_bp)
  35. app.register_blueprint(pc_bp)
  36. if __name__ == '__main__':
  37. # 创建templates目录
  38. if not os.path.exists('templates'):
  39. os.makedirs('templates')
  40. logger.info("启动Kodi心跳检测")
  41. start_kodi_alive_check()
  42. logger.info("启动Kodi空闲时间播放")
  43. start_kodi_free_time_play()
  44. logger.info("启动每日自检定时任务")
  45. start_scheduler()
  46. logger.info("Flask API服务器启动中...")
  47. logger.info("访问 http://localhost:5050 查看HTML页面")
  48. logger.info("API端点已通过蓝图注册")
  49. app.run(debug=True, host='0.0.0.0', port=5050)