Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

53 rindas
1.4KB

  1. import json
  2. import sys, os
  3. from flask import Flask, render_template, redirect, json, g
  4. from flask_socketio import SocketIO, emit
  5. import logging
  6. from modules.core.core import CraftBeerPi, ActorBase, SensorBase
  7. from modules.core.db import DBModel
  8. app = Flask(__name__)
  9. FORMAT = '%(asctime)-15s - %(levelname)s - %(message)s'
  10. logging.basicConfig(filename='./logs/app.log',level=logging.INFO, format=FORMAT)
  11. app.config['SECRET_KEY'] = 'craftbeerpi'
  12. app.config['UPLOAD_FOLDER'] = './upload'
  13. @app.teardown_appcontext
  14. def close_connection(exception):
  15. db = getattr(g, '_database', None)
  16. if db is not None:
  17. db.close()
  18. class ComplexEncoder(json.JSONEncoder):
  19. def default(self, obj):
  20. try:
  21. if isinstance(obj, DBModel):
  22. return obj.__dict__
  23. elif isinstance(obj, ActorBase):
  24. return obj.state()
  25. elif isinstance(obj, SensorBase):
  26. return obj.get_value()
  27. elif hasattr(obj, "callback"):
  28. return obj()
  29. else:
  30. return None
  31. except TypeError as e:
  32. pass
  33. return None
  34. app.json_encoder = ComplexEncoder
  35. socketio = SocketIO(app, json=json, logging=False)
  36. cbpi = CraftBeerPi(app, socketio)
  37. app.logger.info("##########################################")
  38. app.logger.info("### NEW STARTUP Version 3.0")
  39. app.logger.info("##########################################")