예제 #1
0
파일: app.py 프로젝트: cvan/projoooce
 def get(self, me):
     """Who's pinterested in me?"""
     if 'unread' in request.values:
         key = 'users:%s:match:unread' % me
         unread = list(redis.smembers(key))
         redis.delete(key)
         return unread
     else:
         return list(redis.smembers('users:%s:match' % me))
예제 #2
0
파일: app.py 프로젝트: cvan/projoooce
 def get(self, me):
     """Who's pinterested in me?"""
     if 'unread' in request.values:
         key = 'users:%s:match:unread' % me
         unread = list(redis.smembers(key))
         redis.delete(key)
         return unread
     else:
         return list(redis.smembers('users:%s:match' % me))
예제 #3
0
파일: app.py 프로젝트: potch/projoooce
def pins(user=None, limit=5):
    user = None
    users = set()

    me = request.values.get('me')
    if me:
        users = redis.sdiff('users', 'users:%s:ugos' % me)
    else:
        users = redis.smembers('users')

    if users:
        # Filter by location.
        zipshort = redis.get('users:%s:zipshort' % me)
        users = users & redis.smembers('zipshort:%s' % zipshort)

        # Filter by sex. Yes, please.

        # This person wants my sex.
        sex_am = redis.get('users:%s:sex_am' % me)
        users = users & redis.smembers('sex_want:%s' % sex_am)

        # I want this person's sex.
        sex_want = redis.get('users:%s:sex_want' % me)
        users = users & redis.smembers('sex_am:%s' % sex_want)

        # Filter by users within my age range (+/- 10 years).
        try:
            age = int(redis.get('users:%s:birthyear' % me))
        except ValueError:
            pass
        else:
            geezers = redis.zrangebyscore('birthyears', '-inf', age - 11)
            premies = redis.zrangebyscore('birthyears', age + 11, '+inf')
            users = users - set(geezers) - set(premies)

        if users:
            users = list(users)
            random.shuffle(users)
            users = users[:limit]

    data = []
    remaining = len(users)
    for user in users:
        pins = get_pins(user)
        pins['remaining'] = remaining
        remaining -= 1
        data.append(pins)
        print user  # Nice to know.
    return data
예제 #4
0
파일: app.py 프로젝트: cvan/projoooce
def pins(user=None):
    user = None
    users = set()

    me = request.values.get('me')
    if me:
        users = redis.sdiff('users', 'users:%s:ugos' % me)
    else:
        users = redis.smembers('users')

    if users:
        # Filter by location.
        zipshort = redis.get('users:%s:zipshort' % me)
        users = users & redis.smembers('zipshort:%s' % zipshort)

        # Filter by sex. Yes, please.

        # This person wants my sex.
        sex_am = redis.get('users:%s:sex_am' % me)
        users = users & redis.smembers('sex_want:%s' % sex_am)

        # I want this person's sex.
        sex_want = redis.get('users:%s:sex_want' % me)
        users = users & redis.smembers('sex_am:%s' % sex_want)

        # Filter by users within my age range (+/- 10 years).
        try:
            age = int(redis.get('users:%s:birthyear' % me))
        except ValueError:
            pass
        else:
            geezers = redis.zrangebyscore('birthyears', '-inf', age - 11)
            premies = redis.zrangebyscore('birthyears', age + 11, '+inf')
            users = users - set(geezers) - set(premies)

        if users:
            users = list(users)
            random.shuffle(users)
            user = users[0]

    print user  # Nice to know.
    if user:
        pins = get_pins(user)
        pins['remaining'] = len(users)
        return pins
    else:
        return {}
예제 #5
0
def get_pins(user, force=False):
    pins = redis.smembers('users:%s:pins' % user)
    if force or not pins:
        print 'From pinterest ...'
        return download_pins(user)
    else:
        print 'From redis ...'
        return {'user': user, 'pins': list(pins)}
    def get(self):
        ports = redis.smembers(self.key)
        ports = [int(port) for port in list(ports)]
        peers = set([('127.0.0.1', port) for port in ports])

        # remove self
        myself = ('127.0.0.1', self.my_port)
        if myself in peers:
            peers.remove(myself)
        return peers
예제 #7
0
파일: app.py 프로젝트: cvan/projoooce
    def get(self, user):
        def get_data(user):
            data = {}
            for field in ('sex_am', 'sex_want', 'zip', 'birthday'):
                data[field] = redis.get('users:%s:%s' % (user, field))
            return data

        if user:
            # Return data for a single user.
            return get_data(user)
        else:
            # Return data for all users.
            data = {}
            for user in redis.smembers('users'):
                data[user] = get_data(user)
            return data
예제 #8
0
파일: app.py 프로젝트: cvan/projoooce
    def get(self, user):
        def get_data(user):
            data = {}
            for field in ('sex_am', 'sex_want', 'zip', 'birthday'):
                data[field] = redis.get('users:%s:%s' % (user, field))
            return data

        if user:
            # Return data for a single user.
            return get_data(user)
        else:
            # Return data for all users.
            data = {}
            for user in redis.smembers('users'):
                data[user] = get_data(user)
            return data
예제 #9
0
파일: tweets.py 프로젝트: cvan/mula
def build_synonyms():
    for mood in moods:
        # Notice that the original mood word is returned by `synsets`.
        cached = redis.smembers('synonyms:%s' % mood)
        if cached:
            # This is already in redis DB, so we're good.
            mood_synonyms[mood] = cached
        else:
            synonyms = get_synonyms(mood)
            if mood in mood_roots:
                for root in mood_roots[mood]:
                    synonyms += get_synonyms(root)

            # Make this a sorted alphabetical list of unique synonyms.
            synonyms = sorted(list(set(synonyms)))
            # Remove any blank values.
            synonyms = filter(None, synonyms)

            # Store it in redis DB, so we don't have to a lookup next time.
            for synonym in synonyms:
                redis.sadd('synonyms:%s' % mood, synonym)

            mood_synonyms[mood] = synonyms