Пример #1
0
def check_user_session(msg):
    session_id = db.get_session_id(msg['FromUserName'])
    if not session_id:
        return {
            'status': 'session_id_not_exist',
            'response': weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=u'请先输入 login 命令登陆'
            )
        }
    else:
        user_info = db.get_user_info(msg['FromUserName'])
        if not user_info:
            return {
                'status': 'user_not_exist',
                'response': weixin_response(
                    from_user_name=msg['ToUserName'],
                    to_user_name=msg['FromUserName'],
                    content=LOGIN_TEXT
                )
            }
        else:
            jwxt = Jwxt(user_info['sno'], user_info['password'])
            jwxt.cookies = {'JSESSIONID': session_id}

            return {
                'status': 'success',
                'instance': jwxt
            }
Пример #2
0
def user_info():
    ign = request.args.get('ign')
    user_info_dict = get_user_info(ign)
    response = app.response_class(response=json.dumps(user_info_dict),
                                  status=200,
                                  mimetype='application/json')
    return response
Пример #3
0
def check_user_status(msg):
    user_info = db.get_user_info(msg['FromUserName'])
    if not user_info:
        return {
            'status': 'user_not_exist',
            'response': weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=LOGIN_TEXT
            )
        }

    jwxt = Jwxt(user_info['sno'], user_info['password'])

    if not jwxt.login():
        return {
            'status': 'jwxt_fail_login',
            'response': weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=ERROR_TEXT
            )
        }

    return {
        'status': 'success',
        'instance': jwxt
    }
Пример #4
0
def login_module():
    player_name=input("Username: "******"Please enter your password:"******"Incorrect password. Please try again.")
        player=Player(user_name,user_password,experience,level)
        database.sync_from_db(player)
        print("\nWelcome back!\n")
    else:
        password=input("Welcome new player! Please create your password:"******"\n")
        pokemon1=generate_pokemon_by_name(random.choice(["Charmander","Squirtle","Bulbasaur"]))
        database.update_pokedex(pokemon1)
        database.insert_player_pokemon(player,pokemon1)
        player.pokemon_in_hand.append(pokemon1)
        print("You recieved a level " + str(pokemon1.pokemon_level) + " " + pokemon1.name + " (HP: " + str(pokemon1.hp) + ", CP: " + str(pokemon1.cp) + ")")

        for i in range(10):
            player.bag.add_item(PokeBall("Poke Ball"))
            player.bag.add_item(Potion("Potion"))
            player.bag.add_item(Revive("Revive"))
        print("10 Potions, Poke Balls and Revives have been added to your bag\n")

    return player
Пример #5
0
def login_module():
    player_name = input("Enter  your name:\n")
    user_exist = database.check_username_in_database(player_name)
    if (user_exist):
        user_name, user_password, level, experience = database.get_user_info(
            player_name)
        while (input("Please enter your password:"******"Wrong password! Please Try again!")
        player = Player(user_name, user_password, experience, level)
        database.sync_from_db(player)
        print("\nWelcome back! Login completed.\n")
    else:
        password = input("Welcome new player! Please create your password:"******"Poke Ball"))
            player.bag.add_item(Potion("Potion"))
            player.bag.add_item(Revive("Revive"))
            player.bag.add_item(RazzBerry("Razz Berry"))
            player.bag.add_item(Candy("Rare candy"))
            player.bag.add_item(Candy("Sweet candy"))
            player.bag.add_item(Candy("Rainbow candy"))
            player.bag.add_item(Stardust("Silver dust"))
            player.bag.add_item(Stardust("Gold dust"))
            player.bag.add_item(Stardust("Diamond dust"))
        print("Welcome! You will start a new journey.")
        print("You are given Amazing starting items. Check your bag")
    return player
Пример #6
0
 def add_email_to_application_name(self):
     try:
         email = get_user_info()[1]
         if email == None:
             email = get_user_email()['email']
             set_user_info({'email': email})
         self.name_of_application += ' - {}'.format(email)
     except:
         pass
Пример #7
0
	def add_email_to_application_name(self):
		try:
			email = get_user_info()[1]
			if email == None:
				email = get_user_email()['email']
				set_user_info({'email':email})
			self.name_of_application += ' - {}'.format(email)
		except:
			pass
Пример #8
0
 def add_email_to_application_name(self):
     try:
         email = get_user_info()[1]
         if email == None:
             email = get_user_email()["email"]
             set_user_info({"email": email})
         self.name_of_application += " - {}".format(email)
     except:
         pass
Пример #9
0
def mainpage():
    #equivalent of saying "Is there a user logged in?"
    if "login" in session and session["login"]:
        username = session["username"]
        info = database.get_user_info(username)
        return render_template("mainpage.html", info=info if info else [])
    # elif "signout" in session and session["signout"]:
    else:

        return "you're not logged in"
