Ejemplo n.º 1
0
def view_room(room_id):
    room = get_room(room_id)
    print("here")
    print(is_room_member(room_id, current_user.username))
    if room and is_room_member(room_id, current_user.username):
        room_members = get_room_members(room_id)
        messages = get_messages(room_id)
        print(messages)
        return render_template('view_room.html',
                               messages=messages,
                               username=current_user.username,
                               room=room,
                               room_members=room_members)

    return "Room not found", 404
Ejemplo n.º 2
0
def single_room_members(room_id):
    user_id = get_jwt_identity()
    current_app.logger.info('{} requested members for {}'.format(
        user_id, room_id))

    members_raw = get_room_members(room_id)
    members = []

    if not is_room_member(room_id, user_id):
        return jsonify(
            {'Error': 'You are not a member of the requested room.'}), 403

    for member in members_raw:
        try:
            # this is really messy, can this be improved?
            this_user = get_user(str(member['_id']['user_id']))
        except KeyError as e:
            continue
        except TypeError as e:
            return jsonify({'Error': e}), 400
        if not this_user:
            continue

        new_member = get_user(this_user.ID)
        members.append(new_member.create_json())

    return jsonify(members), 200
Ejemplo n.º 3
0
def view_room(room_id):
    room = get_room(room_id)
    if room and is_room_member(room_id, current_user.username):
        room_members = get_room_members(room_id)
        messages = get_messages(room_id)
        return render_template('view_room.html', username=current_user.username,room=room, room_members=room_members, messages=messages) 
    else:
        return "Room not found", 404
Ejemplo n.º 4
0
def get_older_messages(room_id):
    room = get_room(room_id)
    if room and is_room_member(room_id, current_user.username):
        page = int(request.args.get('page', 0))
        messages = get_messages(room_id, page)
        return dumps(messages)
    else:
        return "Room not found", 404
Ejemplo n.º 5
0
def get_oldr_messages(room_id):
    room = [i for i in db.get_room(room_id)]
    if room and db.is_room_member(room_id, current_user.username):

        page = request.args.get('page', 0)
        messages = [i for i in db.get_messages(room_id, int(page))]
        return dumps(messages[0])
    return 'Room not fould', 404
Ejemplo n.º 6
0
def view_room(room_id):
    room = get_room(room_id)
    if room and is_room_member(room_id, current_user.username):
        room_members = get_room_members(room_id)
        messages = get_messages(room_id)
        return render_template('vr1.html',
                               username=current_user.username,
                               room=room,
                               room_members=room_members,
                               messages=messages,
                               room_id=room_id)
Ejemplo n.º 7
0
def view_room(room_id):
    room = [i for i in db.get_room(room_id)]
    if room and db.is_room_member(room_id, current_user.username):
        room_members = [i for i in db.get_room_members(room_id)]
        messages = [i for i in db.get_messages(room_id)]
        return render_template('view-room.html',
                               user=current_user.username,
                               room=room[0],
                               room_members=room_members[0],
                               messages=messages[0])
    return 'Room not fould', 404
Ejemplo n.º 8
0
def get_room_messages(room_id):
    room = get_room(room_id)
    user_id = get_jwt_identity()

    if not room:
        return jsonify({'Error': 'Not Found'}), 404

    if not is_room(room_id):
        return jsonify({'Error': 'Not Found'}), 404

    if room and is_room_member(room_id, user_id):
        bucket_number = get_latest_bucket_number(
            room_id)  # defaulted to latest bucket if none given in args
        requested_bucket_number = int(
            request.args.get('bucket_number', default=bucket_number))

        if not requested_bucket_number:
            return jsonify({'Error': 'Stinky stinky'}), 500

        try:
            message_bson = get_messages(str(room.room_id),
                                        requested_bucket_number)
            return jsonify(message_bson)

            if not message_bson:
                return jsonify([]), 200

            if len(message_bson) == 0:
                return jsonify([]), 200

            messages = []
            users = {}
            for item in message_bson:
                try:
                    user_id = str(item['sender'])
                    if user_id not in users:
                        users[user_id] = get_user(user_id)
                    # time_sent, text, username, user_id, avatar, image_id)
                    messages.append(
                        Message(item['time_sent'], item['text'],
                                users[user_id].username,
                                users[user_id].ID, users[user_id].avatar,
                                str(item['image_id'])).create_json())
                except Exception as e:
                    current_app.logger.info(e)

            return jsonify(messages)
        except Exception as e:
            current_app.logger.info(e)

        return jsonify({'e': 'e'}), 500
    else:
        return jsonify({'Error': 'Room not found'}), 400
