Exemple #1
0
def debug(request):
    if request.method == 'GET':
        return render(request, 'tupuqo/debug.html')

    elif request.method == 'POST':
        ret = {'status': True, 'error': None, 'data': None}
        inputHost = request.POST.get('inputHost')
        query_from = request.POST.get('query_from')
        query = request.POST.get('query')

        if query_from == '':
            query_from = 'web'
        else:
            query_from = query_from

        params = {
            'queryString': query,
            'queryFrom': query_from,
        }

        params_utf16 = urlhandle.urlencode(params, 'utf-16le', 'ignore')

        headers = {
            "Content-type":
            "application/x-www-form-urlencoded;charset=UTF-16LE"
        }

        try:
            resp = requests.post(inputHost,
                                 data=params_utf16,
                                 headers=headers,
                                 timeout=3)
            status = resp.reason
            if status != 'OK':
                print(sys.stderr, query, status)
                ret['error'] = 'Error:未知的请求类型'
                ret['status'] = False
                return ret

            data = BeautifulSoup(resp.content.decode('utf-16le'))
            ret['data'] = data.prettify()

        except Exception as e:
            print(e)
            print(sys.stderr, sys.exc_info()[0], sys.exc_info()[1])
            ret['error'] = "Error:" + str(e)
            ret['status'] = False
        return HttpResponse(json.dumps(ret))
Exemple #2
0
def debug(request):
    #user_id = "zhangjingjun"
    #user_id = request.COOKIES.get('uid')
    if request.method == 'GET':
        # page = request.GET.get('page')
        # current_page = 1
        # if page:
        #     current_page = int(page)
        # try:
        #     # req_list = models.DebugQo.objects.filter(user_fk_id=user_id)
        #     req_list = models.DebugQo.objects.order_by('id')[::-1]
        #     page_obj = pagination.Page(current_page, len(req_list), 8, 5)
        #     data = req_list[page_obj.start:page_obj.end]
        #     page_str = page_obj.page_str("/webqo/debug?page=")
        # except Exception as e:
        #     print(e)
        #     pass
        return render(request, 'tupush/debug.html')

    elif request.method == 'POST':
        ret = {'status': True, 'error': None, 'data': None}
        inputHost = request.POST.get('inputHost')
        query_from = request.POST.get('query_from')
        forceQuery = request.POST.get('forceQuery')
        query = request.POST.get('query')

        if forceQuery == '':
            forceQuery = '0'
        else:
            forceQuery = forceQuery

        if query_from == '':
            query_from = 'web'
        else:
            query_from = query_from

        params = {
            'queryString': query,
            'queryFrom': query_from,
            'forceQuery': forceQuery,
        }

        params_gbk = urlhandle.urlencode(params, 'gbk', 'ignore')

        headers = {
            "Content-type":
            "application/x-www-form-urlencoded;charset=UTF-16LE"
        }

        try:
            resp = requests.post(inputHost,
                                 data=params_gbk,
                                 headers=headers,
                                 timeout=3)
            status = resp.reason
            if status != 'OK':
                print(sys.stderr, query, status)
                ret['error'] = 'Error:未知的请求类型'
                ret['status'] = False
                return ret

            data = BeautifulSoup(resp.text, "html.parser")
            ret['data'] = data.prettify()

        except Exception as e:
            print(e)
            print(sys.stderr, sys.exc_info()[0], sys.exc_info()[1])
            ret['error'] = "Error:" + str(e)
            ret['status'] = False
        return HttpResponse(json.dumps(ret))
