Example #1
0
def register():
    try:
        body = request.form
        user_email = body['user_email']
        user_name = body['user_name']
        user_password = bcrypt.generate_password_hash(
            body['user_password']).decode('utf-8')
        user = User.query.filter_by(user_email=user_email).first()
        if user:
            message = 'Error: Account already created with that email!'
            return render_template('sign_up.html',
                                   message=message,
                                   mes_color="PaleVioletRed")
        elif not user:
            new_user = User(user_email, user_name, user_password)
            if new_user.save():
                log_register_user(user_name, user_email)
            message = "Account registered, Thank you!"
            return render_template('/login.html',
                                   message=message,
                                   mes_color="greenyellow")
        else:
            message = 'Error: Problem creating account!'
            return render_template('sign_up.html',
                                   message=message,
                                   mes_color="PaleVioletRed")
    except Exception as e:
        return render_template('sign_up.html')
Example #2
0
def setup():

    step = request.args.get("step", type=int)
    RES = request.values
    if step == 1:
        return render_template("setup1.html")
    elif step == 2:

        host = RES.get('host', '')
        username = RES.get('username', '')
        passwd = RES.get('passwd', '')
        dbname = RES.get('dbname', '')
        port = RES.get('port', '')

        url = 'postgresql+psycopg2://%s:%s@%s:%s/%s' % (username, passwd, host,
                                                        port, dbname)
        try:
            engine_ = create_engine(url)
            connection = engine_.connect()
        except:
            return render_template("setup-error.html", code=3)

        create_config(username, passwd, host, port, dbname)
        if os.path.exists(filename):
            from models.model import createall
            createall(engine_)
            return render_template("setup2.html")
        return render_template("setup-error.html", code=3)

    elif step == 3:
        login_id = RES.get('login_id', '')
        passwd = RES.get('passwd', '')
        try:
            from models.model import DBSession, User
            session = DBSession()
            user = session.query(User).filter_by(username=login_id).first()
            if user is not None:

                session.query(User).filter(User.username == login_id).update(
                    {"password": passwd})
                session.commit()
                session.close()
                return render_template('setup.html', code=0)
            user = User()
            user.username = login_id
            user.nickname = login_id
            user.password = passwd

            session.add(user)
            session.commit()
            session.close()

            return render_template('setup.html', code=0)
        except:
            return render_template('setup.html', code=3)
    return render_template('install.html')
Example #3
0
 def create(first_name, last_name, username, email, password):
     id = str(uuid.uuid4())
     new_user = User(id=id,
                     first_name=first_name,
                     last_name=last_name,
                     email=email,
                     bid_count=100,
                     password=password)
     new_user.add()
     return new_user
Example #4
0
def api_get_users(*, page='1'):
    page_index = get_page_index(page)
    num = yield from User.findNumber('count(id)')
    p = Page(num, page_index)
    if num == 0:
        return dict(page=p, users=())
    users = yield from User.findAll(orderBy='created_at desc', limit=(p.offset, p.limit))
    for u in users:
        u.passwd = '******'
    return dict(page=p, users=users)
Example #5
0
def add_user():
    user1 = User('张三', 'zhangsan', 'password', 1, '1111', 1)
    user2 = User('李四', 'lisi', 'password', 0, '1111', 0)

    db.session.add(user1)
    db.session.add(user2)

    db.session.commit()
    db.session.close()

    return "<p>add succssfully!"
Example #6
0
def create_user(username, password):
    if check_username_exists(username):
        print("username is taken")
        return False
    user = User()
    record = User(username=username,
                  account=login_session['account_num'],
                  password_hash=user.hash_password(password))
    db.session.add(record)
    db.session.commit()
    print("user has bee successfully created")
    return True
Example #7
0
def start(message):
    if message.text == START_KB['start']:
        txt = START_PAGE
    else:
        txt = START_HELLO
    bot.send_message(message.chat.id, txt, reply_markup=root_kb_mk)

    User.upsert_user(
        telegram_id=message.from_user.id,
        username=message.from_user.first_name,
        fullname=f'{message.from_user.username} {message.from_user.last_name}',
        create_user=datetime.datetime.now())