Ejemplo n.º 9
0
def room_mute(room_id):
    user_id = get_jwt_identity()

    if not is_room_member(room_id, user_id):
        return jsonify({'Error': 'You are not a member of this room.'}), 403

    if request.method == 'GET':
        mute_status = room_is_mute(room_id, user_id)
        return jsonify({'muted': mute_status})
    elif request.method == 'PUT':
        mute_status = toggle_mute(room_id, user_id)
        return jsonify({'muted': mute_status})
Ejemplo n.º 10
0
def chat(room_id):
    room = get_room(room_id)
    room_members = get_room_members(room_id)
    if room and is_room_member(room_id, current_user.username):
        is_room_admin = check_if_room_admin(room_id, current_user.username)
        return render_template('view_room.html',
                               username=current_user.username,
                               room=room,
                               room_members=room_members,
                               is_room_admin=is_room_admin)
    else:
        return redirect(url_for('home'))
Ejemplo n.º 11
0
def view_room(room_id):
    room = get_room(room_id)
    print(room)
    print(room_id)
    print(current_user.username)
    if room and is_room_member(room_id, current_user.username):
        room_members = get_room_members(room_id)
        print(room_members)
        # 2020.07.17 여기까지 완료
        # username 부분이 채팅화면으로 들어갔을 때, 제대로 데아터를 가지고 오지 못하는 오류가 발생
        return render_template('view_room.html',
                               room=room,
                               room_members=room_members,
                               username=username)
    else:
        return "Room not found", 404
Ejemplo n.º 12
0
def view_room(room_id):
    room = get_room(room_id)

    if room and is_room_member(room_id, current_user.username):
        room_rule = get_room_rules(room_id)
        room_members = get_room_members(room_id)
        messages = get_messages(room_id)
        return render_template('view_room.html',
                               username=current_user.username,
                               room=room,
                               room_rule=room_rule,
                               room_members=room_members,
                               messages=messages)
    #username = request.args.get('username')
    #room = request.args.get('room')
    else:
        return "Room not found", 404
Ejemplo n.º 13
0
def edit_room(room_id):
    room = get_room(room_id)
    room_members = [
        member['_id']['username'] for member in get_room_members(room_id)
    ]
    print('room members are ==', room_members)
    is_room_admin = check_if_room_admin(room_id, current_user.username)

    if request.method == 'POST':

        new_room_name = request.form.get('new_room_name')
        change_room_name(room_id, new_room_name)
        room['room_name'] = new_room_name

        new_room_members = [
            username.strip()
            for username in request.form.get('members').split(',')
        ]

        members_to_add = list(set(new_room_members) - set(room_members))
        members_to_remove = list(set(room_members) - set(new_room_members))

        if members_to_add:
            add_room_members(room_id, new_room_name, members_to_add,
                             current_user.username)
        if members_to_remove:
            remove_room_members(room_id, members_to_remove)

        room_members = get_room_members(room_id)
        return render_template('view_room.html',
                               username=current_user.username,
                               room=room,
                               room_members=room_members,
                               is_room_admin=is_room_admin)

    else:
        room_members = ','.join(room_members)
        if room and is_room_member(room_id, current_user.username):
            return render_template('edit_room.html',
                                   username=current_user.username,
                                   room=room,
                                   room_members=room_members)
        else:
            return redirect(url_for('home'))
Ejemplo n.º 14
0
def edit_single_room(room_id):
    auth_user_id = get_jwt_identity()
    auth_user = get_user(auth_user_id)

    json_input = request.get_json(force=True)
    changed_room = json_input['room'].items()

    if not is_room_member(room_id, auth_user_id):
        return jsonify({'Error': 'Not authorized'}), 403

    changeable_values = ['emoji', 'name']
    for kvp in changed_room:
        if kvp[0] not in changeable_values:
            return jsonify(
                {'Error':
                 'You can only edit email, real_name, or username.'}), 400

    update_room(room_id, changed_room)
    return jsonify({'Success': 'Room modified.'})