Exemple #3
0
def debug_diff(request):
    data = {
        'total_data': None,
        'jzwd_data': None,
        'rec_data': None,
        'int_data': None,
    }
    ret = {'status': True, 'error': None, 'data': None}
    inputHost = request.POST.get('inputHost')
    forceQuery = request.POST.get('forceQuery')
    query_from = request.POST.get('query_from')

    inputHost_diff = request.POST.get('inputHost_diff')
    forceQuery_diff = request.POST.get('forceQuery_diff')
    query_from_diff = request.POST.get('query_from_diff')

    query = request.POST.get('query')

    if forceQuery == '':
        forceQuery = '0'
    else:
        forceQuery = forceQuery

    if forceQuery_diff == '':
        forceQuery_diff = '0'
    else:
        forceQuery_diff = forceQuery_diff

    if query_from == '':
        query_from = 'web'
    else:
        query_from = query_from

    if query_from_diff == '':
        query_from_diff = 'web'
    else:
        query_from_diff = query_from_diff

    params = {
        'queryString': query,
        'queryFrom': query_from,
        'forceQuery': forceQuery,
    }

    params_diff = {
        'queryString': query,
        'queryFrom': query_from_diff,
        'forceQuery': forceQuery_diff,
    }

    params_gbk = urlhandle.urlencode(params, 'gbk', 'ignore')

    params_diff_gbk = urlhandle.urlencode(params_diff, 'gbk', 'ignore')

    headers = {
        "Content-type": "application/x-www-form-urlencoded;charset=UTF-16LE"
    }

    try:
        resp = requests.post(inputHost,
                             data=params_gbk,
                             headers=headers,
                             timeout=3)
        resp_diff = requests.post(inputHost_diff,
                                  data=params_diff_gbk,
                                  headers=headers,
                                  timeout=3)
        status = resp.reason
        status_diff = resp_diff.reason

        if status != 'OK' or status_diff != 'OK':
            print(sys.stderr, query, status, status_diff)
            ret['error'] = 'Error:未知的请求类型'
            ret['status'] = False
            return ret

        total = BeautifulSoup(resp.text, "html.parser")
        total_diff = BeautifulSoup(resp_diff.text, "html.parser")

        jzwd = jzwd_diff = BeautifulSoup("精准问答结果为空", "html.parser")
        rec = rec_diff = BeautifulSoup("右侧推荐结果为空", "html.parser")
        int = int_diff = BeautifulSoup("兴趣推荐结果为空", "html.parser")

        for doc in total.find_all('doc'):
            pvtype = doc.item['pvtype']
            if re.search(r'[^ ]*_[^ ]*_[^ ]*', pvtype):
                jzwd = doc
                continue
            if re.search(r'[^ ]*_[^ ]*', pvtype):
                rec = doc
                continue
            if '13' == pvtype:
                int = doc
                continue

        for doc in total_diff.find_all('doc'):
            pvtype = doc.item['pvtype']
            if re.search(r'[^ ]*_[^ ]*_[^ ]*', pvtype):
                jzwd_diff = doc
                continue
            if re.search(r'[^ ]*_[^ ]*', pvtype):
                rec_diff = doc
                continue
            if '13' == pvtype:
                int_diff = doc
                continue

        diff = difflib.HtmlDiff()

        data['total_data'] = diff.make_table(
            total.prettify().splitlines(),
            total_diff.prettify().splitlines()).replace('nowrap="nowrap"', '')
        data['jzwd_data'] = diff.make_table(
            jzwd.prettify().splitlines(),
            jzwd_diff.prettify().splitlines()).replace('nowrap="nowrap"', '')
        data['rec_data'] = diff.make_table(
            rec.prettify().splitlines(),
            rec_diff.prettify().splitlines()).replace('nowrap="nowrap"', '')
        data['int_data'] = diff.make_table(
            int.prettify().splitlines(),
            int_diff.prettify().splitlines()).replace('nowrap="nowrap"', '')

        ret['data'] = data

    except Exception as e:
        print(e)
        print(sys.stderr, sys.exc_info()[0], sys.exc_info()[1])
        ret['error'] = "Error:" + str(e)
        ret['status'] = False
    return HttpResponse(json.dumps(ret))
Exemple #4
0
def debug_diff(request):
    ret = {'status': True, 'error': None, 'data': None}
    inputHost = request.POST.get('inputHost')
    query_from = request.POST.get('query_from')

    inputHost_diff = request.POST.get('inputHost_diff')
    query_from_diff = request.POST.get('query_from_diff')

    query = request.POST.get('query')

    if query_from == '':
        query_from = 'web'
    else:
        query_from = query_from

    if query_from_diff == '':
        query_from_diff = 'web'
    else:
        query_from_diff = query_from_diff

    params = {
        'queryString': query,
        'queryFrom': query_from,
    }

    params_diff = {
        'queryString': query,
        'queryFrom': query_from_diff,
    }

    params_utf16 = urlhandle.urlencode(params, 'utf-16le', 'ignore')

    params_diff_utf16 = urlhandle.urlencode(params_diff, 'utf-16le', 'ignore')

    headers = {
        "Content-type": "application/x-www-form-urlencoded;charset=UTF-16LE"
    }

    try:
        resp = requests.post(inputHost,
                             data=params_utf16,
                             headers=headers,
                             timeout=3)
        resp_diff = requests.post(inputHost_diff,
                                  data=params_diff_utf16,
                                  headers=headers,
                                  timeout=3)
        status = resp.reason
        status_diff = resp_diff.reason

        if status != 'OK' or status_diff != 'OK':
            print(sys.stderr, query, status, status_diff)
            ret['error'] = 'Error:未知的请求类型'
            ret['status'] = False
            return ret

        data = BeautifulSoup(resp.content.decode('utf-16le'))
        data_diff = BeautifulSoup(resp_diff.content.decode('utf-16le'))

        diff = difflib.HtmlDiff()

        ret['data'] = diff.make_table(
            data.prettify().splitlines(),
            data_diff.prettify().splitlines()).replace('nowrap="nowrap"', '')

    except Exception as e:
        print(e)
        print(sys.stderr, sys.exc_info()[0], sys.exc_info()[1])
        ret['error'] = "Error:" + str(e)
        ret['status'] = False
    return HttpResponse(json.dumps(ret))