Example #8
0
def signup():
    form = SignUpForm()
    if form.validate_on_submit():
        new_user = User(name=form.name.data, username=form.username.data,
                        email=form.email.data)
        new_user.set_password(form.password.data)
        flash(
            f'Hey {form.username.data.capitalize()}, you have successfully created a new account! Please login to create and buy events.', 'success')
        db.session.add(new_user)
        db.session.commit()
        return redirect(url_for('index'))

    return render_template('signup.html', form=form)
Example #9
0
def user_contact(message):
    phone_usr = message.contact.phone_number
    User.upsert_user(telegram_id=message.from_user.id, phone_number=phone_usr)

    cart = Cart.get_cart(message.from_user.id)
    cart.confirmed_cart(is_archived=True,
                        type_delivery='Адресная доставка',
                        confirmed_date=datetime.datetime.now())
    bot.send_message(
        message.from_user.id,
        text=
        f"В ближайшее время с Вами свяжется наш менеджер для принятия заказа",
        reply_markup=root_kb_mk)
Example #10
0
    def authorize():
        try:
            token = viarezo.authorize_token()
        except Exception:
            return jsonify({"msg": "error"}), 400
        if token is None:
            return "Access denied: reason=%s error=%s resp=%s" % (
                request.args["error"],
                request.args["error_description"],
                token,
            )
        session["viarezo_token"] = (token, "")
        me = viarezo.get(app.config["VIAREZO_ME_PATH"])
        email = me.data["email"]
        db.connect(reuse_if_open=True)
        users = User.select().where(User.email == email)
        db.close()
        if len(users) > 0:
            user = users[0]
        else:
            first_name = me.data["firstName"]
            last_name = me.data["lastName"]
            user = UserService.create_user(me.data)

        identity = {"id": user.id, "admin": user.admin}
        response = {
            "access_token": create_access_token(identity=identity),
            "refresh_token": create_refresh_token(identity=identity),
        }
        return jsonify(response), 200
Example #11
0
def login():
    if request.method == 'GET':
        return render_template('login.html')
    request_data = request.get_data()
    try:
        user_data = json.loads(request_data)
        user_email = user_data['email']
        user_pass = user_data['password']
        if len(user_email) < 3 or len(user_email) > 50:
            raise error.LenUserError
        if len(user_pass) < 5 or len(user_pass) > 10:
            raise error.LenPassError
    except error.LenUserError:
        return json.dumps({'Message': 'Invalid email'}), 400
    except error.LenPassError:
        return json.dumps({'Message': 'Invalid password'}), 400
    user = User.query.filter_by(email=user_email).first()
    if user:
        if User.check_password(user.password, user_pass):
            user_log = {
                'id': user.id,
                'email': user.email,
                'password': user.password
            }
            auth_token = jwt_token.encode(user_log)
            return json.dumps({'auth_token': auth_token})
        else:
            return json.dumps({'Message': 'password incorrect'}), 400
    else:
        return json.dumps({'Message': 'email not found'}), 404
    return redirect(url_for('/'))
Example #12
0
def register():
    request_data = request.get_data()
    try:
        user_data = json.loads(request_data)
        user_fname = user_data['first_name']
        user_lname = user_data['last_name']
        user_name = user_data['username']
        user_email = user_data['email']
        user_pass = user_data['password']
        if len(user_name) < 3 or len(user_name) > 50:
            raise error.LenUserError
        if len(user_email) < 3 or len(user_email) > 255:
            raise error.LenEmailError
        if len(user_pass) < 5 or len(user_pass) > 10 or ' ' in user_pass:
            raise error.LenPassError
        exist_user_email = User.query.filter_by(email=user_email).first()
        if exist_user_email:
            raise error.ExistError2
    except error.LenUserError:
        return json.dumps({'Message': 'Invalid name'}), 400
    except error.LenEmailError:
        return json.dumps({'Message': 'Invalid email'}), 400
    except error.LenPassError:
        return json.dumps({'Message': 'Invalid password'}), 400
    except error.ExistError2:
        return json.dumps({'Message': 'Email existed'}), 400
    user_pass = User.set_password(user_pass)
    user = UserController.create(user_fname, user_lname, user_name, user_email,
                                 user_pass)
