import os import sys import lockfile #from lockfile import LockFile package_directory = os.path.dirname(os.path.abspath(__file__)) from config import Config cfg = Config(file(os.path.join(package_directory, 'config.cfg'))) #--------------- Logging # 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 import logging app = Flask(__name__) file_handler=logging.FileHandler(cfg.logfile) file_handler.setLevel(logging.DEBUG) stream_handler=logging.StreamHandler(sys.stdout) stream_handler.setLevel(logging.DEBUG) CORS(app) clt=logging.getLogger('mylogger') clt.setLevel(logging.DEBUG) clt.addHandler(file_handler) clt.addHandler(stream_handler) lg=clt #clogger=clt #---------------- #app.config['LOGGER_NAME']='mylogger' app.logger.setLevel(logging.DEBUG) app.logger.info("Server Started") app.logger.setLevel(logging.DEBUG) app.logger.addHandler(file_handler) app.logger.addHandler(stream_handler) clogger=app.logger download_path=cfg.download_path from src.models import Article,Section from src.users import authenticate, identity from datetime import datetime from gevent import spawn, monkey monkey.patch_all() from .compiler import start_workers #start_workers(1,1,1) lock = lockfile.LockFile("/srv/crawlerapi/bot.lock") try: if cfg.bot_active and not lock.is_locked(): lock.acquire() from src.bot import bot #if not app.debug or os.environ.get("WERKZEUG_RUN_MAIN") == "true": bot.message_loop() except lockfile.Error: clogger.info("Couldn't Lock the bot file") 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'