-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.py
67 lines (62 loc) · 1.68 KB
/
server.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from flask import Flask, render_template, jsonify, request
import json
import time
import thread
from threading import Lock
app = Flask(__name__)
words = []
tweets = {}
id = 0
mutex = Lock()
@app.route("/")
def main():
return render_template('index.html')
@app.route('/getWords')
def getWords():
mutex.acquire()
ret = words
mutex.release()
return json.dumps(ret)
@app.route('/getWordData')
def getWordData():
requestID = int(request.args['id'])
#print(requestID)
#print(tweets)
if requestID in tweets:
ret = tweets[requestID]
return json.dumps(ret)
else:
return "error"
# thread to collect data
def getDataJson( threadName, delay):
interval = 10
global id, tweets, words
while True:
try:
mutex.acquire()
with open('sample.txt') as f:
if id > 250:
id = 0
tweets = {}
words = []
for line in f:
#print(line)
a = json.loads(line)['trends']
for word in a:
tweets[id] = word['tweets']
del word['tweets']
word['id'] = id
words.append(word)
id += 1
mutex.release()
time.sleep(interval)
except IOError, e:
print 'No such file or directory: %s' % e
time.sleep(interval)
if __name__ == "__main__":
extra_dirs = ['/templates',]
try:
thread.start_new_thread( getDataJson, ("Thread-1", 2, ) )
except:
print "Error: unable to start thread"
app.run(debug=True)