Example #13
0
def index():
    if 'session_token' in session:
        session_token = session['session_token']
        if User.auth_master_user_session_token(session_token):
            return show_monthly_grocery()

    return redirect(url_for('sign_in_master'))
Example #14
0
 def test_teacher_course_get_fail(self):
     user = User(id=4, username="******", password=hash_password("password"), firstname="firstname", lastname="lastname", role="teacher")
     db.session.add(user)
     db.session.commit()
     credentials = b64encode(b"fail:password")
     test = self.client.get("/course", headers={"Authorization": f"Basic {credentials}"})
     self.assertEqual(404, test.status_code)
    def post(self):
        args = UserLogin.parser.parse_args()
        try:
            current_user = User.find_by_email(args['email'])
            # search database for person with this email
            if not current_user:
                return {
                    'message': 'User {} doesn\'t exist'.format(args['email'])
                }, 400

            if verify_password(args['password'], current_user.password_hash):
                # access_token = create_access_token([current_user.email_address, current_user.id], expires_delta=datetime.timedelta(hours=1))
                # refresh_token = create_refresh_token(identity=args['name'])
                # my_secret = ''.join([random.choice(string.ascii_letters + string.digits) for n in range(32)])
                # secret.append(my_secret)
                # messageId = twizo_request(current_user.phone_number)
                # credentials = [messageId, current_user.email_address, current_user.id]
                # secret.append(messageId)
                access_token = create_access_token(
                    args['email'], expires_delta=datetime.timedelta(hours=3))
                return {
                    'message':
                    'Logged in as {}'.format(current_user.email_address),
                    'access_token': access_token
                    # 'message': 'Passed first factor.',
                    # 'credentials': credentials
                }
            else:
                return {'message': 'Wrong credentials'}, 400
        except:
            print(traceback.format_exc())
            return {'message': 'An error occured'}, 400
Example #16
0
 def test_user_delete(self):
     user = User(id=3, username="******", password=hash_password("password"), firstname="firstname", lastname="lastname", role="student")
     db.session.add(user)
     db.session.commit()
     credentials = b64encode(b"delete:password")
     test = self.client.delete("/user", headers={"Authorization": f"Basic {credentials}"})
     self.assertEqual(204, test.status_code)
    def get(self):
        email = request.args.get('email')
        print(email)

        try:
            existing_user = User_Model.find_by_email(email)
            if not existing_user:
                return {
                    'message': 'This user is not found in the database.'
                }, 400

            else:
                user_details = json.loads(
                    json.dumps({
                        'name': existing_user.name,
                        'email_address': existing_user.email_address,
                        'user_level': existing_user.user_level,
                        'phone_number': existing_user.phone_number,
                        'has_telegram': existing_user.has_telegram,
                        'point': existing_user.point,
                        'gems': existing_user.gems,
                        'created_on': existing_user.created_on,
                        'id': existing_user.id
                    }))
                return {
                    'message': 'Found user.',
                    'user_details': user_details
                }, 200
        except:
            print(traceback.format_exc())
            return {
                'message':
                'An error occurred. Check console for error message.'
            }, 400
Example #18
0
    def create_user(username: str, email: str, phone: str,
                    avatar_url: str) -> User:
        """
        Create a new user.

        Args :
            data = {username, email, phone, avatar_url}
        """
        old_user = (db.session.query(User).filter(
            or_(User.email == email, User.phone == phone)).first())
        if old_user:
            json_abort(
                409,
                f"User already exists. We do not allow for duplicate phones, emails, or usernames.",
            )
        user = User(
            username=username,
            email=email,
            phone=phone,
            avatar_url=avatar_url,
            calorie=0,
        )
        db.session.add(user)
        db.session.commit()

        return user
