예제 #1
0
    def get(self):
        user_key = check_user_key(self.request, self.response)

        context = get_basic_context()

        if self.request.url.find('?') != -1:
            forum_name = urllib.unquote(self.request.url[self.request.url.rfind('/') + 1:self.request.url.rfind('?')])
        else:
            forum_name = urllib.unquote(self.request.url[self.request.url.rfind('/') + 1:])

        forum = models.Forum.get_forum_by_name(forum_name)

        if forum is None:
            self.response.out.write('Forum not found.')
            return  # TODO

        context['forum'] = forum.title
        context['forum_description'] = forum.forum_description
        context['forum_locked'] = forum.locked
        context['page_number'] = int(self.request.get('pn') or 1)
        context['max_page_number'] = (forum.posts_count - 1) / site_settings.default_page_size + 1
        context['is_banned'] = models.BannedIP.is_banned(self.request.remote_addr)

        context['posts'] = forum.query_posts(context['page_number'], site_settings.default_page_size)

        lang = m17n_process(self.request, self.response)
        context['_'] = m17n.create_m17n_func(lang)
        html = engines[lang].render("forum.pyhtml", context)
        self.response.out.write(html)
예제 #2
0
    def get(self):
        user_key = check_user_key(self.request, self.response)

        context = get_basic_context()
        context["front_page"] = site_settings.front_page

        lang = m17n_process(self.request, self.response)
        context['_'] = m17n.create_m17n_func(lang)
        html = engines[lang].render("home.pyhtml", context)
        self.response.out.write(html)
예제 #3
0
    def get(self):
        assert is_admin()

        user_key = check_user_key(self.request, self.response)

        context = get_basic_context()
        context["categories"] = models.ForumCategory.get_categories()
        context["display_id"] = models.AdminID.get_id(users.get_current_user())
        context["ban_ip"] = self.request.get("ban_ip")

        lang = m17n_process(self.request, self.response)
        context['_'] = m17n.create_m17n_func(lang)
        html = engines[lang].render("admin.pyhtml", context)
        self.response.out.write(html)
예제 #4
0
    def get(self):
        user_key = check_user_key(self.request, self.response)

        context = get_basic_context()

        if self.request.url.find('?') != -1:
            post_id = urllib.unquote(self.request.url[self.request.url.rfind('/') + 1:self.request.url.rfind('?')])
        else:
            post_id = urllib.unquote(self.request.url[self.request.url.rfind('/') + 1:])
        try:
            post_id = int(post_id)
        except ValueError:
            self.response.out.write('Invalid thread ID.')
            return  # TODO
        forum_name = urllib.unquote(self.request.url[self.request.url.find('/t/') + 3:self.request.url.rfind('/')])

        forum = models.Forum.get_forum_by_name(forum_name)
        if forum is None:
            self.response.out.write('Forum not found.')
            return  # TODO

        post = models.Post.get_by_id(post_id, parent=forum.key)
        if post is None:
            self.response.out.write('Thread not found.')
            return  # TODO

        context['forum'] = forum.title
        context['forum_description'] = forum.forum_description
        context['forum_locked'] = forum.locked
        context['page_number'] = int(self.request.get('pn') or 1)
        context['max_page_number'] = (post.replies_count - 1) / site_settings.default_page_size + 1
        context['is_banned'] = models.BannedIP.is_banned(self.request.remote_addr)

        context['post'] = post.to_dict_on_reply_page(context['page_number'], site_settings.default_page_size)

        lang = m17n_process(self.request, self.response)
        context['_'] = m17n.create_m17n_func(lang)
        html = engines[lang].render("thread.pyhtml", context)
        self.response.out.write(html)