예제 #1
0
            pre_data = cipher.read_from_file()
            for task in pre_data:
                tasks.create_task(body=task["body"],
                                  column=task["column"],
                                  sort_order=task["sort_order"],
                                  user=task["user"],
                                  modified=task["modified"])
        except:
            pass
    return kanban


#Build the app
app = setup(db)
#Turn the flask app into a socketio app
socketio = SocketIO(app, async_mode=None, logger=True, engineio_logger=True)

#Event generator Thread
thread = Thread()
thread_stop_event = Event()


# Async job function
def randomTaskGenerator():
    """Generate random sayings for random people"""
    with app.app_context():
        print("Making random comments")
        people = ["Arthur", "Marvin", "Ford", "Deep Thought"]
        sayings = [
            "Don't Panic.", "Space is big.", "Where's your towel?", "42",
            "I don't know why I bother..."
예제 #2
0
파일: __init__.py 프로젝트: banalna/blogeek
from redis import Redis

from config import Config

app = Flask(__name__)
# Flask extensions
db = SQLAlchemy()
migrate = Migrate()
login = LoginManager()
login.login_view = 'auth.login'
login.login_message = _l('Please log in to access this page.')
# login.login_message = 'your msg'
mail = Mail()
bootstrap = Bootstrap()
moment = Moment()
socketio = SocketIO()

# for generate pot: pybabel extract -F babel.cfg -k _l -o messages.pot .
# for generate mo: pybabel init -i messages.pot -d app/translations -l <needed lang>
# for update mo: pybabel update -i messages.pot -d app/translations
# for compile po: pybabel compile -d app/translations
babel = Babel()


def create_app(config_class=Config):
    _app = Flask(__name__)
    _app.config.from_object(config_class)

    db.init_app(_app)
    migrate.init_app(_app, db)
    login.init_app(_app)
예제 #3
0
from time import localtime, strftime
from flask import Flask, request, render_template, jsonify, redirect
from flask_socketio import SocketIO, join_room, leave_room, send
import sqlite3

import constants

app = Flask(__name__)
app.config["SECRET_KEY"] = "mysecret"
app.host = "localhost"
_socket_io = SocketIO(app)

ROOMS = ["common"]


# for getting data from members table
def select_element_members(column_name, value):
    # connect to database
    conn = sqlite3.connect('members.db')
    cur = conn.cursor()
    query_select_element_members = "SELECT * FROM members WHERE {}=\"{}\""
    query_select_element_members = query_select_element_members.format(
        column_name, value)
    print(query_select_element_members)
    result_select_element_members = cur.execute(query_select_element_members)
    result_select_element_members = list(result_select_element_members)
    return result_select_element_members


@app.route("/")
def home():
예제 #4
0
#!/usr/bin/env python
# coding:utf-8
# Copyright (C) dirlt
import logging
import time

from flask_socketio import SocketIO

DEFAULT_LOGGING_FORMAT = '[%(asctime)s][%(levelname)s]%(pathname)s@%(lineno)d: %(msg)s'
logging.basicConfig(level=logging.INFO, format=DEFAULT_LOGGING_FORMAT)
logger = logging.getLogger('trigger')

socketio = SocketIO(message_queue='redis://localhost/0',
                    channel='socketio-test')
ns_name = '/fanout'
ts = int(time.time() * 1000)
socketio.emit('my event', ts, namespace=ns_name)
socketio.emit('my event', ts, namespace=ns_name)
socketio.emit('my event', ts, namespace=ns_name)
socketio.emit('my event', 'quit', namespace=ns_name)
예제 #5
0
# Configure database
app.config['SQLALCHEMY_DATABASE_URI'] = ""
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

# Initialize login manager
login = LoginManager(app)
login.init_app(app)


@login.user_loader
def load_user(id):
    return User.query.get(int(id))


socketio = SocketIO(app, async_mode=None, manage_session=False)

# keep track of the users, channels and the messages in each channel
channels = []
my_messages = {}
users = {}


@socketio.on("username")
def receive_username(username):
    # pair usernames with session IDs
    users[username] = request.sid


# execute when a message is sent
@socketio.on("room_message")
예제 #6
0
from app import flask_app
from flask_socketio import SocketIO
from game import init_game

flask_app.config.from_object('config')
socketio = SocketIO(flask_app)

init_game()

import events.user
import events.person
import events.house
import events.resource
예제 #7
0
"""
Main flask application
"""
from flask import Flask
from flask_session import Session
from flask_bootstrap import Bootstrap
from flask_socketio import SocketIO

from . import interactive

bootstrap = Bootstrap()
session = Session()
socketio = SocketIO(manage_sessions=False, engineio_logger=True)


class DefaultConfig:
    SESSION_TYPE = 'redis'


def create_app(test_config=None):
    app = Flask(__name__)
    app.config.from_object(DefaultConfig)

    if test_config:
        app.config.from_mapping(test_config)
    app.config[
        'SECRET_KEY'] = b'\xd5\xfbz\xbbVX\xf9\xfe\xaa\x053\xedg\x8e\xa2;'

    app.register_blueprint(interactive.bp)
    session.init_app(app)
    bootstrap.init_app(app)
예제 #8
0
"""
    set everything up
"""

from flask import Flask
from flask_socketio import SocketIO, emit
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
import eventlet, os

basedir = os.path.abspath(os.path.dirname(__file__))


class Config(object):
    SQLALCHEMY_DATABASE_URI = os.environ.get(
        'DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'app.db')
    SQLALCHEMY_TRACK_MODIFICATIONS = False


app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
socketio = SocketIO(app, async_mode='eventlet')

from app import routes, beanjump, models, beansjump  # , beansjumproute
예제 #9
0
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, logging=False)
cbpi   = CraftBeerPi(app, socketio)
print("Finished app_config")

app.logger.info("##########################################")
app.logger.info("### NEW STARTUP Version 3.0")
app.logger.info("##########################################")
예제 #10
0
import json

import flask
from flask_socketio import SocketIO, emit
from flask_socketio import join_room, leave_room
from flask import render_template, copy_current_request_context, request

from docker import DockerImage, DOWNLOADS_DIR


MAX_FILES_IN_DOWNLOAD_DIR = 3


application = flask.Flask(__name__)
application.debug = True
socketio = SocketIO(application, debug=True, async_mode="gevent")


@socketio.on('connect')
def test_message():
    emit('set_sid', {'sid': request.sid})


@socketio.on('changed_sid')
def test_message():
    emit('event', {'data': 'got it!'})


@application.route("/")
def index():
    return render_template("index.html")
예제 #11
0
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
import numpy as np
import requests
from datetime import datetime
from fbprophet import Prophet
import pandas as pd
from helper_v4 import forecastr, determine_timeframe, get_summary_stats, validate_model, preprocessing
import logging
import time

# Socket IO Flask App Setup

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app, logger=False, engineio_logger=False)