Example #19
0
def authenticate_master():
    password = request.form['password']
    session_token = User.auth_master_user(password)
    if session_token:
        session['session_token'] = session_token
        return redirect(url_for('index'))

    return 'Wrong password!'
Example #20
0
    def setUp(self):
        db.create_all()
        db.session.commit()
        student = User(id=11, username="******", password=hash_password("password"), firstname="firstname",
                       lastname="lastname",
                       role="student")

        db.session.add(student)
        teacher = User(id=12, username="******", password=hash_password("password"), firstname="firstname",
                       lastname="lastname",
                       role="teacher")
        course = Course(id=11, title="title", filling="filling", creator_id=teacher.id)
        course2 = Course(id=12, title="title1", filling="filling1", creator_id=teacher.id)
        db.session.add(teacher)
        db.session.add(course)
        db.session.add(course2)
        db.session.commit()
Example #21
0
 def test_user_put(self):
     user = User(id=4, username="******", password=hash_password("password"), firstname="firstname", lastname="lastname", role="student")
     db.session.add(user)
     db.session.commit()
     credentials = b64encode(b"username:password")
     test = self.client.put("/user", headers={"Authorization": f"Basic {credentials}"}, data={"firstname": "testf", "lastname": "testl", "username": "******", "password": "******"})
     print(test.data)
     self.assertEqual(200, test.status_code)
Example #22
0
    def checkout_step_4(self, user_id, response_email):

        User.update_user(user_id, email=response_email)
        User.set_step_checkout(user_id, 4)

        Cart.archive_cart(user_id)

        # For Test
        user = User.get_user(user_id)

        mes = (f'Вот что ты ввел \n'
               f'Name: {user.username} \n'
               f'Phone: {user.phone_number} \n'
               f'email: {user.email} \n')

        self.send_message(user_id,
                          'Заказ оформлен. С вами свяжется наш Менеджер')
        self.send_message(user_id, mes)
Example #23
0
 def get(self):
     username=self.request.get('username')
     userpwd=self.request.get('userpwd')
     jokeid=self.request.get('jokeid')
     website=self.request.get('website')
     joke=NewJoke.get_by_key_name(jokeid)
     msg=''
     if not joke:
         self.response.out.write(u'该条笑话在服务器上已经删除。')
         return
     user=User.get_by_key_name('u'+username)
     if not user:
         self.response.out.write(u'用户不存在。')
         return
     elif user.pwd!=userpwd:
         self.response.out.write(u'用户密码错误。')
         return
     else:
         joke.joke=html_parser.unescape(joke.joke).replace('<br/>','\n')
         if 'sina' in website:
             text=joke.joke
             isSuccess=False
             while text:
                 if sinaWeibo.sendWeibosina(username,user.sinaSecret,user.sinaExpires,text[:90]+sinawebtext):
                     isSuccess=True
                 text=text[90:]
             if isSuccess:
                 msg+=u'新浪微博发送成功。'
             else:
                 msg+=u'新浪微博发送失败。'
         if 'wy' in website:
             text=joke.joke
             isSuccess=False
             while text:
                 if wyWeibo.sendWeibowy(user.wyToken,user.wySecret,text[:90]+wywebtext):
                     isSuccess=True
                 text=text[90:]
             if isSuccess:
                 msg+=u'网易微博发送成功。'
             else:
                 msg+=u'网易微博发送失败。'
         if 'teng' in website:
             text=joke.joke
             isSuccess=False
             while text:
                 if tengWeibo.sendWeiboteng(user.tengToken,user.tengSecret,text[:90]+tengwebtext):
                     isSuccess=True
                 text=text[90:]
             if isSuccess:
                 msg+=u'腾讯微博发送成功。'
             else:
                 msg+=u'腾讯微博发送失败。'
         if msg:
             self.response.out.write(msg)
         else:
             self.response.out.write(u'未发送微博。')
