deprecated-broadcast-channel.py (975B)
1 import json 2 import time 3 def main(request, response): 4 uid = request.GET.first(b"uid") 5 name = request.GET.first(b"name") 6 time.sleep(0.1) 7 8 messagesByName = [] 9 if request.method == 'POST': 10 with request.server.stash.lock: 11 messages = request.server.stash.take(uid) or {} 12 if name in messages: 13 messagesByName = messages[name] 14 15 messagesByName.append(json.loads(request.body)) 16 messages[name] = messagesByName 17 request.server.stash.put(uid, messages) 18 response.status = 204 19 else: 20 with request.server.stash.lock: 21 messages = request.server.stash.take(uid) or {} 22 if name in messages: 23 messagesByName = messages[name] 24 25 request.server.stash.put(uid, messages) 26 response.status = 200 27 response.headers['Content-Type'] = 'application/json' 28 response.content = json.dumps(messagesByName)