# Suppress logs except for error: https://stackoverflow.com/questions/43487264/disabling-logger-in-flask-socket-io
logging.getLogger('socketio').setLevel(logging.ERROR)
logging.getLogger('engineio').setLevel(logging.ERROR)
logging.getLogger('geventwebsocket.handler').setLevel(logging.ERROR)


@app.after_request
def add_header(r):
    """
    Add headers to both force latest IE rendering engine or Chrome Frame,
    and also to cache the rendered page for 10 minutes.
    """
    r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
    r.headers["Pragma"] = "no-cache"
예제 #12
0
from collections import defaultdict

app = Flask(__name__, static_url_path="", static_folder="static")
res = mongoengine.connect(DATABASE_NAME,
                          host=HOST_IP,
                          port=PORT,
                          username=USERNAME,
                          password=PASSWORD,
                          authentication_source=AUTHENTICATION_SOURCE)

app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
app.secret_key = SECRET_KEY
# sess = Session()
# sess.init_app(app)
app.config['SECRET_KEY'] = SECRET_KEY
socket_app = SocketIO(app)
chat_target = defaultdict(list)
connected_id = set()
connected_listening_id = set()
offline_notification = dict()


@app.route('/')
def hello_world():
    # access_token = session.get("email")
    # if access_token is None:
    return redirect("/index.html", code=302)