Example #24
0
def createUser(login_session):
    """
    takes login session and creates a user
    """
    newUser = User(name=login_session['username'],
                   email=login_session['email'])
    session.add(newUser)
    session.commit()
    user = session.query(User).filter_by(email=login_session['email']).one()
    return user.id
 def close_autobidder(self, auction, user):
     autobidder = auction.autobidders.filter(
         auction.autobidders.user_id == user.id).first()
     if autobidder:
         owner = User.get_by_id(user.id)
         self.add_bids(owner, autobidder.remaining_bids)
         owner.put()
         autobidder.remaining_bids = 0
         autobidder.put()
         db.session.delete(autobidder)
Example #26
0
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        user = User(username=form.username.data, password=form.password.data)

        db.session.add(user)
        db.session.commit()
        flash("thank you for registering")
        return redirect(url_for('login'))
    return render_template('register.html', form=form)
Example #27
0
 def close_autobidder(auction, user):
     autobidder = auction.autobidders.filter(
         Autobidder.user_id == user.id).first()
     if autobidder:
         owner = User.get_by_id(user.id)
         AuctionController.add_bids(owner, autobidder.remaining_bids)
         owner.put()
         autobidder.remaining_bids = 0
         autobidder.put()
         db.session.delete(autobidder)
         db.session.commit()
Example #28
0
def create_user(current_company):
    if not current_company.admin:
        return jsonify({'message': 'You are not authorized to create a user!'})

    data = request.get_json()
    print('Data is %s', data)
    hashed_pwd = generate_password_hash(data['password'], method='sha256')
    new_user = User(public_id=str(uuid.uuid4()), name=data['name'], password=hashed_pwd, admin=False)
    db.session.add(new_user)
    db.session.commit()
    return jsonify(common.trueReturn(data['name'], 'New user created!'))
 def close_auction(self, auction):
     auction.auction_end = datetime.datetime.now()
     auction.active = False
     auction.put()
     for autobidder in auction.autobidders:
         owner = User.get_by_id(autobidder.user_id)
         self.add_bids(owner, autobidder.remaining_bids)
         owner.put()
         autobidder.remaining_bids = 0
         autobidder.put()
         db.session.delete(autobidder)
Example #30
0
    def post(self):
        email = self.get_argument('email', None)
        pass_word = self.get_argument('pass_word', None)

        if not (email or pass_word):
            self.flash('validationError.', 'Error')
            return
        query = User.objects
        user = query(email=email).first()
        # 如果没有用户添加进去
        if not user and query.count() == 0:
            user = User(email=email, name=email, pass_word=pass_word)
            user.save()

        if user.pass_word != pass_word:
            self.flash('password is wrong!', 'Error')
            return
        self.set_secure_cookie('login_user', email)
        self.redirect(self.get_argument('next',
                                        self.reverse_url("admin_home")))
Example #31
0
    def del_product_from_cart(self, prod_id, message_id, user_id):

        user = User.get_user(user_id)
        cart = Cart.get_cart(user_id)
        cart.delete_product_from_cart(prod_id)

        self.answer_callback_query(message_id, "Товар удален", show_alert=True)

        self.send_message(user_id, 'Ваша корзина')

        self.show_cart(user_id)
Example #32
0
def api_register_user(*, email, name, passwd):
    if not name or not name.strip():
        raise APIValueError('name')
    if not email or not _RE_EMAIL.match(email):
        raise APIValueError('email')
    if not passwd or not _RE_SHA1.match(passwd):
        raise APIValueError('passwd')
    users = yield from User.findAll('email=?', [email])
    if len(users) > 0:
        raise APIError('register:failed', 'email', 'Email is already in use.')
    uid = next_id()
    sha1_passwd = '%s:%s' % (uid, passwd)
    user = User(id=uid, name=name.strip(), email=email, passwd=hashlib.sha1(sha1_passwd.encode('utf-8')).hexdigest(), image='http://www.gravatar.com/avatar/%s?d=mm&s=120' % hashlib.md5(email.encode('utf-8')).hexdigest())
    yield from user.save()
    # make session cookie:
    r = web.Response()
    r.set_cookie(COOKIE_NAME, user2cookie(user, 86400), max_age=86400, httponly=True)
    user.passwd = '******'
    r.content_type = 'application/json'
    r.body = json.dumps(user, ensure_ascii=False).encode('utf-8')
    return r
