示例#1
0
def config_processor(requests):
    configs = {}
    models = BlogConfig.objects.all()
    if len(models) == 0:
        BlogConfig.insert_default_config()
        models = BlogConfig.objects.all()
    for item in models:
        configs[item.key] = item.get_value()
    return configs
示例#2
0
文件: views.py 项目: Zicky/myblog
def respond_post(post):
    comments = Comment.objects.filter(post__id=post.id)
    form = PostCommentForm()
    captcha = BlogConfig.get_captcha()
    random = captcha.random()
    form.fields['random'] = django.forms.CharField(initial=random, \
            widget=django.forms.widgets.HiddenInput())
    nr_comments = len(comments)
    return render_to_resp('post.html', \
            {'post': post, 'commentform':form, 'comments':comments, \
            'captcha_img': captcha.image(), \
            'captcha_audio': captcha.audio_url(), \
            'errormsg': '', 'nr_comments':nr_comments})
示例#3
0
def respond_post(post):
    comments = Comment.objects.filter(post__id=post.id)
    form = PostCommentForm()
    captcha = BlogConfig.get_captcha()
    random = captcha.random()
    form.fields['random'] = django.forms.CharField(initial=random, \
            widget=django.forms.widgets.HiddenInput())
    nr_comments = len(comments)
    return render_to_resp('post.html', \
            {'post': post, 'commentform':form, 'comments':comments, \
            'captcha_img': captcha.image(), \
            'captcha_audio': captcha.audio_url(), \
            'errormsg': '', 'nr_comments':nr_comments})
示例#4
0
def post_comment(request, postid):
    if request.method == 'POST':
        post = Post.objects.filter(id=int(postid))
        if len(post) == 0:
            raise Http404
        post = post[0]
        form = PostCommentForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            url = form.cleaned_data['url']
            email = form.cleaned_data['email']
            content = form.cleaned_data['content']
            password = form.cleaned_data['password']
            random = request.POST['random']
            now = datetime.datetime.now()
            reader = Reader.objects.filter(name=name)

            captcha = BlogConfig.get_captcha()
            if captcha is not None:
                if not captcha.validate(random):
                    return HttpResponseRedirect('/id/' + postid +
                                                "/captchaerr")
                if not captcha.verify(password):
                    return HttpResponseRedirect('/id/' + postid +
                                                "/captchaerr")

            if len(reader) == 0:
                reader = Reader(name=name, url=url, email=email)
                reader.save()
            else:
                reader = reader[0]
                if len(url) != 0:
                    if reader.url != url:
                        reader.url = url
                if len(email) != 0:
                    if reader.email != email:
                        reader.email = email
                reader.save()
            comment = Comment(reader=reader, \
                    post=post,\
                    content=content, \
                    created=now)
            comment.save()
            return HttpResponseRedirect('/id/' + postid)

    return HttpResponseForbidden("Not implemented\r\n")
示例#5
0
文件: views.py 项目: Zicky/myblog
def post_comment(request, postid):
    if request.method == 'POST':
        post = Post.objects.filter(id=int(postid))
        if len(post) == 0:
            raise Http404
        post = post[0]
        form = PostCommentForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            url = form.cleaned_data['url']
            email = form.cleaned_data['email']
            content= form.cleaned_data['content']
            password = form.cleaned_data['password']
            random = request.POST['random']
            now = datetime.datetime.now()
            reader = Reader.objects.filter(name=name)

            captcha = BlogConfig.get_captcha()
            if captcha is not None:
                if not captcha.validate(random):
                    return HttpResponseRedirect('/id/' + postid + "/captchaerr")
                if not captcha.verify(password):
                    return HttpResponseRedirect('/id/' + postid + "/captchaerr")

            if len(reader) == 0:
                reader = Reader(name=name, url=url, email=email)
                reader.save()
            else:
                reader = reader[0]
                if len(url) != 0:
                    if reader.url != url:
                        reader.url = url
                if len(email) != 0:
                    if reader.email != email:
                        reader.email = email
                reader.save()
            comment = Comment(reader=reader, \
                    post=post,\
                    content=content, \
                    created=now)
            comment.save()
            return HttpResponseRedirect('/id/' + postid)

    return HttpResponseForbidden("Not implemented\r\n")
示例#6
0
def resp_posts_list(posts, page_nr=1, url_before_pgn="l", url_after_pgn=""):
    bc = BlogConfig.get()
    post_per_page = bc.nr_posts_per_page
    page_nr = page_nr - 1
    if page_nr < 0:
        page_nr = 0
    start = page_nr * post_per_page
    end = start + post_per_page
    nr_posts = posts.count()
    nr_pages = nr_posts / post_per_page
    if nr_posts % post_per_page:
        nr_pages += 1
    posts = posts[start:end]
    for p in posts:
        n = Comment.objects.filter(post__id=p.id).count()
        p.nr_comments = n
    return render_to_resp('postslist.html', {'posts': posts, \
            'pages':range(1, nr_pages + 1), 'url_before_pgn': url_before_pgn, \
            'url_after_pgn': url_after_pgn})