@app.route("/login", methods=['POST'])
def verify_login():
예제 #13
0
def create_server(test_config=None):

    # Scoreboard Object and Data Store
    # scoreboard = Scoreboard("SEOULAI")

    # Basic Authentication
    auth = HTTPBasicAuth()

    @auth.get_password
    def get_password(username):
        if username == 'seoulAI':
            return 'agent'
        return None

    @auth.error_handler
    def unauthorized():
        return make_response(jsonify({'error': 'Unauthorized access'}), 401)

    # create and configure the app
    app = Flask(__name__, instance_relative_config=True)
    app.static_url_path = '/static'

    app.config.from_mapping(
        SECRET_KEY='dev',
        #DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
    )

    app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0

    if test_config is None:
        # load the instance config, if it exists, when not testing
        app.config.from_pyfile('config.py', silent=True)
    else:
        # load the test config if passed in
        app.config.from_mapping(test_config)

    # ensure the instance folder exists
    try:
        os.makedirs(app.instance_path)
    except OSError:
        pass

    # Now let's create the websocket
    socketio = SocketIO(app)

    @app.errorhandler(BAD_REQUEST)
    def bad_request(error):
        return make_response(jsonify({'error': 'Bad request'}), BAD_REQUEST)

    @app.errorhandler(NOT_FOUND)
    def not_found(error):
        return make_response(jsonify({'error': 'Not found'}), NOT_FOUND)

    # Flask Service
    @app.errorhandler(SERVER_ERROR)
    def server_error(error):
        return make_response(jsonify({'error': 'Server error'}), SERVER_ERROR)

    @app.route('/move', methods=['GET'])
    def move():
        send_move()
        return jsonify({'response': 'OK'})

    @socketio.on('message')
    def handle_message(message):
        print('received message: ' + message)

    @socketio.on('json')
    def handle_json(json):
        print('received json: ' + str(json))

    def send_move():
        # count is use to create some randomness on test moves
        global count
        count += 1
        if (count == 4):
            count = 0
        socketio.emit('message', moves[count])

    return app
예제 #14
0
# Point SQLAlchemy to your Heroku database
APP.config["SQLALCHEMY_DATABASE_URI"] = os.getenv("DATABASE_URL")
# Gets rid of a warning
APP.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False

DB = SQLAlchemy(APP)
# IMPORTANT: This must be AFTER creating db variable to prevent
# circular import issues
import models  # pylint: disable=C0413

DB.create_all()

CORS = CORS(APP, resources={r"/*": {"origins": "*"}})
NAMES = []
SOCKETIO = SocketIO(APP,
                    cors_allowed_origins="*",
                    json=json,
                    manage_session=False)


@APP.route("/", defaults={"filename": "index.html"})
@APP.route("/<path:filename>")
def index(filename):
    """Send a given data file to qutebrowser.
    If a directory is requested, its index.html is sent.
    """
    return send_from_directory("./build", filename)


# When a client connects from this Socket connection, this function is run
@SOCKETIO.on("connect")
def on_connect():
예제 #15
0
from firebase_admin import credentials, firestore
from flask_cors import CORS
import firebase_admin
import json, os

cred = credentials.Certificate(json.loads(os.environ["PROJECT_AUTH"]))
firebase_admin.initialize_app(cred)
fireClient = firestore.client()

from flask import Flask, render_template, session, redirect, request
from flask_socketio import SocketIO

socketio = SocketIO(logger=True)

from socraticos.blueprints import users, groups, chat, auth


def create_app():
    app = Flask(__name__)
    # TODO: CHANGE THIS!!!
    app.secret_key = "DEVELOPMENT"
    CORS(app)
    app.register_blueprint(users.users, url_prefix="/users")
    app.register_blueprint(groups.groups, url_prefix="/groups")
    app.register_blueprint(auth.auth, url_prefix="/auth")

    @app.before_request
    def log_request_info():
        app.logger.debug('JSON: %s', request.get_json())

    # Redirect to API documentation
예제 #16
0
from flask_socketio import SocketIO, join_room
import threading
from glob import glob
from os.path import isfile, join, basename, splitext
from CGSserver.Game import Game
from CGSserver.Player import RegularPlayer
from CGSserver.Logger import Config
from CGSserver.Tournament import Tournament
from CGSserver.BaseClass import BaseClass
from CGSserver.Constants import mode


# flask object and socketIO ('threading' in debug/dev mode, but 'gevent' in prod)
flask = Flask("webserver")
if mode == 'prod':
	socketio = SocketIO(flask, async_mode='gevent')
