Пример #1
0
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}
Пример #2
0
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}
Пример #3
0
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
Пример #4
0
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