Пример #1
0
def writing():
    if request.method == 'POST':
        title = request.form['title']
        summary = request.form['summary']
        body = request.form['content']
        # tag = request.form['tag']
        if 'theme-img' in request.files:
            image = request.files['theme-img']
            image_name = image.filename
            new_image_name = unique_filename(image_name)
            image_path = os.path.join(app.config['UPLOAD_FOLDER'], new_image_name)
            image.save(image_path)
            theme_img = url_for('uploaded_file', filename=new_image_name)
            thumbnail_img_name = create_thumbnail_and_save(image_path, image_name, app.config['MAX_POST_IMG_WIDTH'])
            thumbnail_img = url_for('uploaded_file', filename=thumbnail_img_name)

        else:
            theme_img = app.config['DEFAULT_POST_IMG']
            thumbnail_img = app.config['DEFAULT_POST_THUMB_IMG']

        # tag = Tag(name=tag, creator_id=current_user.id)
        post = Post(title=title, theme_img=theme_img, thumbnail_img=thumbnail_img,
                    summary=summary, body=body, user_id=current_user.id)
        # post.tags.append(tag)
        post.save()

        return redirect(url_for('blog.article', post_id=post.id))

    return render_template('profile/writing.html')
Пример #2
0
def _edit_profile():
    """
    Edit the personal information
    :return:
    """
    pyname = current_user.pyname
    user = User.query.filter_by(pyname=pyname).first()

    new_nickname = request.form['new_nickname']
    new_gender = request.form['new_gender']
    new_about_me = request.form['new_about_me']

    zoom = request.form['zoom']
    x_offset = request.form['x_offset']
    y_offset = request.form['y_offset']
    width = request.form['width']
    height = request.form['height']

    if 'new_avatar' in request.files:
        new_avatar = request.files['new_avatar']
        filename = unique_filename(new_avatar.filename)
        filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename)
        new_avatar.save(filepath)
        im = Image.open(filepath)

        def get_raw_pixel(pixel, z=zoom):
            return int(fabs(round(float(pixel)/(float(z)))))

        raw_x = get_raw_pixel(x_offset)
        raw_y = get_raw_pixel(y_offset)
        raw_width = get_raw_pixel(width)
        raw_height = get_raw_pixel(height)
        box = (raw_x, raw_y, raw_x+raw_width, raw_y+raw_height)
        region = im.crop(box)
        max_width = app.config['MAX_AVATAR_IMG_WIDTH']
        if raw_width > max_width:
            region = region.resize((max_width, max_width), Image.ANTIALIAS)
        region.save(filepath)
        user.avatar = url_for('uploaded_file', filename=filename)
    else:
        pass

    if user.nickname != new_nickname:
        user.nickname = new_nickname
        new_pyname = ''.join(lazy_pinyin(new_nickname, errors='replace'))
        new_pyname = User.make_unique_pyname(new_pyname)
        user.pyname = new_pyname

    if new_gender == 'female':
        gender = 0
    elif new_gender == 'male':
        gender = 1
    else:
        gender = 10
    user.gender = gender
    user.about_me = new_about_me
    user.save()
    new_profile_data = {'nickname': new_nickname, 'gender': new_gender,
                        'about-me': new_about_me, 'avatar': current_user.avatar}

    return json.dumps(new_profile_data)