else:
	socketio = SocketIO(flask, async_mode='threading')

# set the template paths so that in priority,
# it first looks in <gameName>/server/templates/ and then in CGS/server/templates
templatePaths = ['games/' + Game.getTheGameName() + '/server/templates/', 'CGSserver/templates/']


def runWebServer(host, port):
	"""
	Run the webserver
	"""
	# add a custom jinja loader
	my_loader = ChoiceLoader([flask.jinja_loader, FileSystemLoader(templatePaths), ])
	flask.jinja_loader = my_loader
예제 #17
0
from flask import Flask, escape, request, render_template, jsonify, send_from_directory
from flask_socketio import SocketIO

import os, sys, time

from instant_rst.rst import html_body
from instant_rst import settings, util

app = Flask(__name__,
            static_folder=settings.FLASK_STATIC_FOLDER,
            template_folder=settings.FLASK_TEMPLATE_FOLDER)
app.config['SECRET_KEY'] = settings.SECRET
sock = SocketIO(app)

# ROUTE


@app.route('/', methods=['GET'])
def index_get():
    _file = request.args.get('rst', '')
    if os.path.isfile(_file):
        with open(_file, 'r') as _fo:
            _doc = html_body(_fo.read())
            return render_template('index.html', HTML=_doc)
    else:
        return render_template('index.html')


@app.route('/', methods=['POST', 'PUT'])
def index_post():
    print(str(request.form))
예제 #18
0
파일: server.py 프로젝트: sk-wang/3Dmol.js
from flask import Flask, request, redirect
from flask_socketio import SocketIO, send, emit, join_room, leave_room, close_room
import json, random, datetime, argparse

# for socketio
import eventlet
eventlet.monkey_patch()

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app, async_mode='eventlet', cors_allowed_origins="*")

sessions = {}  # indexed by session name


@socketio.on('message')
def handleMessage(msg):
    print(datetime.datetime.now(), 'Message: ' + msg)
    send(msg, broadcast=True)


@socketio.on('check session name event')
def handleCheckName(json):
    name = json['name']
    #print("checking ",name,name in sessions)
    if name in sessions:
        emit('check session name response', "exists")
    else:
        emit('check session name response', "free")

from flask import Flask, jsonify
from flask_socketio import SocketIO, send

app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecret'

socketIo = SocketIO(app, cors_allowed_origins="*")

app.debug = True
app.host = 'localhost'


@app.route("/")
def index():
    return "Hello"


@socketIo.on("message")
def handleMessage(msg):
    print(msg)
    send(msg, broadcast=True)
    return None


if __name__ == '__main__':
    socketIo.run(app)
예제 #20
0
from .websocket.totem_socket import Totem_Socket
from .websocket.user_socket import User_Socket
from .websocket.stream_socket import Stream_Socket

from .api.user_routes import user_routes
from .api.session_routes import session_routes
from .api.totem_routes import totem_routes
from .api.totem_skin_routes import totem_skin_routes
from .api.emote_routes import emote_routes
from .api.bot_routes import bot_routes

app = Flask(__name__)
login_manager = LoginManager()
socketio = SocketIO(app,
                    cors_allowed_origins='http://localhost:3000',
                    logger=True,
                    engineio_logger=True)
app.config.from_object(Config)
login_manager.init_app(app)
db.init_app(app)

socketio.on_namespace(Totem_Socket('/ws/totem'))
socketio.on_namespace(User_Socket('/ws/user'))
socketio.on_namespace(Stream_Socket('/ws/stream'))

app.register_blueprint(user_routes, url_prefix='/api/users')
app.register_blueprint(session_routes, url_prefix='/api/session')
app.register_blueprint(totem_routes, url_prefix='/api/totems')
app.register_blueprint(totem_skin_routes, url_prefix='/api/totem_skins')
app.register_blueprint(emote_routes, url_prefix='/api/emotes')
app.register_blueprint(bot_routes, url_prefix='/api/bots')
예제 #21
0
# activate eventlet
import eventlet
eventlet.monkey_patch()

from flask import Flask
from flask_socketio import SocketIO

app = Flask(__name__)
app.secret_key = 'development key'
socketio = SocketIO(async_mode='eventlet', engineio_logger=False)
socketio.init_app(app)

