|
-
- import json
- import sys, os
- from flask import Flask, render_template, redirect, json, g
-
-
- from flask_socketio import SocketIO, emit
-
- import logging
-
-
-
- from modules.core.core import CraftBeerPi, ActorBase, SensorBase
- from modules.core.db import DBModel
-
- app = Flask(__name__)
-
- logging.basicConfig(filename='./logs/app.log',level=logging.INFO)
- app.config['SECRET_KEY'] = 'craftbeerpi'
- app.config['UPLOAD_FOLDER'] = './upload'
-
-
- @app.teardown_appcontext
- def close_connection(exception):
- db = getattr(g, '_database', None)
- if db is not None:
- db.close()
-
-
- class ComplexEncoder(json.JSONEncoder):
- def default(self, obj):
- try:
- if isinstance(obj, DBModel):
- return obj.__dict__
- elif isinstance(obj, ActorBase):
- return obj.state()
- elif isinstance(obj, SensorBase):
- return obj.get_value()
- elif hasattr(obj, "callback"):
- return obj()
- else:
- return None
- except TypeError as e:
- pass
- return None
-
- app.json_encoder = ComplexEncoder
- socketio = SocketIO(app, json=json)
- cbpi = CraftBeerPi(app, socketio)
-
- app.logger.info("##########################################")
- app.logger.info("### NEW STARTUP Version 3.0")
- app.logger.info("##########################################")
|