-
Notifications
You must be signed in to change notification settings - Fork 0
/
voting_script2.py
65 lines (49 loc) · 1.64 KB
/
voting_script2.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
import sys, requests, random, time, json, numpy
SERVERS = {
'localhost' : 'localhost:3000',
'dev' : 'lytit-dev.herokuapp.com',
'stage' : 'lytit-stage.herokuapp.com',
'prod' : 'lytit-prod.herokuapp.com'
}
USER_TOKEN = "012b5c949996f20ce537b43fb88b5aad"
def vote(server='localhost', user=USER_TOKEN, interval=10):
flag = -1
server_url = "http://" + SERVERS[server]
print "Pointing to %s\n" % server_url
while True:
r = requests.get(server_url + "/api/v1/bar/position")
bar = r.json()['bar_position']
print "bar position: %f" % bar
venue_id = random.randint(13851, 14850)
probs = []
if venue_id >= 13851 and venue_id < 14184:
probs = [0.2, 0.8]
elif venue_id >= 14184 and venue_id < 14517:
probs = [0.5, 0.5]
else:
probs = [0.8, 0.2]
is_up_vote = numpy.random.choice([True, False], p=probs)
vote = None
if is_up_vote:
vote = bar + 0.1
else:
vote = bar - 0.1
print "current vote: %f" % vote
vote_json = {"auth_token" : user, "rating" : vote, "venue_id" : venue_id}
headers = {'content-type': 'application/json'}
req = requests.post((server_url + "/api/v1/venues/%s/vote") % venue_id, data=json.dumps(vote_json), headers=headers)
if req.status_code == 200:
print req.json()
else:
print "could not vote, error: " + str(req.status_code) + "detail: " + str(req.json())
time.sleep(interval)
if __name__ == "__main__":
if len(sys.argv) < 4:
print 'Usage: python voting_script.py localhost|dev|stage|prod <USER_TOKEN> <INTERVAL>'
sys.exit(1)
print 'Press CTRL+C to exit...\n'
try:
vote(sys.argv[1], sys.argv[2], int(sys.argv[3]))
except KeyboardInterrupt:
print '\n\nBye :)'
sys.exit(0)