Example #33
0
	def test_movie_ratings(self):
		u1 = User(username='******', password='******', email='*****@*****.**')
		u2 = User(username='******', password='******', email='*****@*****.**')
		m1 = Movie(name='One', url='http://one')
		m2 = Movie(name='Two', url='http://two')
		db.session.add(u1)
		db.session.add(u2)
		db.session.add(m1)
		db.session.add(m2)
		db.session.commit()

		u1.add_movie_rating(m1, 3.5)
		u2.add_movie_rating(m2, 4.0)
		db.session.add(u1)
		db.session.add(u2)
		db.session.add(m1)
		db.session.add(m2)
		db.session.commit()

		ratings_for_u1 =  u1.ratings
		for rating in ratings_for_u1:
			print rating

		movies = Movie.query.all()
		for movie in movies:
			print movie.name
			movie_ratings = movie.ratings
			for r in movie_ratings:
				print r
    def put(self):
        parser = reqparse.RequestParser()
        parser.add_argument('name')
        parser.add_argument('password')
        parser.add_argument('email')
        parser.add_argument('user_level')
        parser.add_argument('phone_number')
        parser.add_argument('has_telegram')
        args = parser.parse_args()

        try:
            # Check if the user whom request for update is already exist in the database.
            existing_user = User_Model.find_by_email(args['email'])

            if existing_user != None:
                # Update existing user details.
                existing_user.name = args['name']
                existing_user.user_level = args['user_level']
                existing_user.user_level = args['phone_number']
                existing_user.user_level = args['has_telegram']
                existing_user.password_hash = hash_password(args['password'])

                # !! Need to commit the changes after update
                User_Model.update()
                return {
                    'message':
                    'User with email {}\'s details have been updated.'.format(
                        existing_user.email_address)
                }, 200

            else:
                return {'message': 'This user does not exist in database.'}

        except:
            print(traceback.format_exc())
            return {
                'message':
                'An error occurred. Check console for error message.'
            }, 400
Example #35
0
    def post(self):
        email = self.get_argument('email', None)
        pass_word = self.get_argument('pass_word', None)

        if not (email or pass_word):
            self.flash('validationError.', 'Error')
            return
        query = User.objects
        user = query(email=email).first()
        # 如果没有用户添加进去
        if not user and query.count() == 0:
            user = User(
                email=email,
                name=email,
                pass_word=pass_word
            )
            user.save()

        if user.pass_word != pass_word:
            self.flash('password is wrong!', 'Error')
            return
        self.set_secure_cookie('login_user', email)
        self.redirect(self.get_argument('next',
                                        self.reverse_url("admin_home")))
Example #36
0
	def test_follow(self):
		u1 = User(username='******', password='******', email='*****@*****.**')
		u2 = User(username='******', password='******', email='*****@*****.**')
		db.session.add(u1)
		db.session.add(u2)
		db.session.commit()
		assert u1.unfollow(u2) is None
		u = u1.follow(u2)
		db.session.add(u)
		db.session.commit()
		assert u1.follow(u2) is None
		assert u1.is_following(u2)
		assert u1.followed.count() == 1
		assert u1.followed.first().username == 'susan'
		assert u2.followers.count() == 1
		assert u2.followers.first().username == 'john'
		u = u1.unfollow(u2)
		assert u is not None
		db.session.add(u)
		db.session.commit()
		assert not u1.is_following(u2)
		assert u1.followed.count() == 0
		assert u2.followers.count() == 0
Example #37
0
    def get(self):
        username=self.request.get('username')
        userpwd=self.request.get('userpwd')
