Exemple #1
0
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
Exemple #4
0
	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
Exemple #5
0
	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))
Exemple #6
0
    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
Exemple #8
0
	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
Exemple #9
0
 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)
Exemple #10
0
    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
Exemple #11
0
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)
Exemple #12
0
    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))
Exemple #13
0
    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))
Exemple #14
0
    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)
Exemple #15
0
    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)
Exemple #17
0
def getuser(username):
    # get user details from datastore here
    return UserModel.gql("WHERE username=:1", username).get()
Exemple #18
0
def getuser(username):
	# get user details from datastore here
	return UserModel.gql("WHERE username=:1",username).get()
	def __init__(self):
		self.user = UserModel()