class MainModel(object): def __init__(self): self.user = UserModel() def add_user(self, user_form): is_exists = self.user.is_exists(user_form["nickname"], user_form["email"]) if is_exists: return False else: self.user.add(nickname=user_form["nickname"], email=user_form["email"], password=user_form["hash"]) return True def get_user(self, login_form): data = self.user.get(email=login_form["email"]) if not data: return False user = data[0] user_dict = { "nickname": user[1], "password": user[3] } if user_dict["password"] == login_form["hash"]: return user_dict["nickname"] else: return False
def tagimage(self, imageurl, pageid, latcoord, longcoord, hood, username): imageurl = util.convertimageurl(imageurl) query = db.GqlQuery("SELECT * FROM ImageModel where imageurl = :1", imageurl) image = query.get() if image is None: image = ImageModel(usernameupdated=username, imageurl=imageurl, pageid=int(pageid), latcoord=latcoord, longcoord=longcoord, neighborhood=hood) else: image.usernameupdated = username image.imageurl = imageurl image.pageid = int(pageid) image.latcoord = latcoord image.longcoord = longcoord image.neighborhood = hood try: image.put() user = util.getuser(username) if (user is not None): user.count = user.count + 1 else: user = UserModel(username=username, count=1) user.put() return True except Exception, err: logging.error(str(err)) return False
class MainModel(object): def __init__(self): self.user = UserModel() def add_user(self, user_form): is_exists = self.user.is_exists(user_form["nickname"], user_form["email"]) if is_exists: print "Signup error: User is already exists" return False else: self.user.add(nickname=user_form["nickname"], email=user_form["email"], password=user_form["passwd"]) return True def get_user(self, login_form): data = self.user.get(email=login_form["login"]) if not data: print "Login error: Empty data" return False user = data[0] user_dict = { "nickname": user[1], "password": user[3] } if user_dict["password"] == login_form["passwd"]: return user_dict else: return False
def adduser(self, username): user = util.getuser(username) if (user is not None): return False user = UserModel(username=username, count=0) try: user.put() return True except Exception, err: logging.error(str(err))
def ignoreimage(self, imageurl, username): imageurl = util.convertimageurl(imageurl) try: user = util.getuser(username) if (user is not None): user.count = user.count + 1 else: user = UserModel(username=username, count=1) user.ignored_images.append(imageurl) user.put() return True except Exception, err: logging.error(str(err)) return False
def get(self): ageLimit = datetime.datetime.now() - datetime.timedelta(days=1) targetUsersQuery = UserModel.query(UserModel.updated < ageLimit) targetUsers = targetUsersQuery.iter() for targetUser in targetUsers: if not targetUser.verified: Unique.delete_multi( ["UserModel.auth_id:" + targetUser.auth_ids[0], "UserModel.email:" + targetUser.email]) targetUser.deleteAllMessages() targetUser.getKey()[0].key.delete() targetUser.key.delete() self.response.write(RESPONSE_OK)
def get(): data = request.get_json() # Richiede i dati di login, ovvero nome utente e password if not data['email'] and not data['password']: return {"Error": "Bad request"}, 400 user = UserModel(data['email']) # confronta i dati inseriti con quelli presenti nel database if not check_password_hash(user.password, data['password']): return {"Error": "Unauthorized"}, 401 # ritorna un token jwt con le info prescelte return {"token": sign_token()}, 200
def traffic(audience_json, Ni, exploration_rate=DEFAULT_EXPLORATION_RATE): Ne = int(Ni * exploration_rate) Na = Ni - Ne audience = json.loads(audience_json) user_model = UserModel() audience_users = user_model.filter(audience, limit=Na) exploratory_users = user_model.exclude(audience, limit=Ne) if len(audience_users) == 0 and Ni != 0: raise ValueError("No users match this audience: %s" % repr(audience)) if len(exploratory_users) == 0 and exploration_rate != 0: raise ValueError("No users exist outside of this audience: %s" % repr(audience)) FIELDS = "Impressions, Active views, Clicks, Conversions".split(', ') ### with transaction: # FIXME response = defaultdict(int) for N, users in [(Na, audience_users), (Ne, exploratory_users)]: for _ in xrange(N): # Pick a user, and update their event values u = random.choice(users) # FIXME - implement frequency capping for field, b_event in zip(FIELDS, u.impress()): response[field] += b_event ### End transaction ### return json.dumps(response)
def writescores(self, count): #do a gql query to get the top [count] users by scores desc q = UserModel.all() q.order('-count') results = q.fetch(int(count)) logging.info(results) rank = 1 a = [] for user in results: b = ('user', [('username', user.username), ('score', user.count), ('neighborhood', user.neighborhood)], { 'rank': rank }) a.append(b) rank = rank + 1 c = ('response', [('users', a, {'page': count, 'found': rank - 1})]) self.response.out.write(util.toxml(c))
def writescores(self, count): # do a gql query to get the top [count] users by scores desc q = UserModel.all() q.order("-count") results = q.fetch(int(count)) logging.info(results) rank = 1 a = [] for user in results: b = ( "user", [("username", user.username), ("score", user.count), ("neighborhood", user.neighborhood)], {"rank": rank}, ) a.append(b) rank = rank + 1 c = ("response", [("users", a, {"page": count, "found": rank - 1})]) self.response.out.write(util.toxml(c))
def get(self): ageLimit = datetime.datetime.now() - datetime.timedelta(days=1) targetUsersQuery = UserModel.query(UserModel.updated < ageLimit) targetUsers = targetUsersQuery.iter() for targetUser in targetUsers: if not targetUser.verified: try: logging.info("Deleted user: "******"UserModel.auth_id:" + targetUser.auth_ids[0], "UserModel.email:" + targetUser.email]) try: targetUser.getKey().key.delete() except IndexError: logging.info("Missing key: " + str(targetUser.auth_ids)) targetUser.key.delete() except Exception as error: logging.error("Error " + str(type(error)) + " " + str(error) + " " + str(error.message)) self.response.write(RESPONSE_OK)
def post(): data = request.get_json() if not data['email'] and not data['password'] and not data[ 'name'] and not data['surname']: return {"Error": "Bad request"}, 400 data['password'] = generate_password_hash(data['password']) user = UserModel(data['email']) user.name = data['name'] user.surname = data['surname'] user.password = data['password'] try: user.push() except KeyError: return {"Error": "Server error"}, 500 except FileExistsError: return {"Error": "Email already in the database"}, 400 return {"Msg": "inserito utente"}, 200
class ChatModel(object): def __init__(self): self.user = UserModel() def get_user(self, nickname): self.user.get(nickname=nickname)
def getuser(username): # get user details from datastore here return UserModel.gql("WHERE username=:1", username).get()
def getuser(username): # get user details from datastore here return UserModel.gql("WHERE username=:1",username).get()
def __init__(self): self.user = UserModel()