106 lines
2.8 KiB
Python
106 lines
2.8 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)
|
|
|
|
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
|
|
|
|
|
|
@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')
|
|
|
|
|
|
# ------------ 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'
|