Ejemplo n.º 15
0
def view_room(room_id):
    room = get_room(room_id)
    try:
        is_dm = room['is_dm']
    except KeyError:
        is_dm = False
    if room and is_room_member(room_id, current_user.username):
        room_members = get_room_members(room_id)
        messages = get_messages(room_id)
        rooms = get_rooms_for_user(current_user.username)
        return render_template('view_room.html',
                               username=current_user.username,
                               this_room=room,
                               messages=messages,
                               room_members=room_members,
                               other_rooms=rooms,
                               is_dm=is_dm)
    else:
        return "Room not found", 404
Ejemplo n.º 16
0
def chat_room(room_id):
    rooms = get_rooms_for_user(current_user.username)
    room = get_room(room_id)
    email = get_email(current_user.username)
    admins = []
    not_admin = []
    if room and is_room_member(room_id, current_user.username):
        room_members = get_room_members(room_id)
        for member in room_members:
            if is_room_admin(room_id, member['_id']['username']):
                admins.append(member['_id']['username'])
            else:
                not_admin.append(member['_id']['username'])

        messages = get_messages(room_id)
        return render_template('chat.html', admins=admins, rooms=rooms, username=current_user.username, not_admin=not_admin, email=email, room=room, room_members=room_members, room_id=room_id, messages=messages)
    else:

        return render_template('404.html', message='Room does not exist')
Ejemplo n.º 17
0
def single_room(room_id):
    if room_id == 'create':
        return jsonify({'Error': ''}), 405

    if not is_room(room_id):
        return jsonify({'Error': 'Not Found'}), 404

    user_id = get_jwt_identity()
    user = get_user(user_id)
    room = get_room(room_id)

    if not room:
        return jsonify({'Error': 'Room not found.'}), 404

    if not is_room_member(room_id, user_id):
        return jsonify({'Error': 'You are not a member of this room.'}), 403
    else:
        return jsonify(return_room(room, user.username, user_id)), 200

    return jsonify({'Error': ''}), 500
Ejemplo n.º 18
0
def single_room_members_test(room_id):
    user_id = get_jwt_identity()
    current_app.logger.info('{} requested members for {}'.format(
        user_id, room_id))

    members_from_db = get_room_members(room_id)
    this_room = get_room(room_id)
    members = []

    if not this_room or not members_from_db:
        return jsonify({'Error': 'Room not found.'}), 404

    if not is_room_member(room_id, user_id):
        return jsonify(
            {'Error': 'You are not a member of the requested room.'}), 403

    if request.method == 'GET':
        for member in members_from_db:
            try:
                some_user = get_user(str(member['_id']['user_id']))
            except KeyError as e:
                continue
            except TypeError as e:
                return jsonify({'Error': e}), 400
            if not some_user:
                continue

            members.append(some_user.create_json())

        return jsonify(members), 200
    elif request.method == 'POST':
        json_input = request.get_json(force=True)

        try:
            new_members = json_input['add_members']
        except Exception as e:
            return jsonify({'Error': 'Bad input'}), 400
Ejemplo n.º 19
0
def get_image(upload_id):
    user_id = get_jwt_identity()
    user = get_user(user_id)
    target_image = locate_image(upload_id)
    current_app.logger.info("{} attempted to view file {}".format(
        user.username, upload_id))

    if target_image:
        image_room = target_image['room_id']
        if not is_room_member(
                image_room, user_id
        ) and not target_image['avatar']:  # avatars can be accessed anywhere
            return jsonify({'Error': 'Not authorized'}), 403

        file_path = os.path.join(current_app.config['UPLOAD_FOLDER'],
                                 target_image['location'])
        current_app.logger.info(file_path)
        if os.path.exists(file_path):
            return send_file(file_path)
        else:
            return jsonify({'I could not find the requested file':
                            upload_id}), 404

    return jsonify({'No such image.': upload_id}), 404
Ejemplo n.º 20
0
def event_handle(room_id):
    if is_room_member(room_id,current_user.username):
        return render_template('index1.html',username=current_user.username,room_id=room_id)
    else:
        return  render_template('index.html',username=username)
