def admin_redirects_add_update(req, id=None): check_login(req) check_right(req, module_right) check_token(req, req.form.get('token'), uri='/admin/redirects') item = Redirect(id) item.bind(req.form) rv = item.mod(req) if id else item.add(req) if isinstance(rv, Redirect): return send_json(req, {}) req.status = state.HTTP_BAD_REQUEST if isinstance(rv, ErrorValue): return send_json(req, rv, cls=ObjectEncoder) return send_json(req, {'reason': 'src_exist'})
def articles_comment_xhr(req, arg): id = arg if isinstance(arg, int) else None uri = arg if isinstance(arg, unicode) else None article, rv = articles_comment_internal(req, uri, id) # XXX: at now, isinstance not work, becouase, have another namespace # that rv.... # if hasattr(rv, 'reason'): if isinstance(rv, ErrorValue): req.status = state.HTTP_BAD_REQUEST return send_json(req, rv, cls=ObjectEncoder) elif rv is None: req.status = state.HTTP_INTERNAL_SERVER_ERROR return send_json(req, {'reason': 'integrity_error'}) return send_json(req, {'discussion': ArticleComment.list(req, article.id, Pager(limit=-1)), 'last': rv.id}, cls=ObjectEncoder)
def admin_redirects_delete(req, id): check_login(req) check_right(req, module_right) check_token(req, req.args.get('token'), uri='/admin/redirects') item = Redirect(id) if not item.delete(req): req.status = state.HTTP_NOT_FOUND return send_json(req, {})
def articles_stats(req, arg): id = arg if isinstance(arg, int) else None uri = arg if isinstance(arg, unicode) else None article = Article(id) article.uri = uri if uri and not article.inc_data_key(req, key='uri', visits=1): raise SERVER_RETURN(state.HTTP_NOT_FOUND) if id and not article.inc_data_key(req, visits=1): raise SERVER_RETURN(state.HTTP_NOT_FOUND) return send_json(req, {'Ok': True})
def articles_append_tag(req, id, tag_id): check_login(req) match_right(req, module_rights) check_token(req, req.form.get('token'), uri='/admin/articles/%d' % id) article = Article(id) if not article.append_tag(req, tag_id): return send_json(req, {'reason': 'integrity_error'}) req.content_type = 'application/json' return '{}'
def articles_tags(req, id): check_login(req) match_right(req, module_rights) return send_json(req, {'tags': Article.tags(req, id)}, cls=ObjectEncoder)