Example #1
0
def coreFunction(query_url, query, progressBar, value, rate_url, rank,
                 res_list, req_date, day_limit, limit_data, table_list,
                 table_results, lcdNumber_hour_limit, lcdNumber_day_limit,
                 db_path, log, label_info, data_source, search_count):
    pBar = pbarThread(progressBar, value)
    pBar.start()
    r = requests.get(
        (query_url + query),
        verify="C:\\Python34\\Lib\\site-packages\\requests\\cacert.pem")
    ranking(r, rate_url, rank, res_list, query, req_date,
            day_limit, limit_data,
            lcdNumber_hour_limit, lcdNumber_day_limit)
    sql_con(db_path, res_list, query, req_date)
    count = display_results(db_path, query, req_date,
                            len(table_list), table_results,
                            data_source, search_count)
    pBar.stop()
    log.write('Поиск из GUI по запросу "' + query + '";\n')
    table_list[len(table_list) - 1][1] = True
    res_list = []
    rank = 0
    # label_info.setText('Ваш запрос обработан.')
    return count
Example #2
0
def search(search_work, table_list, query, query_url,
           db_path, req_date, day_limit, day_overdraft, limit_police, hour,
           res_list, rank, label_info, table_results, rate_url,
           lcdNumber_hour_limit, lcdNumber_day_limit, progressBar,
           value, log):
    pBar = pbarThread(progressBar, value)
    pBar.start()
    # поднимаем флаг search_work для подсчёта лимитов
    search_work = True
    q_count = 0
    # #####################################################################
    # анализируем список запросов
    for i, item in enumerate(table_list):
        query = item[0]
        worked = item[1]
        if ((query != '') or (worked is not True)):
            q_count += 1
            limit_data = limit(db_path, req_date, day_limit,
                               day_overdraft, limit_police, hour,
                               search_work)
            if q_count > limit_data[1]:
                label_info.setText('Превышен лимит запросов!\n\
                                    Продолжим через')  # timer
                label_info.setText(' минут.')
                remove_empty_rows(1, table_results)
                time.sleep((60 - int(
                    datetime.now().strftime('%M'))) * 60.0)
                continue
            else:
                # Проверяем не исчерпан ли суточный лимит на запросы.
                if (limit_data[2] >= 0):
                    # если не был - отправляем запрос в Яндекс
                    r = requests.get((query_url + query),
                       verify="C:\\Python34\\Lib\\site-packages\\requests\\cacert.pem")
                    pBar.stop()
                    # и помечаем запрос как отработанный
                    table_list[i][1] = True
                    # ранжируем запрос, записываем результат в БД
                    ranking(r, rate_url, rank, res_list, query, req_date,
                            day_limit, limit_data,
                            lcdNumber_hour_limit, lcdNumber_day_limit)
                    sql_con(db_path, res_list, query, req_date)
                    # обновляем табло лимитов
                    display_results(db_path, query, req_date,
                                    len(table_list), table_results)
                    log.write(
                        'Поиск по запросу "' + item[0] +
                        '";        \n')
                    res_list = []
                    rank = 0
                    label_info.setText('Ваш запрос обработан.')
                else:
                    # суточный лимит не доступен
                    label_info.setText(
                        'Превышен суточный \nлимит запросов!\nЗаходите завтра:)')
                    return
            sql_con(db_path, res_list, query, req_date)
            res_list = []
            rank = 0
        else:
            continue
    search_work = False