Esempio n. 1
0
def post(request):
    """
    匿名用户投稿
    """

    current_page = APP

    if request.method == 'GET':
        form = WikiForm()
        return render('wiki_post.html',
                      locals(),
                      context_instance=RequestContext(request))

    form = WikiForm(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        try:
            send_mail(u'投稿', u'文章链接:%s' % data['source'], '*****@*****.**',
                      ['*****@*****.**'])
        except Exception:
            pass
        msg = '感谢你的投稿,链接已发送至管理员'
        return render('posted.html',
                      locals(),
                      context_instance=RequestContext(request))
    else:
        return render('wiki_post.html',
                      locals(),
                      context_instance=RequestContext(request))
Esempio n. 2
0
def add(request):
    """ 用户写新的文章 """

    current_page = 'user_wiki'
    title = '投稿'

    if request.method == 'GET':
        form = WikiForm()
        return render('wiki_add.html',locals(),context_instance=RequestContext(request))

    form = WikiForm(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        new_wiki = Entry()
        new_wiki.author = request.user
        new_wiki.title = data['title']
        new_wiki.content = data['content']
        new_wiki.source = data['source']
        
        try:
            new_wiki.save()
        except Exception,e:
            return HttpResponse('保存文章时出错:%s'%e)
        else:

            # 开启线程添加文章标签
            TagingThread(wiki_object=new_wiki).start()
            # 开启下载图片的线程
            ImageDownloader(new_wiki).start()
            # 发送信号
            new_wiki_was_post.send(
                sender= new_wiki.__class__,
                wiki =  new_wiki
            )
            return HttpResponseRedirect('/wiki/%d/' %new_wiki.id)
Esempio n. 3
0
def post(request):
    """
    匿名用户投稿
    """

    #########################################################################################
    # 用户操作行为安全保护

    # 计时器
    timer = time.time() - request.session.get('time_stamp', 0)

    # 危险操作次数
    action_times = request.session.get('action_times', 0)

    # 错误次数是否大于最大
    if action_times >= 1:
        if not check_verify(request):
            return render('verify.html',
                          locals(),
                          context_instance=RequestContext(request))
        else:

            # 重置标志位
            reset(request)

    elif timer > 60:
        # 重置标志位
        reset(request)
    #########################################################################################

    current_page = APP

    # 处理GET请求
    if request.method == 'GET':
        form = WikiForm()
        return render('wiki_post.html',
                      locals(),
                      context_instance=RequestContext(request))

    # 处理POST请求
    form = WikiForm(request.POST)
    set(request)
    if form.is_valid():
        data = form.cleaned_data
        try:
            send_mail(u'投稿', u'文章链接:%s' % data['source'], '*****@*****.**',
                      ['*****@*****.**'])
        except Exception:
            pass
        msg = '感谢你的投稿,链接已发送至管理员'
        return render('posted.html',
                      locals(),
                      context_instance=RequestContext(request))
    else:
        return render('wiki_post.html',
                      locals(),
                      context_instance=RequestContext(request))
Esempio n. 4
0
def edit(request, wiki_id):
    """ 用户编辑文章 """
    current_page = 'user_wiki'
    title = '修改文章'

    try:
        wiki_id = int(wiki_id)
    except ValueError:
        raise Http404()

    try:
        wiki = Entry.objects.get(id=wiki_id, author=request.user)
    except Entry.DoesNotExist:
        raise Http404()

    if wiki.md_content:
        template = 'wiki_add_md.html'
    else:
        template = 'wiki_add.html'

    if wiki.public:
        messages.error(request, u'文章已经发表,不允许被修改或删除')
        url = '/wiki/{}/'.format(wiki.id)
        return HttpResponseRedirect(url)

    # 处理GET请求
    if request.method == 'GET':
        form = WikiForm(instance=wiki)
        return render(template,
                      locals(),
                      context_instance=RequestContext(request))

    # 处理POST请求
    if wiki.md_content:
        form = WikiMdForm(request.POST)
    else:
        form = WikiForm(request.POST)

    if form.is_valid():
        data = form.cleaned_data
        for k, v in data.items():
            setattr(wiki, k, v)
        try:
            wiki.save()
        except Exception, e:
            messages.error(request, u'保存文章时出错:%s' % e)
            return HttpResponseRedirect('/home/wiki/')
        else:
            messages.success(request, u'修改成功!')

        return HttpResponseRedirect('/wiki/%d/' % wiki.id)
Esempio n. 5
0
def edit(request,wiki_id):
    """ 用户编辑文章 """
    current_page = 'user_wiki'
    title = '修改文章'

    try:
        wiki_id = int(wiki_id)
    except ValueError:
        raise Http404()
    
    try:
        wiki = Entry.objects.get(id=wiki_id,author=request.user)
    except Entry.DoesNotExist:
        raise Http404()

    if wiki.md_content:
        template = 'wiki_add_md.html'
    else:
        template = 'wiki_add.html'

    if wiki.public:
        messages.error(request,'文章已经发表,不允许被修改或删除')
        url = '/wiki/{}/'.format(wiki.id)
        return HttpResponseRedirect(url)

    
    # 处理GET请求
    if request.method == 'GET':
        form = WikiForm(instance=wiki)
        return render(template,locals(),context_instance=RequestContext(request))

    # 处理POST请求    
    if wiki.md_content:
        form = WikiMdForm(request.POST)
    else:
        form = WikiForm(request.POST)

    if form.is_valid():
        data = form.cleaned_data
        for k,v in data.items():
            setattr(wiki,k,v)
        try:
            wiki.save()
        except Exception,e:
            messages.error(request,'保存文章时出错:%s'%e)
            return HttpResponseRedirect('/home/wiki/')
        else:
            messages.success(request,'修改成功!')

        return HttpResponseRedirect('/wiki/%d/' %wiki.id)
Esempio n. 6
0
def post(request):
    """
    匿名用户投稿
    """
    
    #########################################################################################
    # 用户操作行为安全保护

    # 计时器
    timer = time.time() - request.session.get('time_stamp',0)

    # 危险操作次数
    action_times = request.session.get('action_times',0)

    # 错误次数是否大于最大
    if action_times >= 1:
        if not check_verify(request):
            return render('verify.html',locals(),context_instance=RequestContext(request))
        else:

            # 重置标志位
            reset(request)

    elif timer > 60:
        # 重置标志位
        reset(request)
    #########################################################################################

    current_page = APP

    # 处理GET请求
    if request.method == 'GET':
        form = WikiForm()
        return render('wiki_post.html',locals(),context_instance=RequestContext(request))

    # 处理POST请求
    form = WikiForm(request.POST)
    set(request)
    if form.is_valid():
        data = form.cleaned_data
        try:
            send_mail(u'投稿',u'文章链接:%s' %data['source'],'*****@*****.**',['*****@*****.**'])
        except Exception:
            pass
        msg = '感谢你的投稿,链接已发送至管理员'
        return render('posted.html',locals(),context_instance=RequestContext(request))
    else:
        return render('wiki_post.html',locals(),context_instance=RequestContext(request))
Esempio n. 7
0
def edit(request, wiki_id):
    """ 用户编辑文章 """
    current_page = 'user_wiki'
    title = '修改文章'

    try:
        wiki_id = int(wiki_id)
    except ValueError:
        raise Http404()

    try:
        wiki = Entry.objects.get(id=wiki_id, author=request.user)
    except Entry.DoesNotExist:
        raise Http404()

    # 处理GET请求
    if request.method == 'GET':
        form = WikiForm(instance=wiki)
        return render('wiki_add.html',
                      locals(),
                      context_instance=RequestContext(request))

    # 处理POST请求
    form = WikiForm(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        wiki.title = data['title']
        wiki.content = data['content']
        wiki.source = data['source'] and data[
            'source'] or 'http://pythoner.net/home/%d/' % request.user.id
        try:
            wiki.save()
        except Exception, e:
            messages.error(request, '保存文章时出错:%s' % e)
            return HttpResponseRedirect('/home/wiki/')
        else:
            messages.success(request, '修改成功!')

        # 开启添加标签线程
        TagingThread(wiki_object=wiki).start()
        ImageDownloader(wiki).start()

        return HttpResponseRedirect('/wiki/%d/' % wiki.id)
Esempio n. 8
0
def edit(request,wiki_id):
    """ 用户编辑文章 """
    current_page = 'user_wiki'
    title = '修改文章'

    try:
        wiki_id = int(wiki_id)
    except ValueError:
        raise Http404()
    
    try:
        wiki = Entry.objects.get(id=wiki_id,author=request.user)
    except Entry.DoesNotExist:
        raise Http404()
    
    # 处理GET请求
    if request.method == 'GET':
        form = WikiForm(instance=wiki)
        return render('wiki_add.html',locals(),context_instance=RequestContext(request))

    # 处理POST请求    
    form = WikiForm(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        wiki.title = data['title']
        wiki.content = data['content']
        wiki.source = data['source'] and data['source'] or 'http://pythoner.net/home/%d/' %request.user.id
        try:
            wiki.save()
        except Exception,e:
            messages.error(request,'保存文章时出错:%s'%e)
            return HttpResponseRedirect('/home/wiki/')
        else:
            messages.success(request,'修改成功!')

        # 开启添加标签线程
        TagingThread(wiki_object=wiki).start()
        ImageDownloader(wiki).start()

        return HttpResponseRedirect('/wiki/%d/' %wiki.id)
Esempio n. 9
0
def post(request):
    """
    匿名用户投稿
    """
    
    current_page = APP

    if request.method == 'GET':
        form = WikiForm()
        return render('wiki_post.html',locals(),context_instance=RequestContext(request))

    form = WikiForm(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        try:
            send_mail(u'投稿',u'文章链接:%s' %data['source'],'*****@*****.**',['*****@*****.**'])
        except Exception:
            pass
        msg = '感谢你的投稿,链接已发送至管理员'
        return render('posted.html',locals(),context_instance=RequestContext(request))
    else:
        return render('wiki_post.html',locals(),context_instance=RequestContext(request))
Esempio n. 10
0
def add(request):
    """ 用户写新的文章 """
    current_page = 'user_wiki'
    title = '写新笔记'

    # 处理GET请求
    if request.method == 'GET':
        form = WikiForm()
        return render('wiki_add.html',
                      locals(),
                      context_instance=RequestContext(request))

    # 处理POST请求
    form = WikiForm(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        new_wiki = Entry()
        new_wiki.author = request.user
        new_wiki.title = data['title']
        new_wiki.content = data['content']
        new_wiki.source = data['source'] and data[
            'source'] or 'http://pythoner.net/home/%d/' % request.user.id

        try:
            new_wiki.save()
        except Exception, e:
            return HttpResponse('保存文章时出错:%s' % e)
        else:

            # 开启线程添加文章标签
            TagingThread(wiki_object=new_wiki).start()
            # 开启下载图片的线程
            ImageDownloader(new_wiki).start()
            # 发送信号
            new_wiki_was_post.send(sender=new_wiki.__class__, wiki=new_wiki)
            return HttpResponseRedirect('/wiki/%d/' % new_wiki.id)