def ajax_like(): id_user = session.get('id_user_logged') id_post = request.form.get('post_id') if id_user: if liked(id_user, id_post): res = unlike(id_user, id_post) if not res: user_post = get_post_by_id(id_post) if not user_post['id_user_from'] == id_user: msg = "User: "******" " + \ session.get('user_data')['last_name'] + " unlike your post" add_notification(user_post['id_user_from'], msg) user = get_user_by_id(user_post['id_user_from']) rating = user['rating'] - 5 update_rating(rating, user_post['id_user_from']) return "unliked" else: res = like(id_user, id_post) if not res: user_post = get_post_by_id(id_post) if not user_post['id_user_from'] == id_user: msg = "User: "******" " + \ session.get('user_data')['last_name'] + " like your post" add_notification(user_post['id_user_from'], msg) user = get_user_by_id(user_post['id_user_from']) rating = user['rating'] + 5 update_rating(rating, user_post['id_user_from']) return "liked" return "Fail"
def about(id_user=None): if not session.get('user_data') and not id_user: return redirect('/') if id_user: user = get_user_by_id(id_user) about = get_about(id_user) else: user = session.get('user_data') about = get_about(session.get('id_user_logged')) if session.get('id_user_logged' ) and not user['id_user'] == session.get('id_user_logged'): msg = "User: "******" " + \ session.get('user_data')['last_name'] + " view your profile" add_notification(user['id_user'], msg) location = get_location_by_id(id_user) tags = get_tags_by_id_user(id_user) data = { 'user': user, 'about': about, 'all_friends': all_friends(user['id_user']), 'location': location, 'tags': tags } return render_template("timeline-about.html", data=data)
def ajax_add_comment(): id_photo = request.form['id_photo'] id_user = session.get('id') text = html.escape(request.form['text']) if not id_photo or not id_user or not text: return json.dumps({ 'ok': False, 'error': "Something went wrong" }) res = comments.add_comment(id_photo, id_user, text) to_whom_id = user_model.get_user_id_by_photo_id(id_photo) if to_whom_id != session.get('id'): msg = 'You have a new comment from ' + str(session.get('firstname')) + ' ' + str(session.get('lastname')) + '.' image = user_model.get_avatar(session.get('id')) notifications_view.add_notification(session.get('id'), to_whom_id, msg, 'comment', image) rating = user_model.get_user_fame_rating(to_whom_id) + 5 user_model.update_user_rating(rating, to_whom_id) if not res: return json.dumps({ 'ok': False, 'error': "The comment has not been added" }) return json.dumps({ 'ok': True, 'error': "Commented", 'id_comment': res, 'text': text })
def ajax_create_post(): content = html.escape(request.form.get('content').strip()) auth_id = session.get('id_user_logged') user_id = request.form.get('user_id') if content: user = get_user_by_id(auth_id) if user and user['active']: res = create_post(user_id, auth_id, "text", "public", content, None, None) if res: user_first_name = user['first_name'] user_last_name = user['last_name'] user_avatar = user['avatar'] post = get_post_by_id(res) if post: if not post['id_user'] == auth_id: msg = "User: "******" " + user_last_name + " send you post" add_notification(user_id, msg) user2 = get_user_by_id(user_id) rating = user2['rating'] + 10 update_rating(rating, user_id) data = { 'user_avatar': user_avatar, 'user_first_name': user_first_name, 'user_last_name': user_last_name, 'auth_id': auth_id, 'type': "text", 'content': content, 'id_post': res, 'date_creation': post['date_creation'].split(" ")[0], 'time_creation': post['date_creation'].split(" ")[1] } return jsonify(data) return "Fail"
def profile(id_user=None): if not session.get('user_data') and not id_user: return redirect('/') if id_user: user = get_user_by_id(id_user) posts = all_user_post(id_user) else: user = session.get('user_data') posts = all_user_post(session.get('id_user_logged')) if session.get('user_data'): user_cur = session.get('user_data') else: user_cur = None if session.get('id_user_logged' ) and not user['id_user'] == session.get('id_user_logged'): msg = "User: "******" " + \ session.get('user_data')['last_name'] + " view your profile" add_notification(user['id_user'], msg) data = { 'user': user, 'user_cur': user_cur, 'posts': posts, 'get_user_by_id': get_user_by_id, 'all_post_comments': all_post_comments, 'len_post_likes': len_post_likes, 'len_post_dislikes': len_post_dislikes, 'liked': liked, 'disliked': disliked, 'all_friends': all_friends(user['id_user']) } return render_template('timeline.html', data=data)
def ajax_delete_friend(): user_id = request.args.get('user_id') if sympathys.check_sympathy(session.get('id'), user_id): if sympathys.check_request(session.get('id'), user_id) == 'sender': sympathys.remove_request(session.get('id'), user_id) status = 'sender' else: status = 'taker' sympathys.set_request_status_to_zero(session.get('id'), user_id) if not sympathys.unlike_user(session.get('id'), user_id): msg = str(session.get('firstname')) + ' ' + str( session.get('lastname')) + ' does not like you anymore.' image = user_model.get_avatar(session.get('id')) notification_view.add_notification(session.get('id'), user_id, msg, 'unlike_user', image) rating = user_model.get_user_fame_rating(user_id) - 20 user_model.update_user_rating(rating, user_id) return json.dumps({ 'ok': True, 'error': "Unlike", 'status': status }) else: return json.dumps({'ok': False, 'error': "Something went wrong"}) else: return json.dumps({'ok': False, 'error': "Something went wrong"})
def message(data): room = chat_users_sid_to_room[request.sid] user_data = get_user_by_id(data['user_id']) data['user_data'] = user_data data['date_time'] = "{:%Y-%m-%d %H:%M:%S}".format(datetime.now()) data['message'] = html.escape(data['message']) room_data = get_chat_room_by_name(room) user_to_online = check_user_online(data['user_to_id']) save_message(room_data[0]['id_chat_room'], data['user_id'], data['user_to_id'], data['message'], user_to_online) emit('message_from_server', data, room=room) if not user_to_online: add_notification(data['user_to_id'], "new message from " + user_data['first_name'] + " " + user_data['last_name'])
def block(id_user): if not session.get('id_user_logged') and not id_user: return redirect('/') if if_user_blocked(session.get('id_user_logged'), id_user) or session.get('id_user_logged') == id_user: return redirect(request.referrer) block_user(session.get('id_user_logged'), id_user) if session.get('id_user_logged') and not id_user == session.get('id_user_logged'): msg = "User: "******" " + \ session.get('user_data')['last_name'] + " block you." add_notification(id_user, msg) user = get_user_by_id(id_user) rating = user['rating'] - 10 update_rating(rating, id_user) return redirect(request.referrer)
def ajax_add_user_request(): auth_id = session.get('id_user_logged') user_id = request.args.get('user_id') if auth_id: if auth_id == user_id: return "same user" add_fr = add_friend(auth_id, user_id) if not add_fr: msg = "User: "******" " + \ session.get('user_data')['last_name'] + " add you request to friends." add_notification(user_id, msg) return "waiting" return "false"
def ajax_delete_user_request(): auth_id = session.get('id_user_logged') user_id = request.args.get('user_id') if auth_id: if auth_id == user_id: return "same user" del_fr = delete_user_request(auth_id, user_id) if not del_fr: msg = "User: "******" " + \ session.get('user_data')['last_name'] + " delete request to friends." add_notification(user_id, msg) return "0" return "false"
def ajax_like_back_user(): user_id = request.args.get('user_id') if not sympathys.check_sympathy(session.get('id'), user_id): sympathys.like_back_user(session.get('id'), user_id) sympathys.add_users_to_sympathys(session.get('id'), user_id) msg = 'You like each other! Now you can chat with ' + str( session.get('firstname')) + ' ' + str( session.get('lastname')) + '.' image = user_model.get_avatar(session.get('id')) notification_view.add_notification(session.get('id'), user_id, msg, 'like_back_user', image) rating = user_model.get_user_fame_rating(user_id) + 20 user_model.update_user_rating(rating, user_id) return json.dumps({'ok': True, 'error': "Liked_back"})
def album(id_user=None): if not session.get('id_user_logged') and not id_user: return redirect('/') if id_user: user = get_user_by_id(id_user) album = user_images(id_user) else: user = get_user_by_id(session.get('id_user_logged')) album = user_images(session.get('id_user_logged')) if session.get('id_user_logged') and not user['id_user'] == session.get('id_user_logged'): msg = "User: "******" " + \ session.get('user_data')['last_name'] + " view your profile" add_notification(user['id_user'], msg) data = { 'user': user, 'all_friends': all_friends(user['id_user']), 'album': album } return render_template("timeline-album.html", data=data)
def ajax_like(): id_photo = request.form['id_photo'] id_user = request.form['id_user'] if not id_photo or not id_user: return json.dumps({'ok': False, 'error': "Something went wrong"}) res = likes.like(id_photo, id_user) if res: to_whom_id = user_model.get_user_id_by_photo_id(id_photo) if to_whom_id != session.get('id'): msg = str(session.get('firstname')) + ' ' + str( session.get('lastname')) + ' liked your photo.' image = user_model.get_avatar(session.get('id')) notification_view.add_notification(session.get('id'), to_whom_id, msg, 'like', image) rating = user_model.get_user_fame_rating(to_whom_id) + 5 user_model.update_user_rating(rating, to_whom_id) if res == 'was': return json.dumps({'ok': True, 'error': "Was dislike"}) return json.dumps({'ok': True, 'error': "Like"}) else: return json.dumps({'ok': False, 'error': "Remove like"})
def send_message(data): from_whom_id = data['from_whom_id'] to_whom_id = data['to_whom_id'] dialogue = id_dialogue_to_sid.get(request.sid) if not dialogue: dialogue = messages_model.get_dialogue_id(from_whom_id, to_whom_id) message = html.escape(data['message']) data['message'] = message user = user_model.get_user_by_id(from_whom_id)[0] data['user'] = user data['dialogue'] = dialogue data['my_id'] = session.get('id') if messages_model.send_message(dialogue, from_whom_id, to_whom_id, message): emit('add_message_to_template', data, room=dialogue) if not check_online_status(to_whom_id): notifications_view.add_notification( from_whom_id, to_whom_id, 'You have a new message from ' + user['firstname'] + ' ' + user['lastname'], 'message', user['avatar'])
def ajax_confirm_user_request(): auth_id = session.get('id_user_logged') user_id = request.args.get('user_id') if auth_id: if auth_id == user_id: return "same user" conf_fr = confirm_user_request(user_id, auth_id) if not conf_fr: msg = "User: "******" " + \ session.get('user_data')['last_name'] + " confirm you request to friends." add_notification(user_id, msg) user = get_user_by_id(user_id) rating = user['rating'] + 10 update_rating(rating, user_id) user2 = get_user_by_id(auth_id) rating2 = user2['rating'] + 10 update_rating(rating2, auth_id) session['friendlist'] = get_friendlist(auth_id) session['not_friends'] = get_not_friends(auth_id) return "1" return "false"
def ajax_like_user(): user_id = request.args.get('user_id') if photos_model.get_photos_nbr_by_id(session.get('id')) > 0: if photos_model.get_photos_nbr_by_id(user_id) < 1: return json.dumps({ 'ok': False, 'error': "To like a user, he must have at least one photo uploaded" }) check = sympathys.check_request(session.get('id'), user_id) if not check: res = sympathys.like_user(session.get('id'), user_id) if res: msg = str(session.get('firstname')) + ' ' + str( session.get('lastname')) + ' likes you!' image = user_model.get_avatar(session.get('id')) notification_view.add_notification(session.get('id'), user_id, msg, 'like_user', image) rating = user_model.get_user_fame_rating(user_id) + 20 user_model.update_user_rating(rating, user_id) return json.dumps({'ok': True, 'error': "Liked"}) else: return json.dumps({ 'ok': False, 'error': "Something went wrong" }) else: return json.dumps({'ok': False, 'error': "It's your friend"}) else: return json.dumps({ 'ok': False, 'error': "To like a user, you must have at least one photo uploaded" })
def ajax_delete_user_friend(): auth_id = session.get('id_user_logged') user_id = request.args.get('user_id') if auth_id: if auth_id == user_id: return "same user" res1 = delete_user_request(auth_id, user_id) if not res1: res2 = delete_user_request(user_id, auth_id) if not res2: msg = "User: "******" " + \ session.get('user_data')['last_name'] + " delete friendsip." add_notification(user_id, msg) user = get_user_by_id(user_id) rating = user['rating'] - 10 update_rating(rating, user_id) user2 = get_user_by_id(auth_id) rating2 = user2['rating'] - 10 update_rating(rating2, auth_id) session['friendlist'] = get_friendlist(auth_id) session['not_friends'] = get_not_friends(auth_id) return "0" return "false"
def profile(id_user=None): if not 'id' in session: return redirect('/') if 'id' in session: my_id = session.get('id') user = user_model.get_user_by_id(my_id)[0] friends = sympathys.get_sympathys_list(my_id) information = user_model.get_information(my_id) interests = user_model.get_interests_by_user_id(my_id) education = user_model.get_education_by_user_id(my_id) work = user_model.get_work_by_user_id(my_id) geolocation = geolocation_model.get_geolocation_by_user_id(my_id) if id_user: if not user_model.get_user_by_id(id_user): return render_template('404.html') user = user_model.get_user_by_id(id_user)[0] friends = sympathys.get_sympathys_list(id_user) information = user_model.get_information(id_user) interests = user_model.get_interests_by_user_id(id_user) education = user_model.get_education_by_user_id(id_user) work = user_model.get_work_by_user_id(id_user) geolocation = geolocation_model.get_geolocation_by_user_id(id_user) if id_user != session.get('id'): msg = str(session.get('firstname')) + ' ' + str( session.get('lastname')) + ' viewed your profile.' image = user_model.get_avatar(session.get('id')) notification_view.add_notification(session.get('id'), id_user, msg, 'view', image) user['age'] = date.today().year - datetime.strptime( user['birth_date'], '%Y-%m-%d %H:%M:%S').year data = { 'user': user, 'friends': friends, 'sympathys': sympathys, 'information': information, 'interests': interests, 'education': education, 'work': work, 'geolocation': geolocation, 'unread_messages_nbr': messages_model.get_unread_messages_nbr_by_user_id(session.get('id')), 'incoming_requests_nbr': sympathys.get_incoming_requests_nbr(session.get('id')), 'check_block': sympathys.check_block, 'offline_users': get_offline_users(), 'online_users': get_online_users() } return render_template('profile.html', data=data)