Files
fachschaften/__init__.py
2017-02-11 12:48:30 +01:00

112 lines
3.2 KiB
Python

import os
import sys
package_directory = os.path.dirname(os.path.abspath(__file__))
from config import Config
cfg = Config(file(os.path.join(package_directory, 'config.cfg')))
#--------------- Logging
import logging
file_handler=logging.FileHandler(cfg.logfile)
file_handler.setLevel(logging.DEBUG)
stream_handler=logging.StreamHandler(sys.stdout)
stream_handler.setLevel(logging.DEBUG)
clt=logging.getLogger('mylogger')
clt.setLevel(logging.DEBUG)
clt.addHandler(file_handler)
clt.addHandler(stream_handler)
clogger=clt
#----------------
download_path=cfg.download_path
lg=clt
from gevent import spawn, monkey
monkey.patch_all()
from .compiler import start_workers
#start_workers(1,1,1)
if cfg.bot_active:
from src.bot import bot
#if not app.debug or os.environ.get("WERKZEUG_RUN_MAIN") == "true":
bot.message_loop()
# Framework
from flask import Flask, jsonify, render_template, redirect, request,send_from_directory
# Cross Site Scripting
from flask_cors import CORS, cross_origin
#Authentication
from flask_jwt import JWT, jwt_required, current_identity
from src.models import Article,Section
from src.users import authenticate, identity
from datetime import datetime
app = Flask(__name__)
CORS(app)
app.config['LOGGER_NAME']='mylogger'
app.logger.setLevel(logging.DEBUG)
app.logger.info("Server Started")
app.config['SECRET_KEY'] = 'super-secret'
import flask
import json
from database import Base
from models import Article, CrawlUrl, CrawlCache
flask.json.JSONEncoder.default = lambda self,obj: ((obj.__json__()) if isinstance(obj, (Base, Article,Section, CrawlUrl,CrawlCache)) else None)
json.JSONEncoder.default = lambda self,obj: ((obj.__json__()) if isinstance(obj, (Base, Article,CrawlUrl,CrawlCache)) else None)
#bot.dosmth()
#lg.debug(bot.bot)
# Allow Cross Site Scripting
@app.after_request
def after_request(response):
response.headers.add('Access-Control-Allow-Origin', '*')
if request.method == 'OPTIONS':
response.headers['Access-Control-Allow-Methods'] = 'DELETE, GET, POST, PUT'
headers = request.headers.get('Access-Control-Request-Headers')
if headers:
response.headers['Access-Control-Allow-Headers'] = headers
return response
from .articles.views import article_pages
from .sections.views import section_pages
from .compiler.views import compiler_pages
from .organizations.views import organization_pages
from .organizationtypes.views import organizationtype_pages
@app.route("/")
@app.route("/index")
@app.route("/home")
def home():
text="It work's, please do something"
return jsonify(text=text)
app.register_blueprint(article_pages, url_prefix='/articles')
app.register_blueprint(section_pages, url_prefix='/sections')
app.register_blueprint(compiler_pages, url_prefix='/compiler')
#pp.register_blueprint(organization_pages, url_prefix='/organizations')
app.register_blueprint(organization_pages, url_prefix='/organizations')
app.register_blueprint(organizationtype_pages, url_prefix='/organizationtypes')
# ------------ Telegram Bot
#from bot import bot_queue
#@app.route('/bot', methods=['GET', 'POST'])
#def pass_update():
# bot_queue.put(request.data) # pass update to bot
# return 'OK'