from reddstackapi import views
예제 #22
0
 def __init__(self):
     SOK.socket_ref = SocketIO(cors_allowed_origins="*")
예제 #23
0
from apis.entity_handler import *
from apis.transcode_handler import *

################################################################################
################      Initialize and Setup           ###########################
################################################################################

app = Flask(__name__)
app.config['SECRET_KEY'] = 'my super secret key'.encode('utf8')

cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'

socketio = SocketIO(app,
                    async_mode="gevent",
                    cors_allowed_origins='*',
                    logger=True,
                    engineio_logger=True)

config = {}
ui = {}
################################################################################
################      Setup default language         ###########################
################################################################################
with open(r'./i18n.yml') as file:
    # The FullLoader parameter handles the conversion from YAML
    # scalar values to Python the dictionary format
    i18n = yaml.load(file, Loader=yaml.FullLoader)
    print("i18n: ", i18n, flush=True)

################################################################################
from flask_socketio import SocketIO
import requests
# from logging.config import fileConfig
# import logging

from Controllers.EvaluatorController import EvaluatorController

# fileConfig('logging.conf')
# log = logging.getLogger(__name__)
from Modules.Concepts.ComplexNetwork import ComplexNetwork

app = Flask(__name__, static_folder='')
app.config['SECRET_KEY'] = '@server-secret'
# socketio = SocketIO(app, allow_upgrades=True, engineio_logger=log, logger=log)

socketio = SocketIO(app, allow_upgrades=True)
complex_network = ComplexNetwork()
evaluator_controller = EvaluatorController(complex_network=complex_network)


class Socket:
    """
        Class used to emit answer to specific client
    """
    def __init__(self, sid):
        self.sid = sid
        self.connected = True

    # Emits data to a socket's unique room
    def emit(self, event, data):
        print('going to emit to', self.sid)
예제 #25
0
def create_app():
    app = Flask(__name__)
    app.config.from_object(CONFIG_CLASS)

    init_logging()

    socketio = SocketIO(app, cors_allowed_origins="*")

    if os.getenv("FLASK_ENV") == "development":
        app = register_teardown_request(app)

    # read directory mount based config into Flask config
    try:
        conf_data = get_user_conf()
        app.config.update(conf_data)
    except Exception:
        app.logger.warning("Failed to load config.json")

    app.config["ORCHEST_REPO_TAG"] = get_repo_tag()

    # create thread for non-cpu bound background tasks, e.g. requests
    scheduler = BackgroundScheduler(
        job_defaults={
            # Infinite amount of grace time, so that if a task cannot be
            # instantly executed (e.g. if the webserver is busy) then it
            # will eventually be.
            "misfire_grace_time": 2**31,
            "coalesce": False,
            # So that the same job can be in the queue an infinite
            # amount of times, e.g. for concurrent requests issuing the
            # same tasks.
            "max_instances": 2**31,
        })
    app.config["SCHEDULER"] = scheduler
    scheduler.start()

    app.logger.info("Flask CONFIG: %s" % app.config)

    # Create the database if it does not exist yet. Roughly equal to a
    # "CREATE DATABASE IF NOT EXISTS <db_name>" call.
    if not database_exists(app.config["SQLALCHEMY_DATABASE_URI"]):
        create_database(app.config["SQLALCHEMY_DATABASE_URI"])
    db.init_app(app)
    ma.init_app(app)
    # necessary for migration
    Migrate().init_app(app, db)

    with app.app_context():

        # Alembic does not support calling upgrade() concurrently
        if not is_werkzeug_parent():
            # Upgrade to the latest revision. This also takes care of
            # bringing an "empty" db (no tables) on par.
            try:
                upgrade()
            except Exception as e:
                logging.error("Failed to run upgrade() %s [%s]" % (e, type(e)))

            initialize_default_datasources(db, app)

    # Telemetry
    if not app.config["TELEMETRY_DISABLED"]:
        # initialize posthog
        posthog.api_key = base64.b64decode(
            app.config["POSTHOG_API_KEY"]).decode()
        posthog.host = app.config["POSTHOG_HOST"]

        # send a ping now
        analytics_ping(app)

        # and every 15 minutes
        scheduler.add_job(
            analytics_ping,
            "interval",
            minutes=app.config["TELEMETRY_INTERVAL"],
            args=[app],
        )

    # static file serving
    @app.route("/public/<path:path>")
    def send_files(path):
        return send_from_directory("../static", path)

    register_views(app, db)
    register_orchest_api_views(app, db)
    register_background_tasks_view(app, db)
    register_socketio_broadcast(db, socketio)
    register_analytics_views(app, db)

    processes = []

    if not is_werkzeug_parent():

        file_dir = os.path.dirname(os.path.realpath(__file__))

        # log_streamer process
        log_streamer_process = Popen(
            ["python3", "-m", "scripts.log_streamer"],
            cwd=os.path.join(file_dir, ".."),
            stderr=subprocess.STDOUT,
        )

        app.logger.info("Started log_streamer.py")
        processes.append(log_streamer_process)

    return app, socketio, processes
