def changeLabel(request):
    try:
        article_id = request.GET['article_id'].strip()
        label = request.GET['label']
        reverseMap = {"0": "1", "1": "0"}
        rLabel = reverseMap[label]
        logging.info("[changeLabel] article_id=" +article_id +" label=" \
            + label + "  rLabel=" + rLabel)

        #label = labelMap[label]
        #reverseLabel = labelMap[reverseLabel]
        articleDAO = ArticleDAO('articles_testN')
        article = articleDAO.show_article(article_id)
        article.pop("_id")
        article.pop("id")
        article['article_label'] = int(rLabel)
        user = request.session.get('user', default=None)

        if user['role'] == "0":
            article['article_label_state'] = 2
            article['update_admin'] = user['username']
        elif user['role'] == "1":
            article['article_label_state'] = 1
            article['update_student'] = user['username']

        #article['article_label_state'] = 0
        result = articleDAO.update_article(article_id, article)

        url = "http://localhost:9200/news_spider_db/articles_testN/" + str(
            article_id) + "/_update"
        es = ES()
        doc = {"doc": {"article_label": int(rLabel)}}
        # 更新
        es.post(url, doc)
        logging.info("[changeLabel] result=" + str(result))

        if result:
            return HttpResponse(
                json.dumps('{"label":"' + str(rLabel) + '","article_id":"' +
                           str(article_id) + '"}'),
                content_type="application/json")
        else:
            return HttpResponse(json.dumps('{"label":"failed"}'),
                                content_type="application/json")
    except BaseException, e:
        logging.error(e)
        return HttpResponse(json.dumps('{"label":"failed"}'),
                            content_type="application/json")
def removeArticleTag(request):
    try:
        article_id = request.GET['article_id']
        label = request.GET['label']
        tag = request.GET['tag']
        #label = labelMap[label] ####
        print "removeArticleTag"
        articleDAO = ArticleDAO('articles_testN')
        flag, update = articleDAO.removeTag(article_id, tag)

        url = "http://localhost:9200/news_spider_db/articles_testN/" + str(
            article_id) + "/_update"
        print url
        es = ES()
        doc = {"doc": update}
        # print doc
        # 更新
        result = es.post(url, doc)
        #print "remove aticle result:",result
        message = "success"
        return HttpResponse(json.dumps(message),
                            content_type="application/json")
    except BaseException, e:
        logging.error(e)
        print e
        print traceback.print_exc()
        return HttpResponse(json.dumps("failed"),
                            content_type="application/json")
def approval(request):
    ## 审核
    try:
        article_id = request.GET['article_id'].strip()
        label = request.GET['label']
        label = labelMap[label]
        articleDAO = ArticleDAO('articles_testN')
        article = articleDAO.show_article(article_id)
        article.pop("id")
        article.pop("_id")
        user = request.session.get('user', default=None)
        if user['role'] == "0":
            article['article_label_state'] = 2
            article['update_admin'] = user['username']
        elif user['role'] == "1":
            article['article_label_state'] = 1
            article['update_student'] = user['username']

        #article['article_label_state'] = 0
        result = articleDAO.update_article(article_id, article)

        url = "http://localhost:9200/news_spider_db/articles_testN/" + str(
            article_id) + "/_update"
        es = ES()
        doc = {
            "doc": {
                "article_label_state": article['article_label_state'],
                "update_admin": article['update_admin'],
                "update_student": article['update_student']
            }
        }
        # 更新
        es.post(url, doc)

        if result:
            return HttpResponse(json.dumps("success"),
                                content_type="application/json")
        else:
            return HttpResponse(json.dumps("failed"),
                                content_type="application/json")
    except BaseException, e:
        logging.error(e)
        return HttpResponse(json.dumps("failed"),
                            content_type="application/json")
def addArticleTag(request):
    try:
        article_id = request.GET['article_id']
        label = request.GET['label']
        tag = request.GET['tag']
        #label = labelMap[label] ####
        articleDAO = ArticleDAO('articles_testN')
        flag, update = articleDAO.addTag(article_id, tag)

        message = "success"
        url = "http://localhost:9200/news_spider_db/articles_testN/" + str(
            article_id) + "/_update"
        es = ES()
        doc = {"doc": update}
        # 更新
        result = es.post(url, doc)
        print result
        return HttpResponse(json.dumps(message),
                            content_type="application/json")
    except BaseException, e:
        logging.error(e)
        return HttpResponse(json.dumps("failed"),
                            content_type="application/json")