def post(self, path): """Broadcasts all moves.""" message = websocket.Message(self.request.POST) data = simplejson.loads(message.body) state = data.get("state") x = data.get('x') y = data.get('y') players = memcache.get(PLAYERS_INDEX_KEY) or [] if state == PLAYER_MOVED: replace = {path: [x, y]} if path not in players: players.append(path) replace[PLAYERS_INDEX_KEY] = players memcache.replace_multi(replace) response = {'state': PLAYER_MOVED, 'player': path, 'x': x, 'y': y} elif state == PLAYER_LEFT or not data: memcache.delete(path) if path in players: players.remove(path) memcache.replace(PLAYERS_INDEX_KEY, players) response = {'state': PLAYER_LEFT, 'player': path} websocket.broadcast_message(simplejson.dumps(response))
def testReplaceMulti(self): """Tests setting multiple keys when policy is REPLACE.""" self.assertTrue(memcache.set(self.key1, self.value1)) self.assertEqual(memcache.get(self.key1), self.value1) mapping = { self.key1: self.value2, self.key2: self.value2, } self.assertEqual([self.key2], memcache.replace_multi(mapping)) self.assertEqual(self.value2, memcache.get(self.key1)) self.assertEqual(None, memcache.get(self.key2))
def post(self): editor = memcache.get("vsq_editor") file_name = memcache.get("vsq_name") rules = [zuii_rule, san_rule, port_rule, n_accent_rule] cands = editor.get_rule_cands(*rules) select_ids = self.request.get_all("rule") for c in cands: if c['id'] in select_ids: editor.apply_rule(c) else: editor.unapply_rule(c) memcache.replace_multi( { "editor": editor,"name": file_name }, time=3600, key_prefix="vsq_" ) dyn_list = [[p['time'],p['value']] for p in editor.get_dynamics_curve()] pit_list = [[p['time'],p['value']] for p in editor.get_pitch_curve()] self.response.content_type = 'application/json' self.response.out.write(json.dumps({'dyn':dyn_list,'pit':pit_list}))
def replace_multi(mapping, time=0, key_prefix='', min_compress_len=0): return memcache.replace_multi(mapping, time, key_prefix, min_compress_len, namespace=os.environ["CURRENT_VERSION_ID"])
def replace_multi(mapping, time=0, key_prefix="", min_compress_len=0, namespace=None): if enabled: return memcache.replace_multi(mapping, time, key_prefix, namespace=namespace) return mapping.keys()