예제 #26
0
import json
import requests

from flask import Flask, render_template, session, request, \
    copy_current_request_context
from flask_socketio import SocketIO, emit, join_room, leave_room, \
    close_room, rooms, disconnect

# Set this variable to "threading", "eventlet" or "gevent" to test the
# different async modes, or leave it set to None for the application to choose
# the best option based on installed packages.
async_mode = None

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app, async_mode=async_mode, message_queue='amqp://')


@app.route('/')
def index():
    return render_template('index.html', async_mode=socketio.async_mode)


@app.route('/send', methods=['POST'])
def send_msg():
    data = request.get_json()
    print(data)
    message = data.get('message', 'Empty response!')
    socketio.emit('my_event', {'data': message}, namespace='/test')

    return {'message': message, 'code': 0}
예제 #27
0
파일: app.py 프로젝트: cortex-labs/sol
from threading import Lock
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
from astropy.coordinates import solar_system_ephemeris, get_body_barycentric
from astropy.time import Time, TimeDelta

SCALE = 100000

solar_system_ephemeris.set('jpl')
app = Flask(__name__)
socketio = SocketIO(app)
thread = None
thread_lock = Lock()


def tick():
    count = 0

    while True:
        t = Time.now() + TimeDelta(86400 * count, format='sec')

        mercury = get_body_barycentric('Mercury', t)
        venus = get_body_barycentric('Venus', t)
        earth = get_body_barycentric('Earth', t)
        mars = get_body_barycentric('Mars', t)
        jupiter = get_body_barycentric('Jupiter', t)

        socketio.emit(
            'tick', {
                'mercury': {
                    'x': round(mercury.x.value / SCALE, 2),
예제 #28
0
from flask import Flask, render_template, session, request
from flask_socketio import SocketIO, emit, join_room, leave_room, \
    close_room, rooms, disconnect
import math
import time
from example import TestThread

async_mode = None
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app, async_mode=async_mode)
thread = None


def background_thread():
    """Example of how to send server generated events to clients."""
    tt = TestThread()
    tt.setDaemon(True)
    tt.start()
    count = 0
    while True:
        count += 1
        socketio.sleep(0.1)
        val = tt.getData()
        print("val")
        print(val)
        socketio.emit('my_response', {
            'data': val,
            'count': count,
            'type': 'sin'
        },
예제 #29
0
from flask import Flask
from flask_cors import CORS
from flask_socketio import SocketIO
from flask_migrate import Migrate

app = Flask(__name__)
CORS(app)
app.config.from_object('config')
socketio = SocketIO(app, cors_allowed_origins='*')
예제 #30
0
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
from canary.analysis import Analysis
from canary.tweets import TweetStream
from canary.crypto import Ticker

BUY_SELL_THRESHOLD = 0.15

app = Flask(__name__, static_folder="web/public", static_url_path="")
socketio = SocketIO(app, async_mode="threading")

bitcoin = Analysis("BTC")
etherium = Analysis("ETH")


def emit_tweet(crypto):
    def f(tweet):
        delta = crypto.process_tweet(tweet)
        if delta == -1:
            return -1
        payload = {
            "tweet": {
                "text": tweet.text,
                "followers": tweet.followers,
                "name": tweet.name,
                "full_name": tweet.full_name,
                "img": tweet.img
            },
            "sentiment": crypto.get_value(),
            "delta": delta
        }