Пример #10
0
def _get_token(**kwargs):
    try:
        user_info = get_user_info()
        refresh_token = user_info[3]
        if kwargs.get('refresh_token') == True:
            return refresh_token
        token = user_info[2]
        expiry = user_info[4]
    except:
        raise IndexError('No settings were returned from the database')
    if expiry < time.time():
        token = update_token()['token']
    return token
Пример #11
0
def _get_token(**kwargs):
	try:
		user_info = get_user_info()
		refresh_token = user_info[3]
		if kwargs.get('refresh_token') == True:
			return refresh_token
		token = user_info[2]
		expiry = user_info[4]
	except:
		raise IndexError('No settings were returned from the database')
	if expiry < time.time():
		token = update_token()['token']
	return token
Пример #12
0
def get_user(data):
    try:
        username = data["username"]
    except KeyError:
        emit('Error', broadcast=True)
        return

    if (db.get_user(username)):
        password, first_name, name = db.get_user_info(username)
        user_info = {
            "success": "success",
            "username": username,
            "password": '******',
            "first_name": first_name,
            "name": name
        }
        emit("user", user_info)
    else:
        emit('Error', {"message": "this user doesn't exist", "show": "true"})
Пример #13
0
def login():
    if request.method == 'GET':
        return render_template('login.html')
    elif request.method == 'POST':
        if database.check_user_and_pass(request.form['username'],
                                        request.form['password']) == True:
            session['login'] = True
            session['username'] = request.form['username']
            print("success")
            # run a differnet function
            info = database.get_user_info(session["username"])
            return redirect(url_for("mainpage", info=info if info else []))
        else:
            print('error:username or password are incorrect!!')
            return render_template(
                'login.html',
                incorrect_user_or_pass=
                '******')
    return redirect(url_for('fpage'))
Пример #14
0
def temp(email, transaction_id):
    get_photo_from_db()
    user_id, phone_number = get_user_info(email)

    if get_photo_from_db:
        confidence, label = recognize_face()
        print(f"Match: {confidence}, DB OwnerMatched Label:{label}")
        if user_id == label and confidence > 70:
            send_msg(email, phone_number, transaction_id)
            ##allow_user
            return "Message Sent"
        if confidence == 1000 and label == 0:
            return "no face detected"
        else:
            send_msg(email, phone_number, transaction_id)
            return "Face not Matched"

    else:
        send_msg(email, phone_number, transaction_id)
        return "Message Sent"
Пример #15
0
def login_module():
    player_name = input("input your name:\n")
    user_exist = database.check_username_in_database(player_name)
    if (user_exist):
        user_name, user_password, level, experience = database.get_user_info(
            player_name)
        while (input("Please enter your password:"******"Wrong password! Please Try again!")
        player = Player(user_name, user_password, experience, level)
        database.sync_from_db(player)
        database.active_user(player_name)
        print("\nWelcome back! Login completed.\n")
    else:
        password = input("Welcome new player! Please create your password:"******"Poke Ball"))
            player.bag.add_item(Potion("Potion"))
        database.active_user(player_name)
        print("Welcome! You will start a new journey.")
        print("You are given 10 Poke Balls and 10 Potions as starting items.")
    return player
