def post(self): """Create a new user.""" if not request.form.get('pass'): return Response(status_code=403) me = request.form.get('user', '').lower() if me and not redis.sismember('users', me): redis.sadd('users', me) redis.sadd('users:%s:ugos' % me, me) download_pins(me) return Response(me)
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
def post(self, girl): """Yes. Girl, I'm pinterested in you.""" yes = request.form.get('yes', '').lower() me = request.form.get('me', '').lower() if not (yes or me): return Response(status_code=403) # Girl, I'm pinterested in you. key = 'users:%s:yes' % girl if yes: if not redis.sismember(key, me): redis.sadd(key, me) # Girl, are you pinterested in me? if redis.sismember('users:%s:yes' % me, girl): # Girl, I'm a match for you. key = 'users:%s:match' % girl if not redis.sismember(key, girl): redis.sadd(key, me) key = 'users:%s:match:unread' % girl if not redis.sismember(key, girl): redis.sadd(key, me) # Girl, you're a match for me. key = 'users:%s:match' % me if not redis.sismember(key, me): redis.sadd(key, girl) key = 'users:%s:match:unread' % me if not redis.sismember(key, me): redis.sadd(key, girl) # Girl, I'm over you. redis.sadd('users:%s:ugos' % me, girl) return Response(json.dumps({'success': True}))
def put(self, user): """Update a single user.""" sex_am = request.form.get('sex_am') if sex_am in ('guy', 'gal'): previous = redis.get('users:%s:sex_am' % user) if previous and previous != sex_am: redis.srem('sex_am:%s' % previous, user) redis.set('users:%s:sex_am' % user, sex_am) redis.sadd('sex_am:%s' % sex_am, user) sex_want = request.form.get('sex_want') if sex_want in ('guy', 'gal'): previous = redis.get('users:%s:sex_want' % user) if previous and previous != sex_want: redis.srem('sex_want:%s' % previous, user) redis.set('users:%s:sex_want' % user, sex_want) redis.sadd('sex_want:%s' % sex_want, user) zipcode = request.form.get('zip', '') zipshort = zipcode[:2] previous = redis.get('users:%s:zip' % user) if previous and previous != zipcode: redis.srem('zip:%s' % previous, user) redis.set('users:%s:zip' % user, zipcode) previous = redis.get('users:%s:zipshort' % user) if previous and previous != zipshort: redis.srem('zipshort:%s' % previous, user) redis.set('users:%s:zipshort' % user, zipshort) redis.sadd('zip:%s' % zipcode, user) redis.sadd('zipshort:%s' % zipshort, user) birthday = request.form.get('birthday', '') birthyear = birthday.split('-')[0] previous = redis.get('users:%s:birthyear' % user) if previous and previous != birthyear: redis.srem('birthyears:%s' % previous, user) redis.set('users:%s:birthday' % user, birthday) redis.set('users:%s:birthyear' % user, birthyear) redis.sadd('users:%s:birthday' % birthday, user) redis.sadd('users:%s:birthyear' % birthyear, user) # Birthyear is the score. redis.zadd('birthyears', user, birthyear) return Response()
if __name__ == '__main__': users = ['cassyjmorris', 'j1l1b1', 'melaniexeinalem', 'juliettesierra', 'samanthakiser7', 'crisssy101', 'hollyrob92', 'tollilolly', 'elisemckenna', 'banebakken', 'callmemonalisa', 'mwindebank', 'cjdal16', 'chrisem'] random.shuffle(users) try: users = users[:int(sys.argv[1])] except (IndexError, ValueError): pass redis.flushdb() for user in users: redis.sadd('users', user.strip()) download_pins(user) print 'Imported %s users' % len(users)
def download_pins(user): pins = scrape_pins(user) for url in pins['pins']: redis.sadd('users:%s:pins' % user, url) return pins
import random import sys from common import redis from pinscrape import download_pins if __name__ == '__main__': users = [ 'cassyjmorris', 'j1l1b1', 'melaniexeinalem', 'juliettesierra', 'samanthakiser7', 'crisssy101', 'hollyrob92', 'tollilolly', 'elisemckenna', 'banebakken', 'callmemonalisa', 'mwindebank', 'cjdal16', 'chrisem' ] random.shuffle(users) try: users = users[:int(sys.argv[1])] except (IndexError, ValueError): pass redis.flushdb() for user in users: redis.sadd('users', user.strip()) download_pins(user) print 'Imported %s users' % len(users)
def add(self, peer): host, port = peer return redis.sadd(self.key, port)