forked from GTACoop/GTACoop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
49 lines (39 loc) · 1.05 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
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
43
44
45
46
47
48
49
import sys
if sys.version_info >= (3, 0):
sys.stdout.write("This app requires Python 2.X")
sys.exit(1)
import flask
import threading
from datetime import datetime
from json import dumps
from os import environ
from waitress import serve
from time import sleep
app = flask.Flask(__name__)
servers = {}
@app.route('/', methods=['GET', 'POST'])
def index():
global servers
if flask.request.method == 'POST':
dejson = {'port': flask.request.data}
print(dejson['port'])
srvString = flask.request.remote_addr + ':' + dejson['port']
servers[srvString] = datetime.now()
return '200'
else:
return dumps({"list":servers.keys()})
def checkThread():
print('cleaning list...')
for server in dict(servers):
date = servers[server]
if (datetime.now() - date).total_seconds() > 10*60:
del servers[server]
sleep(10*60)
checkThread()
if __name__ == '__main__':
t = threading.Thread(target=checkThread)
t.daemon = True
t.start()
app.debug = True #InDev ONLY
#serve(app, port=int(environ['PORT'])) #For deployment
app.run() #Run our app. #InDev ONLY