def GET(self, board_name): if board_name == '*' or board_name == '^root': v = board_actions() return v.subboard_list_get() board_id = board._get_board_id_from_path(board_name) if board_id < 0: #try to find regex match board_id = board._get_board_id_from_regex_path(board_name) if board_id < 0: raise web.notfound(util.render().error(lang='ko', error_message=_('INVALID_BOARD'), help_context='error')) else: path = board._get_path_from_board_id(board_id) raise web.seeother(util.link(path)) board_info = board.get_board_info(board_id) if board_info.bType == 0: # 디렉터리 v = board_actions() return v.subboard_list_get(board_name, board_id) elif board_info.bType == 2: # 넘겨주기 board_id = board._get_board_id_from_path(board_info.bDescription) if board_id < 0 or board_info.bDescription.strip() == '': raise web.notfound(util.render().error(lang='ko', error_message=_('INVALID_ALIAS'), help_context='error')) else: raise web.seeother(util.link(board_info.bDescription)) #processing new_article if web.ctx.session.has_key('uid'): uid = web.ctx.session.uid user.update_unreaded_articles_board(uid, board_id) qs = web.ctx.query if len(qs) > 0: qs = qs[1:] qs = parse_qs(qs) t = article._get_total_page_count(board_id, config.page_size) if qs: page = int(qs['page'][0]) else: page = t a = article.get_article_list(board_id, config.page_size, page) m = article.get_marked_article(board_id) return util.render().board(lang="ko", title = board_info.bName, board_path = board_info.bName[1:], board_desc = board_info.bDescription, stylesheet = board_info.stylesheet, articles=a, marked_articles = m, total_page = t, page = page, feed = True, help_context = 'board')
def select(self, query_string): board_id = -1 if query_string.has_key('board'): try: board_id = int(query_string['board'][0]) except ValueError: raise web.notfound(render['default'].error(error_message = _('NO_SUCH_BOARD'), help_context='error')) else: raise web.redirect('/*') path = board._get_path_from_board_id(board_id) if path == '': raise web.notfound(render['default'].error(error_message = _('NO_SUCH_BOARD'), help_context='error')) raise web.redirect(posixpath.join(path, '*'))
def view(self, query_string): board_id = -1 article_id = -1 if query_string.has_key('board'): try: board_id = int(query_string['board'][0]) except ValueError: raise web.notfound(render['default'].error(error_message = _('NO_SUCH_BOARD'), help_context='error')) else: raise web.notfound(render['default'].error(error_message = _('NO_BOARD_SPECIFIED'), help_context='error')) if query_string.has_key('serial'): article_id = query_string['serial'][0] else: raise web.notfound(render['default'].error(error_message = _('NO_ARTICLE_SPECIFIED'), help_context='error')) path = board._get_path_from_board_id(board_id) if path == '': raise web.notfound(render['default'].error(error_message = _('NO_SUCH_BOARD'), help_context='error')) raise web.redirect(posixpath.join(path, '+read', article_id))
def feed(self, query_string): board_id = -1 if query_string.has_key('board'): try: board_id = int(query_string['board'][0]) except ValueError: raise web.notfound(render['default'].error(error_message = _('NO_SUCH_BOARD'), help_context='error')) else: raise web.notfound(render['default'].error(error_message = _('NO_ARTICLE_SPECIFIED'), help_context='error')) feed_size = 20 if query_string.has_key('numentries'): feed_size = int(query_string['numentries'][0]) feed_type = 'atom' if query_string.has_key('rss'): feed_type = 'rss' path = board._get_path_from_board_id(board_id) if path == '': raise web.notfound(render['default'].error(error_message = _('NO_SUCH_BOARD'), help_context='error')) raise web.redirect(posixpath.join(path, '+%s?size=%s' % (feed_type, feed_size)))
def list(self, query_string): board_id = -1 if query_string.has_key('board'): try: board_id = int(query_string['board'][0]) except ValueError: raise web.notfound(render['default'].error(error_message = _('NO_SUCH_BOARD'), help_context='error')) else: raise web.notfound(render['default'].error(error_message = _('NO_BOARD_SPECIFIED'), help_context='error')) if query_string.has_key('page'): page_no = int(query_string['page'][0]) else: page_no = 0 path = board._get_path_from_board_id(board_id) if path == '': raise web.notfound(render['default'].error(error_message = _('NO_SUCH_BOARD'), help_context='error')) if page_no > 0: raise web.redirect('%s?page=%s' % (path, page_no)) else: raise web.redirect('%s' % path)
def all_get(self, board_name, board_id, current_uid = -1): board_id = board._get_board_id_from_path(board_name) if board_id < 0: path = board._get_path_from_board_id(board_id) raise web.seeother(util.link(path)) board_info = board.get_board_info(board_id) board_name = board_info.bName; if web.ctx.session.has_key('uid'): uid = web.ctx.session.uid user.update_unreaded_articles_board(uid, board_id) qs = web.ctx.query if len(qs) > 0: qs = qs[1:] qs = parse_qs(qs) t = article._get_recurse_page_count(board_name, config.page_size) if qs: page = int(qs['page'][0]) else: page = t a = article.get_recurse_article_list(board_name, config.page_size, page) m = article.get_marked_article(board_id) return util.render().board(lang="ko", title = board_info.bName, board_path = board_info.bName[1:], board_desc = board_info.bDescription, stylesheet = board_info.stylesheet, articles=a, marked_articles = m, total_page = t, page = page, feed = True, help_context = 'board')