#        usernick=self.request.get('usernick')
        text=''
        for s in self.request.query_string.split('&'):
            if 'usernick'==s[0:8] and len(s)>8:
                unquotedPath= urllib.unquote(s[9:])
                try:
                    text = unicode(unquotedPath, 'utf8')
                except:
                    try:
                      text = unicode(unquotedPath, 'gbk')
                    except:
                        text=''
        user=User.get_by_key_name('u'+username)
        if user:
            self.response.out.write(u'用户名已经存在')
            return
        user=User(key_name='u'+username)
        user.pwd=userpwd
        user.nick=text
        user.put()
        self.response.out.write('1')
Example #38
0
	def test_avatar(self):
		u = User(username='******', password='******', email='*****@*****.**')
		avatar = u.avatar(128)
		expected = 'http://www.gravatar.com/avatar/d4c74594d841139328695756648b6bd6'
		assert avatar[0:len(expected)] == expected
Example #39
0
	def test_follow_posts(self):
		# make four users
		u1 = User(username='******', password='******', email='*****@*****.**')
		u2 = User(username='******', password='******', email='*****@*****.**')
		u3 = User(username='******', password='******', email='*****@*****.**')
		u4 = User(username='******', password='******', email='*****@*****.**')
		db.session.add(u1)
		db.session.add(u2)
		db.session.add(u3)
		db.session.add(u4)
		# make four posts
		utcnow = datetime.utcnow()
		p1 = Post(body="post from john", author=u1, timestamp=utcnow + timedelta(seconds=1))
		p2 = Post(body="post from susan", author=u2, timestamp=utcnow + timedelta(seconds=2))
		p3 = Post(body="post from mary", author=u3, timestamp=utcnow + timedelta(seconds=3))
		p4 = Post(body="post from david", author=u4, timestamp=utcnow + timedelta(seconds=4))
		db.session.add(p1)
		db.session.add(p2)
		db.session.add(p3)
		db.session.add(p4)
		db.session.commit()
		# setup the followers
		u1.follow(u1)  # john follows himself
		u1.follow(u2)  # john follows susan
		u1.follow(u4)  # john follows david
		u2.follow(u2)  # susan follows herself
		u2.follow(u3)  # susan follows mary
		u3.follow(u3)  # mary follows herself
		u3.follow(u4)  # mary follows david
		u4.follow(u4)  # david follows himself
		db.session.add(u1)
		db.session.add(u2)
		db.session.add(u3)
		db.session.add(u4)
		db.session.commit()
		# check the followed posts of each user
		f1 = u1.followed_posts().all()
		f2 = u2.followed_posts().all()
		f3 = u3.followed_posts().all()
		f4 = u4.followed_posts().all()
		assert len(f1) == 3
		assert len(f2) == 2
		assert len(f3) == 2
		assert len(f4) == 1
		assert f1 == [p4, p2, p1]
		assert f2 == [p3, p2]
		assert f3 == [p4, p3]
		assert f4 == [p4]
Example #40
0
  def get(self):
    website=self.request.get('website')
    username=self.request.get('username')
    user=User.get_by_key_name('u'+username)
    msg=u'您开通了'
#    userAccessToken=UserAccessToken().all().filter('username ='******'sina'==website:
        """用户成功登录授权后,会回调此方法,获取access_token,完成授权"""
        # http://mk2.com/?oauth_token=c30fa6d693ae9c23dd0982dae6a1c5f9&oauth_verifier=603896
#        verifier = self.request.get('oauth_verifier', None)
#        if not username:
#            return
#        auth_client = _oauth()
#        # 设置之前保存在session的request_token
#    #    request_token = request.session['oauth_request_token']
#        request_token=memcache.Client().get(username+"_request_token1")
#        if not request_token:
#            return
#        memcache.Client().delete(username+"_request_token1")
#    #    del request.session['oauth_request_token']
#
#        auth_client.set_request_token(request_token.key, request_token.secret)
#        access_token = auth_client.get_access_token(verifier)
        code=self.request.get('code','')
        client = weibo.APIClient(webSetting.xlconsumer_key, webSetting.xlconsumer_secret,webSetting.WEIBOURL+'/login_check?username='******'&data='+str(datetime.now())+'&website=sina')
        r = client.request_access_token(code)
