Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)