Ejemplo n.º 21
0
def view_room(room_id):
    room = get_room(room_id)
    a=emoji.emojize(":grinning_face_with_big_eyes:")
    b=emoji.emojize(":winking_face_with_tongue:")
    c=emoji.emojize(":zipper-mouth_face:")
    d=emoji.emojize(":nauseated_face:")
    e=emoji.emojize(":face_with_head-bandage:")
    f=emoji.emojize(":sleepy_face:")
    g=emoji.emojize(":face_with_rolling_eyes:")
    h=emoji.emojize(":lying_face:")
    i=emoji.emojize(":relieved_face:")
    j=emoji.emojize(":pensive_face:")
    k=emoji.emojize(":smirking_face:")
    l=emoji.emojize(":expressionless_face:")
    m=emoji.emojize(":shushing_face:")
    n=emoji.emojize(":thinking_face:")
    o=emoji.emojize(":face_with_raised_eyebrow:")
    p = emoji.emojize(":grinning_face:")
    q = emoji.emojize(":grinning_face_with_smiling_eyes:")
    r = emoji.emojize(":beaming_face_with_smiling_eyes:")
    s = emoji.emojize(":grinning_squinting_face:")
    t = emoji.emojize(":rolling_on_the_floor_laughing:")
    u = emoji.emojize(":grinning_face_with_sweat:")
    v = emoji.emojize(":face_with_tears_of_joy:")
    w = emoji.emojize(":slightly_smiling_face:")
    x = emoji.emojize(":upside-down_face:")
    y = emoji.emojize(":winking_face:")
    a1= emoji.emojize(":smiling_face_with_smiling_eyes:")
    b1= emoji.emojize(":smiling_face_with_halo:")
    c1= emoji.emojize(":face_blowing_a_kiss:")
    d1= emoji.emojize(":smiling_face_with_heart-eyes:")
    e1= emoji.emojize(":star-struck:")
    f1= emoji.emojize(":kissing_face:")
    g1= emoji.emojize(":kissing_face_with_closed_eyes:")
    h1= emoji.emojize(":kissing_face_with_smiling_eyes:")
    i1= emoji.emojize(":face_savoring_food:")
    j1= emoji.emojize(":zany_face:")
    k1= emoji.emojize(":sunglasses:")
    l1= emoji.emojize(":kiss:")
    m1= emoji.emojize(":collision:")
    n1= emoji.emojize(":princess:")
    o1= emoji.emojize(":eyes:")
    q1= emoji.emojize(":pizza:")
    p1= emoji.emojize(":memo:")
    r1= emoji.emojize(":poultry_leg:")
    s1= emoji.emojize(":custard:")
    t1= emoji.emojize(":cookie:")
    u1=emoji.emojize(":sushi:")
    v1=emoji.emojize(":pear:")
    w1=emoji.emojize(":cherries:")
    x1=emoji.emojize(":chocolate_bar:")
    y1=emoji.emojize(":musical_note:")
    a2 = emoji.emojize(":video_game:")
    b2 = emoji.emojize(":family:")
    c2 = emoji.emojize(":hotel:")
    d2 = emoji.emojize(":boy:")
    e2 = emoji.emojize(":girl:")
    f2 = emoji.emojize(":school:")
    g2 = emoji.emojize(":house:")
    h2 = emoji.emojize(":hospital:")
    i2 = emoji.emojize(":bank:")
    j2 = emoji.emojize(":cinema:")
    k2 = emoji.emojize(":station:")
    l2 = emoji.emojize(":ambulance:")
    m2 = emoji.emojize(":airplane:")
    n2 = emoji.emojize(":taxi:")
    o2 = emoji.emojize(":oncoming_automobile:")




    if room and is_room_member(room_id, current_user.username):
        room_members = get_room_members(room_id)
        messages = get_messages(room_id)
        return render_template('view_room.html', username=current_user.username, room_id=room_id, room=room, room_members=room_members,
                                messages=messages,a=a,b=b,c=c,d=d,e=e,f=f,g=g,h=h,i=i,j=j,k=k,l=l,m=m,n=n,o=o,p=p,q=q,r=r,s=s,t=t,u=u,
                               v=v,w=w,x=x,y=y,a1=a1,b1=b1,c1=c1,d1=d1,e1=e1,f1=f1,g1=g1,h1=h1,i1=i1,j1=j1,k1=k1,l1=l1,m1=m1,n1=n1,o1=o1,p1=p1,q1=q1,r1=r1,
                               s1=s1,t1=t1,u1=u1,v1=v1,w1=w1,x1=x1,y1=y1,a2=a2,b2=b2,c2=c2,d2=d2,e2=e2,f2=f2,g2=g2,h2=h2,i2=i2,j2=j2,k2=k2,l2=l2,m2=m2,n2=n2,o2=o2)
    else:
        return "Room not found", 404