#        logging.info('access token: %s' % json.dumps(r))
        access_token, expires_in, uid = r.access_token, r.expires_in, r.uid
#        client.set_access_token(access_token, expires_in)
#        logging.info('access token: %s' % json.dumps(access_token))
#        u = client.users.show.get(uid=uid)
        # 保存access_token,以后访问只需使用access_token即可
#        userAccessToken.sinaSecret=access_token.secret
#        userAccessToken.sinaToken=access_token.key
#        userAccessToken.sinaExpires=expires_in
#        userAccessToken.sinauserid=uid
#        userAccessToken.sinaisright=True
#        userAccessToken.put()
        # 保存access_token,以后访问只需使用access_token即可
        user.sinaSecret=access_token
        user.sinaExpires=str(expires_in)
        user.put()
#        pam={'key0':'sinaSecret','value0':access_token.secret,'key1':'sinaToken','value1':access_token.key}
#        syncMogu(username,pam)
#        syncWeiboShouQuan(username,'sina')
        msg+=u'新浪'
#        userAccessToken.sinaSecret=access_token.secret
#        userAccessToken.sinaToken=access_token.key
#        userAccessToken.sinauserid=auth_client.user_id
#        userAccessToken.sinaisright=True
#        userAccessToken.put()
#        sinaadd=memcache.Client().get("SinaAdd")
#        if not sinaadd:
#            sinaadd= []
#        sinaadd.append(username)
#        memcache.Client().set("SinaAdd",sinaadd,360000)
    elif 'wy'==website:
#        t = TBlog(weboSetting.wyconsumer_key, weboSetting.wyconsumer_secret)
        request_token=memcache.Client().get(username+"_request_token3")
        if not request_token:
            return
        memcache.Client().delete(username+"_request_token3")
#        t._request_handler.request_token=request_token
#        request_token.get_auth_url()
#        pin=self.request.get('pin', None)
        pin=self.request.get('oauth_token', None)
        s=request_token.get_access_token(pin)
        user.wySecret=s.secret
        user.wyToken=s.key
        user.put()
#        pam={'key0':'wySecret','value0':s.secret,'key1':'wyToken','value1':s.key}
#        syncMogu(username,pam)
#        syncWeiboShouQuan(username,'wy')
        msg+=u'网易'
#        userAccessToken.wySecret=s.secret
#        userAccessToken.wyToken=s.key
#        userAccessToken.wyisright=True
#        userAccessToken.put()
#        wyadd=memcache.Client().get("WyAdd")
#        if not wyadd:
#            wyadd= []
#        wyadd.append(username)
#        memcache.Client().set("WyAdd",wyadd,360000)
    elif 'teng'==website:
        request_token=memcache.Client().get(username+"_request_token4")
        if not request_token:
            return
        memcache.Client().delete(username+"_request_token4")
        verifier = self.request.get('oauth_verifier', None)
        access_token = request_token.get_access_token(verifier)
        user.tengSecret=access_token.secret
        user.tengToken=access_token.key
        user.put()
#        pam={'key0':'qqSecret','value0':access_token.secret,'key1':'qqToken','value1':access_token.key}
#        syncMogu(username,pam)
#        syncWeiboShouQuan(username,'teng')
        msg+=u'腾讯'
#        userAccessToken.qqSecret=access_token.secret
#        userAccessToken.qqToken=access_token.key
#        #userAccessToken.qquserid=auth_client.user_id
#        userAccessToken.qqisright=True
#        userAccessToken.put()
#        qqadd=memcache.Client().get("QQAdd")
#        if not qqadd:
#            qqadd= []
#        qqadd.append(username)
#        memcache.Client().set("QQAdd",qqadd,360000)
    msg+=u'微博。'

    p={'msg':msg.encode('utf-8')}

    return self.redirect(str('joke://jokeweibo/weibo'+'?msg='+urllib.urlencode(p).split('=')[1]+'&website='+website))