示例#1
0
    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))
示例#2
0
    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))
示例#3
0
文件: main.py 项目: makoto1016/vsq
    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}))
示例#4
0
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"])
示例#5
0
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"])
示例#6
0
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()