def edit_post(hash_id): paste = get_paste(hash_id) if not paste.is_user_owned(request.user): abort(404) form = PasteForm(request.POST) if form.validate(): user = login.get_user() paste.title = form.title.data paste.is_private = form.is_private.data tags = [] codes = [code for code in paste.codes] paste.codes = [] for code in codes: code.delete() for i, c in enumerate(form.codes): tag_name = c.tag.data.lower() if not c.title.data: c.title.data = '代码片段%s' % (i + 1) code = Code(title=c.title.data, content=c.content.data, tag=tag_name, user=user) code.save() tags.append(tag_name) tag = Tag.objects(name=tag_name).first() if tag: tag.popularity += 1 else: tag = Tag(name=tag_name) tag.save() paste.codes.append(code) paste.tags = list(set(tags)) paste.save() return redirect('/paste/%s' % paste.hash_id) return {'form': form, 'paste': paste, 'token': request.csrf_token}
def create_post(): form = PasteForm(request.POST) if form.validate(): user = login.get_user() paste = Paste(title=form.title.data, user=user, is_private=form.is_private.data) tags = [] for i, c in enumerate(form.codes): tag_name = c.tag.data.lower() if not c.title.data: c.title.data = '代码片段%s' % (i + 1) code = Code(title=c.title.data, content=c.content.data, tag=tag_name, user=user) code.save() tags.append(tag_name) tag = Tag.objects(name=tag_name).first() if tag: tag.popularity += 1 else: tag = Tag(name=tag_name) tag.save() paste.codes.append(code) paste.tags = list(set(tags)) paste.save() return redirect('/paste/%s' % paste.hash_id) return {'form': form, 'token': request.csrf_token}
def save_paste_and_codes(form, paste=None): if not paste: paste = Paste(user=current_user.user) paste.title = form.title.data paste.is_private = form.is_private.data paste.codes = [] tags = {} for tag in form.tags.data.split(): tags[tag.lower()] = tag.lower() for i, c in enumerate(form.codes): syntax = Syntax.objects(key=c.syntax.data).get_or_404() if not c.title.data: c.title.data = '代码片段%s' % (i + 1) code = Code(title=c.title.data, content=c.content.data, syntax=syntax) tags[syntax.key] = syntax.name paste.codes.append(code) for key in tags: syntax = Syntax.objects(name__iexact=tags[key]).first() tag = Tag.objects(key__iexact=key).first() if not tag and syntax: tag = Tag(key=syntax.key, name=syntax.name) tag.save() elif not tag and not syntax: tag = Tag(key=key, name=tags[key]) else: tag.popularity += 1 tag.save() if tag not in paste.tags: paste.tags.append(tag) paste.save() return paste
def index(): page = get_page() pagination = Paste.objects(is_private=False).order_by('-updated_at').paginate(page=page, per_page=20) return render_template('index.html', pagination=pagination, tags=Tag.objects().order_by('-popularity')[:10])
def view(username): page = get_page() user = User.objects.get_or_404(username=username) pastes = user.pastes.order_by('-updated_at') if not (current_user.is_authenticated and current_user.user == user): pastes = pastes(is_private=False) pagination = pastes.paginate(page, per_page=20) pastes = Paste.objects(user=user) syntax = {} for paste in pastes: for code in paste.codes: if code.syntax.name not in syntax: syntax[code.syntax.name] = 1 else: syntax[code.syntax.name] += 1 if len(syntax.keys()) > 3: most_syntax = [get_most_syntax(syntax) for i in range(3)] else: most_syntax = [Syntax.objects(name=key).first() for key in syntax] return render_template('users/user.html', user=user, pagination=pagination, most_syntax=most_syntax, tags=Tag.objects().order_by('-popularity')[:10])
def index(): page = get_page() pastes = Paste.objects(is_private=False).order_by('-updated_at') pastes, summary = paginate(pastes, page) return {'pastes': pastes, 'page_summary': summary, 'tags': Tag.objects().order_by('-popularity')[:10]}
def index(): page = get_page() pastes = Paste.objects(is_private=False).order_by('-updated_at') pastes, summary = paginate(pastes, page) return { 'pastes': pastes, 'page_summary': summary, 'tags': Tag.objects().order_by('-popularity')[:10] }
def likes_get(username): user = get_user(username) page = get_page() likes = user.likes.order_by('-updated_at') likes, summary = paginate(likes, page) return {'user': user, 'likes': likes, 'page_summary': summary, 'tags': Tag.objects().order_by('-popularity')[:10]}
def likes_get(username): user = get_user(username) page = get_page() likes = user.likes.order_by('-updated_at') likes, summary = paginate(likes, page) return { 'user': user, 'likes': likes, 'page_summary': summary, 'tags': Tag.objects().order_by('-popularity')[:10] }
def save_paste_and_codes(form, paste=None): if not paste: paste = Paste(user=current_user.user) paste.title = form.title.data paste.is_private = form.is_private.data paste.codes = [] paste.tags = [] tags = [] if form.tags.data: form.tags.data.split(' ') syntaxes = [] for i, c in enumerate(form.codes): syntax = Syntax.objects(key=c.syntax.data).get_or_404() syntaxes.append(syntax) if not c.title.data: c.title.data = '代码片段%s' % (i + 1) code = Code(title=c.title.data, content=c.content.data, syntax=syntax) paste.codes.append(code) for syntax in syntaxes: tag = Tag.objects(key=syntax.key).first() if not tag: tag = Tag(key=syntax.key, name=syntax.name) tag.save() for key in tags: tag = Tag.objects(name__iexact=key).first() if not tag: tag = Tag(key=key.lower(), name=key.lower()) else: tag.popularity += 1 tag.save() if tag not in paste.tags: paste.tags.append(tag) paste.save() return paste
def user_index(username): page = get_page() user = get_user(username) pastes = user.pastes.order_by('-updated_at') if not (request.user and request.user == user): pastes = pastes(is_private=False) pastes, summary = paginate(pastes, page) return {'user': user, 'pastes': pastes, 'page_summary': summary, 'tags': Tag.objects().order_by('-popularity')[:10]}
def view_user(username): page = get_page() user = User.objects.get_or_404(username=username) pastes = user.pastes.order_by('-updated_at') if not (current_user.is_authenticated and current_user.user == user): pastes = pastes(is_private=False) pagination = pastes.paginate(page, per_page=20) return render_template('users/user.html', user=user, pagination=pagination, tags=Tag.objects().order_by('-popularity')[:10])
def user_index(username): page = get_page() user = get_user(username) pastes = user.pastes.order_by('-updated_at') if not (request.user and request.user == user): pastes = pastes(is_private=False) pastes, summary = paginate(pastes, page) return { 'user': user, 'pastes': pastes, 'page_summary': summary, 'tags': Tag.objects().order_by('-popularity')[:10] }
def index(): page = get_page() pagination = Paste.objects(is_private=False).order_by('-updated_at').paginate(page=page, per_page=20) print datetime.today() return render_template('index.html', pagination=pagination, hot_pastes=Paste.objects(is_private=False).order_by('-views')[:10], pastes_count=Paste.objects().count(), comments_count=Comment.objects().count(), users_count=User.objects().count(), syntax_count=Syntax.objects().count(), bookmarks_count=Bookmark.objects().count(), users_increased=User.objects(created_at__gt=date.today()).count(), pastes_increased=Paste.objects(created_at__gt=date.today()).count(), comments_increased=Comment.objects(created_at__gt=date.today()).count(), bookmarks_increased=Bookmark.objects(created_at__gt=date.today()).count(), tags=Tag.objects().order_by('-popularity')[:10])
def index(): page = get_page() pagination = Paste.objects( is_private=False).order_by('-updated_at').paginate(page=page, per_page=20) print datetime.today() return render_template( 'index.html', pagination=pagination, hot_pastes=Paste.objects(is_private=False).order_by('-views')[:10], pastes_count=Paste.objects().count(), comments_count=Comment.objects().count(), users_count=User.objects().count(), syntax_count=Syntax.objects().count(), bookmarks_count=Bookmark.objects().count(), users_increased=User.objects(created_at__gt=date.today()).count(), pastes_increased=Paste.objects(created_at__gt=date.today()).count(), comments_increased=Comment.objects( created_at__gt=date.today()).count(), bookmarks_increased=Bookmark.objects( created_at__gt=date.today()).count(), tags=Tag.objects().order_by('-popularity')[:10])
def tags(): return render_template('tags/index.html', tags=Tag.objects().order_by('-popularity'))
def status(): return jsonify(version=current_app.config['VERSION'], pastes=Paste.objects().count(), bookmarks=Bookmark.objects().count(), tags=Tag.objects().count(), users=User.objects().count())
def tags(): return {'tags': Tag.objects().order_by('-popularity')}
def tags(): return render_template('tags/index.html', hot_pastes=Paste.objects(is_private=False).order_by('-views')[:10], tags=Tag.objects().order_by('-popularity'))
def tags(): return render_template( 'tags/index.html', hot_pastes=Paste.objects(is_private=False).order_by('-views')[:10], tags=Tag.objects().order_by('-popularity'))