def stream(username): if (current_user.username != username): return redirect(url_for('stream', username=current_user.username)) else: form = PostForm() user = query_db('SELECT * FROM Users WHERE username=?', username, one=True) if form.is_submitted() and form.validate_on_submit(): content = sanitizeStr(form.content.data, strip=False) if form.image.data: filename = photos.save(form.image.data) else: filename = None # if both content and image is blank. if form.content.data == '' and not form.image.data: return redirect( url_for('stream', username=current_user.username)) query_db( 'INSERT INTO Posts (u_id, content, image, creation_time) VALUES(?, ?, ?, ?)', user['id'], content, filename, datetime.now()) return redirect(url_for('stream', username=current_user.username)) posts = query_db( 'SELECT p.*, u.*, (SELECT COUNT(*) FROM Comments WHERE p_id=p.id) AS cc FROM Posts AS p JOIN Users AS u ON u.id=p.u_id WHERE p.u_id IN (SELECT u_id FROM Friends WHERE f_id=?) OR p.u_id IN (SELECT f_id FROM Friends WHERE u_id=?) OR p.u_id=? ORDER BY p.creation_time DESC', user['id'], user['id'], user['id']) return render_template('stream.html', title='Stream', username=username, form=form, posts=posts)
def stream(username): form = PostForm() user = query_db('SELECT * FROM Users WHERE username= ?;', (username, ), one=True) if not user: return error() if form.is_submitted(): if form.image.data: path = os.path.join(app.config['UPLOAD_PATH'], form.image.data.filename) form.image.data.save(path) query_db( 'INSERT INTO Posts (u_id, content, image, creation_time) VALUES (?, ?, ?, ?);', (user['id'], form.content.data, form.image.data.filename, datetime.now())) return redirect(url_for('stream', username=username)) posts = query_db( 'SELECT p.*, u.*, (SELECT COUNT(*) FROM Comments WHERE p_id=p.id) AS cc FROM Posts AS p JOIN Users AS u ON u.id=p.u_id WHERE p.u_id IN (SELECT u_id FROM Friends WHERE f_id={0}) OR p.u_id IN (SELECT f_id FROM Friends WHERE u_id={0}) OR p.u_id={0} ORDER BY p.creation_time DESC;' .format(user['id'])) return render_template('stream.html', title='Stream', username=username, form=form, posts=posts)
def index(page=1): user = current_user form = PostForm() if form.is_submitted(): post = Post(form.post.data, user, datetime.utcnow()) db.session.add(post) db.session.commit() flash(gettext("发射成功!")) return redirect(url_for('index')) posts = current_user.followed_posts().paginate(page, POSTS_PER_PAGE, False) return render_template('index.html', title="努努和菜菜的后花园", user=user, form=form, posts=posts)
def stream(username): if username != current_user.username: return redirect(current_user.username) form = PostForm() user = User.query.filter_by(username = username).first() if form.is_submitted(): validInput = True if form.image.data: extension = os.path.splitext(form.image.data.filename) #Gets the uploaded file's extension extension = extension[1].lower() if extension in app.config['ALLOWED_EXTENSIONS']: #Checks if the file extension is in the whitelist, returns true if it is path = os.path.join(app.config['UPLOAD_PATH'], form.image.data.filename) form.image.data.save(path) else: validInput = False flash("Invalid file extension") if validInput: post = Post(u_id = user.id, content=form.content.data, image=form.image.data.filename, creation_time=datetime.now()) db.session.add(post) db.session.commit() return redirect(url_for('stream', username=username)) friends = db.session.query(Friend).filter(user.id == Friend.u_id).all() posts_f = db.session.query(User, Post).join(Post).filter(Post.u_id == user.id).all() posts = [] for friend in friends: friend_posts = db.session.query(User,Post).join(Post).filter(Post.u_id == friend.f_id).all() for friend_post in friend_posts: posts_f.append(friend_post) for post_f in posts_f: if post_f != None: post = post_f + (db.session.query(Comment).filter(post_f[1].id == Comment.p_id).count(),) posts.append(post) posts.sort(key=sortPosts, reverse=True) return render_template('stream.html', title='Stream', username=username, form=form, posts=posts)
def stream(username): if username != session["user"]: session["err"] = "trying to get into another stream" return redirect(url_for('error')) form = PostForm() query = ('SELECT * FROM Users WHERE username=?;', (username, )) user = query_db(query, one=True) if form.is_submitted(): if form.image.data: filename = form.image.data.filename if filename == "": session["err"] = "no filename" return redirect(url_for('error')) if not legalimg(filename): session["err"] = "illegal filetype" return redirect(url_for('error')) path = os.path.join(app.config['UPLOAD_PATH'], form.image.data.filename) form.image.data.save(path) query = ( 'INSERT INTO Posts (u_id, content, image, creation_time) VALUES(?, ?, ?, ?);', (user['id'], form.content.data, form.image.data.filename, datetime.now())) query_db(query) return redirect(url_for('stream', username=username)) query = ( 'SELECT p.*, u.*, (SELECT COUNT(*) FROM Comments WHERE p_id=p.id) AS cc FROM Posts AS p JOIN Users AS u ON u.id=p.u_id WHERE p.u_id IN (SELECT u_id FROM Friends WHERE f_id=?) OR p.u_id IN (SELECT f_id FROM Friends WHERE u_id=?) OR p.u_id=? ORDER BY p.creation_time DESC;', (user['id'], user['id'], user['id'])) posts = query_db(query) return render_template('stream.html', title='Stream', username=username, sessionuser=session["user"], form=form, posts=posts)
def assignment(id): assignment = Assignment.query.filter_by(id=id).first_or_404() section = Section.query.filter_by(id=assignment.section_id).first_or_404() # commit form commit_form = CommitForm() set_options(commit_form, section, assignment) if commit_form.is_submitted(): commit_form = CommitForm(formdata=None) set_options(commit_form, section, assignment) post_form = PostForm() set_options(post_form, section, assignment) if post_form.is_submitted(): post_form = PostForm(formdata=None) set_options(post_form, section, assignment) comment_form = CommentForm() if comment_form.is_submitted(): comment_form = CommentForm(formdata=None) return render_template('_assignment.html', assignment=assignment, commit_form=commit_form, post_form=post_form, comment_form=comment_form)