def like(message_id): message = Message.getMessage(message_id) if not message: abort(404) if message and message.parent: abort(404) from_user = User.getByName(session.get('username')) # check if first like or not existing_like = Database.find('messages', { "parent": message_id, "from_user": from_user.id, "message_type": MESSAGE_TYPE.get(LIKE) }).count() if not existing_like: # write like like_ = Message( from_user=from_user.id, to_user=message.from_user, parent=message_id, message_type=MESSAGE_TYPE.get(LIKE) ) like_.save_database() return redirect(url_for('feed_blueprint.comment', message_id=message.id))
def comment(message_id): form = FeedPostForm() message = Message.getMessage(message_id) if not message: abort(404) if message and message.parent: abort(404) if form.validate_on_submit() and session.get('username'): # process post from_user = User.getByName(session.get('username')) post = form.post.data # process write comment_ = Message( from_user=from_user.id, text=post, parent=message_id, message_type=MESSAGE_TYPE.get(COMMENT), ) comment_.save_database() return redirect(url_for('feed_blueprint.comment', message_id=message_id)) return render_template('feed/message.html', message=message, form=form )
def add_message(): ref = request.referrer form = FeedPostForm() if form.validate_on_submit(): # process images post_images = [] uploaded_files = request.files.getlist('images') if uploaded_files and uploaded_files[0].filename != '': for file in uploaded_files: filename = secure_filename(file.filename) file_path = os.path.join(UPLOAD_FOLDER, 'posts', filename) file.save(file_path) post_images.append(file_path) # process post from_user = User.objects.get(username=session.get('username')) to_user = User.objects.get(username=request.values.get('to_user')) post = form.post.data # if this is a self post if to_user == from_user: to_user = None # write the message message = Message( from_user=from_user, to_user=to_user, text=post, message_type=POST, ).save() # store on the same user's feed feed = Feed( user=from_user, message=message, ).save() # store images if len(post_images): images = [] for file_path in post_images: (image_ts, width) = image_height_transform(file_path, 'posts', str(message.id)) images.append({"ts": str(image_ts), "w": str(width)}) message.images = images message.save() # process the message process_message(message) if ref: return redirect(ref) else: return redirect(url_for('home_app.home')) else: return 'Error!'
def message(message_id): form = FeedPostForm() message = None message = Message.objects.filter(id=message_id).first() if not message: abort(404) if message and message.parent: abort(404) if form.validate_on_submit and session.get('username'): # Process post from_user = User.objects.get(username=session.get('username')) post = form.post.data # Write the message comment = Message(from_user=from_user, text=post, message_type=COMMENT, parent=message_id).save() return redirect(url_for('feed_app.message', message_id=message.id)) return render_template('feed/message.html', message=message, form=form)
def like_message(message_id): message = None message = Message.objects.filter(id=message_id).first() if not message: abort(404) if message and message.parent: abort(404) from_user = User.objects.get(username=session.get('username')) # Check if first like existing_like = Message.objects.filter(parent=message_id, message_type=LIKE, from_user=from_user).count() if not existing_like: # Write the like like = Message(from_user=from_user, to_user=message.from_user, message_type=LIKE, parent=message_id).save() return redirect(url_for('feed_app.message', message_id=message.id))
def edit_message(message_id): message = None user = User.objects.filter(username=session.get("username")).first() message = Message.objects.filter(id=message_id).first() if not message: abort(404) if message and message.parent: abort(404) if user: form = FeedPostForm(obj=message) if form.validate_on_submit(): # Process post # from_user = User.objects.get(username=session.get("username")) post = form.post.data form.populate_obj(message) # Edit the comment comment = Message( from_user=user, text=post, message_type=COMMENT, parent=message_id, ).save() return redirect(url_for("feed_app.message", message_id=message.id)) return render_template("feed/message.html", message=message, form=form, action="edit") else: abort(404)
def message(message_id): form = FeedPostForm() message = None message = Message.objects.filter(id=message_id).first() if not message: abort(404, '82 message not found') # if message and message.parent: # abort(404,'82 message==parent') if form.validate_on_submit() and session.get('username'): # process post from_user = User.objects.get(username=session.get('username')) post = form.post.data # write the message comment = Message(from_user=from_user, text=post, message_type=COMMENT, parent=message_id).save() return redirect(url_for('feed_app.message', message_id=message.id)) return render_template('feed/message.html', message=message, form=form) # @feed_app.route('/like/<message_id>', methods=('GET', 'POST')) # @login_required # def like_message(message_id): # message = None # # message = Message.objects.filter(id=message_id).first() # if not message: # abort(404) # # if message and message.parent: # abort(404) # # from_user = User.objects.get(username=session.get('username')) # check if first like # existing_like = Message.objects.filter( # parent=message_id, # message_type=LIKE, # from_user=from_user).count() # # if not existing_like: # # write the like # like = Message( # from_user=from_user, # to_user=message.from_user, # message_type=LIKE, # parent=message_id # ).save() return redirect(url_for('feed_app.message', message_id=message.id))
def profile(username, friends_page_number=1): logged_user = None rel = None friends_page = False friends_per_page = 3 profile_messages = [] user = User.getByName(username) if user: if session['username']: logged_user = User.getByName(session['username']) rel = Relationship.get_relationship_status(logged_user.id, user.id) # get user friends friends_list = Relationship.get_friends( user=logged_user.id, rel_type=RELATIONSHIP_TYPE.get(FRIENDS), status=STATUS_TYPE.get(APPROVED) ) friends_total = len(friends_list) if 'friends' in request.url: friends_page = True # pagination limit = friends_per_page * friends_page_number offset = limit - friends_per_page if friends_total >= limit: friends = friends_list[offset:limit] else: friends = friends_list[offset:friends_total] else: if friends_total >= 5: friends = friends_list[:5] else: friends = friends_list form = FeedPostForm() if logged_user and (rel == "SAME" or rel == "FRIENDS_APPROVED"): profile_messages = Message.getMessages(logged_user.id) return render_template('user/profile.html', user=user, logged_user=logged_user, rel=rel, friends=friends, friends_total=friends_total, friends_page=friends_page, form=form, profile_messages=profile_messages ) else: abort(404)
def add_message(): ref = request.referrer form = FeedPostForm() if form.validate_on_submit(): from_user = User.getByName(session.get('username')) from_user = from_user.id # process images post_images = [] uploaded_files = request.files.getlist('images') if uploaded_files and uploaded_files[0].filename != '': for file in uploaded_files: filename = secure_filename(file.filename) folder_path = os.path.join(Config.UPLOAD_FOLDER, 'posts_' + from_user) if not os.path.exists(folder_path): os.makedirs(folder_path) file_path = os.path.join(folder_path, filename) file.save(file_path) post_images.append(file_path) # process post to_user = User.getByName(request.values.get('to_user')) to_user = to_user.id post = form.post.data # if this is a self post if from_user == to_user: to_user = None message = Message( from_user=from_user, to_user=to_user, text=post, ) message.save_database() feed = Feed( user=from_user, message=message.id ) feed.save_database() # store images if len(post_images): images = [] for file_path in post_images: (image_ts, width) = image_height_transform(file_path, 'posts', str(message.id)) images.append({"ts": str(image_ts), "w": str(width)}) message.images = images message.update_record() # process the message process_message(message) if ref: return redirect(ref) else: return redirect(url_for('user_blueprint.home')) else: return abort(404)
def add_message(): ref = request.referrer form = FeedPostForm() # if form.validate_on_submit() or request.method == "POST": if form.validate_on_submit(): # For this to work, have to include text when uploading a picture # It's because post in forms.py has DataRequired() as a validator # At least I think that's why # Process images post_images = [] uploaded_files = request.files.getlist("images") if uploaded_files and uploaded_files[0].filename != "": for file in uploaded_files: filename = secure_filename(file.filename) file_path = os.path.join(UPLOAD_FOLDER, "posts", filename) file.save(file_path) post_images.append(file_path) # Process post from_user = User.objects.get(username=session.get("username")) to_user = User.objects.get(username=request.values.get("to_user")) post = form.post.data # If this a self post if to_user == from_user: to_user = None # Write the message to the database message = Message( from_user=from_user, to_user=to_user, text=post, message_type=POST, ).save() # Store on the same user's feed feed = Feed( user=from_user, message=message, ).save() # Store images if len(post_images): images = [] for file_path in post_images: (image_ts, width) = image_height_transform(file_path, "posts", str(message.id)) images.append({"ts": str(image_ts), "w": str(width)}) message.images = images message.save() # Process the message process_message(message) if ref: return redirect(ref) else: return redirect(url_for("home_app.home"))