Пример #16
0
def weixin():
    # parse xml to dict obj
    xml = eT.fromstring(request.data)
    msg = dict()
    for ele in list(xml):
        msg[ele.tag] = ele.text

    # subscribe or unsubscribe
    if 'Event' in msg.keys():
        return weixin_response(
            from_user_name=msg['ToUserName'],
            to_user_name=msg['FromUserName'],
            content=WELCOME_TEXT
        )

    # normal command
    ask = msg['Content']
    if ask == 'user':
        # prompt user to set their sno and password
        return weixin_response(
            from_user_name=msg['ToUserName'],
            to_user_name=msg['FromUserName'],
            content=LOGIN_TEXT
        )
    elif ask == 'login':
        # prompt user to login
        check = check_user_status(msg)
        if check['status'] != 'success':
            return check['response']
        else:
            jwxt = check['instance']
            db.set_session_id(msg['FromUserName'], jwxt.cookies['JSESSIONID'])
            return weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=u'已尝试登陆'
            )
    elif re.match(r'^\d+#.+$', ask):
        # set sno and password
        sno, password = ask[:ask.find('#')], ask[ask.find('#') + 1:]
        user_info = db.get_user_info(msg['FromUserName'])

        if user_info:
            db.update_user(msg['FromUserName'], sno, password)
        else:
            db.create_user(msg['FromUserName'], sno, password)

        return weixin_response(
            from_user_name=msg['ToUserName'],
            to_user_name=msg['FromUserName'],
            content=u'创建成功' if not user_info else u'修改成功'
        )
    elif ask in [str(i) for i in range(10)]:
        # query course from day 0-7, 0 stand for all, 1-7 stand for Monday to Sunday
        check = check_user_session(msg)
        if check['status'] != 'success':
            return check['response']
        else:
            jwxt = check['instance']

        try:
            # get today or tomorrow course (ask = 8, ask = 9)
            if ask == '8':
                ask = str(date.today().weekday() + 1)
            elif ask == '9':
                ask = str(date.today().weekday() + 2)

            course_list = jwxt.get_course_list(CURRENT_XND, CURRENT_XQ)
            course_list.sort(key=lambda x: int(x['day']) * 100 + int(x['start_time']))
            output_list = []
            for course in [course for course in course_list if ask == '0' or course['day'] == int(ask)]:
                course['start_time'] = COURSE_START_TIME[int(course['start_time']) - 1]
                course['end_time'] = COURSE_END_TIME[int(course['end_time']) - 1]
                course['date'] = WEEK_TIME[int(course['day']) - 1]

                output = u'{course_name}\n{date} {start_time}-{end_time}\n{location}{duration}'.format(**course)
                output_list.append(output)

            if not output_list:
                output_list.append(u'此期间没有课程')

            return weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=('\n' + '-' * 20 + '\n').join(output_list)
            )
        except:
            return weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=u'会话过期, 请重新输入 login 命令登陆'
            )

    elif re.match(r'^(cj#)(\d+#\d+)$', ask):
        # query score by xnd(year-year+1) and xq[0(all), 1, 2, 3]
        check = check_user_session(msg)
        if check['status'] != 'success':
            return check['response']
        else:
            jwxt = check['instance']

        try:
            tmp = ask.split('#')
            xnd, xq = u'{}-{}'.format(int(tmp[1]), int(tmp[1]) + 1), tmp[2]
            if xq in ['0', '1', '2', '3']:
                if xq == '0':
                    score_list = reduce(lambda x, y: x + y, [jwxt.get_score_list(xnd, str(i)) for i in range(1, 4)])
                else:
                    score_list = jwxt.get_score_list(xnd, xq)

                output_list = []
                for score in score_list:
                    if len(score.get('jxbpm', '')) > 1:
                        output = u'{kcmc}\n成绩: {zpcj}\n排名: {jxbpm}'.format(**score)
                    else:
                        output = u'{kcmc}\n成绩: {zpcj}'.format(**score)
                    output_list.append(output)

                if not output_list:
                    output_list.append(u'此期间没有成绩')

                return weixin_response(
                    from_user_name=msg['ToUserName'],
                    to_user_name=msg['FromUserName'],
                    content=('\n' + '-' * 20 + '\n').join(output_list)
                )
            else:
                return weixin_response(
                    from_user_name=msg['ToUserName'],
                    to_user_name=msg['FromUserName'],
                    content=u'请输入正确的查询格式'
                )
        except:
            return weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=u'会话过期, 请重新输入 login 命令登陆'
            )
    elif re.match(r'^gpa(#\d+#\d+)?$', ask):
        # query gpa by xnd(year-year+1) and xq[0(all), 1, 2, 3] or all gpa
        check = check_user_session(msg)
        if check['status'] != 'success':
            return check['response']
        else:
            jwxt = check['instance']

        try:
            output_list = []
            tmp = ask.split('#')
            if len(tmp) == 1:
                gpa_list = jwxt.get_all_gpa()
            else:
                xnd, xq = '{}-{}'.format(int(tmp[1]), int(tmp[1]) + 1), tmp[2]
                if xq not in ['1', '2', '3']:
                    return weixin_response(
                        from_user_name=msg['ToUserName'],
                        to_user_name=msg['FromUserName'],
                        content=u'请输入正确的查询格式'
                    )
                gpa_list = jwxt.get_gpa(xnd, xq)

            for gpa in gpa_list:
                output = u'{oneColumn}: {twoColumn}'.format(**gpa)
                output_list.append(output)

            if not output_list:
                output_list.append(u'此期间没有绩点')

            return weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content='\n'.join(output_list)
            )
        except:
            return weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=u'会话过期, 请重新输入 login 命令登陆'
            )
    elif ask == 'credit':
        check = check_user_session(msg)
        if check['status'] != 'success':
            return check['response']
        else:
            jwxt = check['instance']
            count = 3
            while not jwxt.tno and count >= 0:
                count -= 1
                jwxt.get_info()

        try:
            output_list = [u'已获得的学分:']
            for credit in jwxt.get_credit():
                output = u'{oneColumn}: {twoColumn}'.format(**credit)
                output_list.append(output)

            output_list.append(u'-' * 20)
            output_list.append(u'毕业所需学分:')
            for credit in jwxt.get_total_credit():
                output = u'{oneColumn}: {twoColumn}'.format(**credit)
                output_list.append(output)

            return weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content='\n'.join(output_list)
            )
        except:
            return weixin_response(
                from_user_name=msg['ToUserName'],
                to_user_name=msg['FromUserName'],
                content=u'会话过期, 请重新输入 login 命令登陆'
            )
    else:
        # prompt user help information
        return weixin_response(
            from_user_name=msg['ToUserName'],
            to_user_name=msg['FromUserName'],
            content=HELP_TEXT
        )
Пример #17
0
 def get_user_info(self):
     return database.get_user_info(self.user_id)