示例#7
0
文件: views.py 项目: Zicky/myblog
def resp_posts_list(posts, page_nr = 1, url_before_pgn = "l", url_after_pgn = ""):
    bc = BlogConfig.get()
    post_per_page = bc.nr_posts_per_page
    page_nr = page_nr - 1
    if page_nr < 0:
        page_nr = 0
    start = page_nr * post_per_page
    end = start + post_per_page
    nr_posts = posts.count()
    nr_pages = nr_posts/post_per_page
    if nr_posts % post_per_page:
        nr_pages += 1
    posts = posts[start:end]
    for p in posts:
        n = Comment.objects.filter(post__id = p.id).count()
        p.nr_comments = n
    return render_to_resp('postslist.html', {'posts': posts, \
            'pages':range(1, nr_pages + 1), 'url_before_pgn': url_before_pgn, \
            'url_after_pgn': url_after_pgn})
示例#8
0
def set_config(request):
    if request.method == 'POST':
        msg = request.POST['msg']
        authorname = request.POST['author']
        key = request.POST['key']
        author = Author.objects.filter(name=authorname)
        if len(author) == 0:
            return HttpResponseForbidden("Failed\r\n")
        author = author[0]
        if not author.can_set_config:
            return HttpResponseForbidden("Failed\r\n")
        msg = decode_post(msg, author.decrypt_key, key)
        bc = BlogConfig.get()
        if msg.has_key('title'):
            bc.title = msg['title']
        if msg.has_key('subtitle'):
            bc.subtitle = msg['subtitle']
        if msg.has_key('nr_posts_per_page'):
            bc.nr_posts_per_page = int(msg['nr_posts_per_page'])
        if msg.has_key('captcha_name'):
            bc.captcha_name = msg['captcha_name']
        if msg.has_key('captcha_secret'):
            bc.captcha_secret = msg['captcha_secret']
        if msg.has_key('nr_poptags'):
            bc.nr_poptags = int(msg['nr_poptags'])
        if msg.has_key('about'):
            bc.about = msg['about']
        if msg.has_key('domain_name'):
            bc.domain_name = msg['domain_name']
        if msg.has_key('link'):
            bc.link = msg['link']
        if msg.has_key('license'):
            bc.license = msg['license']

        bc.save()
        return HttpResponse("Success\r\n")
    return HttpResponseForbidden("Not implemented\r\n")
示例#9
0
文件: views.py 项目: Zicky/myblog
def set_config(request):
    if request.method == 'POST':
        msg = request.POST['msg']
        authorname = request.POST['author']
        key = request.POST['key']
        author = Author.objects.filter(name=authorname)
        if len(author) == 0:
            return HttpResponseForbidden("Failed\r\n")
        author = author[0]
        if not author.can_set_config:
            return HttpResponseForbidden("Failed\r\n")
        msg = decode_post(msg, author.decrypt_key, key)
        bc = BlogConfig.get()
        if msg.has_key('title'):
            bc.title = msg['title']
        if msg.has_key('subtitle'):
            bc.subtitle = msg['subtitle']
        if msg.has_key('nr_posts_per_page'):
            bc.nr_posts_per_page = int(msg['nr_posts_per_page'])
        if msg.has_key('captcha_name'):
            bc.captcha_name = msg['captcha_name']
        if msg.has_key('captcha_secret'):
            bc.captcha_secret = msg['captcha_secret']
        if msg.has_key('nr_poptags'):
            bc.nr_poptags = int(msg['nr_poptags'])
        if msg.has_key('about'):
            bc.about = msg['about']
        if msg.has_key('domain_name'):
            bc.domain_name = msg['domain_name']
        if msg.has_key('link'):
            bc.link = msg['link']
        if msg.has_key('license'):
            bc.license = msg['license']

        bc.save()
        return HttpResponse("Success\r\n")
    return HttpResponseForbidden("Not implemented\r\n")
示例#10
0
文件: views.py 项目: Zicky/myblog
 def item_link(self, item):
     bc = BlogConfig.get()
     url = os.path.join(bc.link, "p", item.slug, item.language)
     return url
示例#11
0
文件: views.py 项目: Zicky/myblog
def render_to_resp(template, kv):
    bc = BlogConfig.get()
    poptags = Tag.objects.all()[:bc.nr_poptags]
    meta = {'config':bc, 'poptags':poptags}
    meta.update(kv)
    return render_to_response(template, meta)
示例#12
0
 def title(self):
     bc = BlogConfig.get()
     return bc.title
示例#13
0
文件: views.py 项目: Zicky/myblog
 def link(self):
     bc = BlogConfig.get()
     return bc.link
示例#14
0
文件: views.py 项目: Zicky/myblog
 def description(self):
     bc = BlogConfig.get()
     return bc.subtitle
示例#15
0
 def description(self):
     bc = BlogConfig.get()
     return bc.subtitle
示例#16
0
文件: views.py 项目: Zicky/myblog
 def title(self):
     bc = BlogConfig.get()
     return bc.title
示例#17
0
 def link(self):
     bc = BlogConfig.get()
     return bc.link
示例#18
0
 def item_link(self, item):
     bc = BlogConfig.get()
     url = os.path.join(bc.link, "p", item.slug, item.language)
     return url
示例#19
0
 def handle(self, *args, **kwargs):
     default_cfg = BlogConfig()
     default_cfg.save()
     self.stdout.write("Created default config for blog")
示例#20
0
def render_to_resp(template, kv):
    bc = BlogConfig.get()
    poptags = Tag.objects.all()[:bc.nr_poptags]
    meta = {'config': bc, 'poptags': poptags}
    meta.update(kv)
    return render_to_response(template, meta)