run.py 2.44 KB
Newer Older
1
2
3
# run.py

import os
4
import time
5
6

from app import create_app
7
from flask_socketio import SocketIO
8
from flask import flash
9
10
11

config_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name)
12
app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#'
13
socketio = SocketIO(app)
14
15


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
def messageReceived(methods=['GET', 'POST']):
    print('message was received!!!')


def check_dir(user, interval):
    """
    :param user: (string) username to check for in DB.
    :param interval: (int) Frequency to check in seconds.
    :return: (boolean) if account has been registered.
    """
    seconds = 0

    while seconds < 600:
        querystring = "_" + user + ".done"

        for filename in os.listdir("flat_db/"):
            if filename.endswith(querystring):
                return True
        time.sleep(interval)
        seconds = seconds + interval

    return False


@socketio.on('user connect')
def handle_my_custom_event(json, methods=['GET', 'POST']):
    username = json["user"]
Mitchell Moore's avatar
Mitchell Moore committed
43
    print(time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' connected.')
44
45
46
47


@socketio.on('user data')
def ingest_data(json, methods=['GET', 'POST']):
Mitchell Moore's avatar
Mitchell Moore committed
48
    print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tQueue request received: ' + str(json))
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

    try:
        fullname = json["fullname"]
        reason = json["reason"]
        username = json["username"]

        time_stamp = time.strftime("%m-%d-%Y_%H:%M:%S")
        directory = "flat_db/"
        complete_file_name = os.path.join(directory, time_stamp + "_" + username + ".txt")

        if not os.path.exists(directory):
            os.makedirs(directory)

        file = open(complete_file_name, "w")  # create time stamped file to be queued

        file.write(fullname + "\n")
        file.write(reason)

        file.close()
Mitchell Moore's avatar
Mitchell Moore committed
68
        print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tUser ' + username + ' added to queue')
69
70
71
        socketio.emit("creating account")

    except Exception as e:
Mitchell Moore's avatar
Mitchell Moore committed
72
        print(time.strftime("%m-%d-%Y_%H:%M:%S") + "\tError in directory creation: ", e)
73
74
75
76
77
78
79
80
        socketio.emit("Account creation failed")


@socketio.on("validate creation")
def creation_confirmation(json, methods=['GET', 'POST']):
    username = json["username"]

    if check_dir(username, 10):
Mitchell Moore's avatar
Mitchell Moore committed
81
        print (time.strftime("%m-%d-%Y_%H:%M:%S") + '\tAccount successfully created for ' + username)
82
83
84
85
86
        socketio.emit("Account created")
    else:
        socketio.emit("Account creation failed")


87
if __name__ == '__main__':
88
89
   # app.run()
    socketio.run(app)