def search(self): # поднимаем флаг search_work для подсчёта лимитов self.search_work = True ################################################################# for i, item in enumerate(self.table_list): self.query = self.table_list[i][0] if (len(self.query) != 0): q_count = 0 if (self.table_list[i][1] != True): q_count += 1 if (self.table_list[i][1] != True): r = requests.get(self.query_url + self.query) self.r_count += 1 self.table_list[i][1] = True self.limit_data = limit( self.r_count, self.db_path, self.req_date, self.day_limit, self.day_overdraft, self.limit_police, self.hour, self.search_work) # Проверяем не исчерпан ли часовой лимит на запросы. if (self.limit_data[0] == True) and\ (self.limit_data[2] >= 0): # лимит в этом часу доступен и суточный не исчерпан self.ranking(r) self.sql_con(self.res_list) # self.remove_empty_rows(1) self.display_results() # self.remove_empty_rows(1) self.res_list = [] self.rank = 0 elif (self.limit_data[0] == False) and\ (self.limit_data[2] >= 0): # лимит в этом часу исчерпан, # но суточный еще доступен self.label_info.setText( 'Превышен лимит запросов!\nОжидайте ' + str(60 - int(datetime.now().strftime('%M'))) + ' минут.') self.remove_empty_rows(1) return else: # суточный лимит не доступен self.label_info.setText( 'Превышен суточный \nлимит запросов!\n\ Заходите завтра :)') # self.remove_empty_rows(1) return self.sql_con(self.res_list) self.res_list = [] self.rank = 0 self.recent_limit = self.limit_data[1] - 1 else: continue else: # случай пустого запроса self.label_info.setText( 'Внимание!\nБыл выбран пустой запрос.') self.remove_empty_rows(1) self.search_work = False
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, limit_data): # поднимаем флаг search_work для подсчёта лимитов search_work = True q_able = qCount(table_list) - limit_data[1] q_next = 0 print(q_able) # ######################################################################## # анализируем список запросов for i, item in enumerate(table_list): query = item[0] # если запрос не пустой начинаем его обработку if (len(query) != 0): # получаем данные по текущим лимитам на кол-во запросов limit_data = limit(db_path, req_date, day_limit, day_overdraft, limit_police, hour, search_work) if (q_able > 0): 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, item, label_info) q_able -= 1 q_next += 1 print(q_able) else: label_info.setText( 'Превышен лимит запросов!\nПродолжим через ' + str(61 - int(datetime.now().strftime('%M'))) + ' минут.') print("overload") # лимит в этом часу исчерпан, # но суточный еще доступен remove_empty_rows(1, table_results) print("sleep") # time.sleep(10.0) time.sleep((61 - int( datetime.now().strftime('%M'))) * 60.0) q_able = q_next print(q_able) continue sql_con(db_path, res_list, query, req_date) res_list = [] rank = 0 else: # в случае пустого запроса label_info.setText( 'Внимание!\nБыл выбран пустой запрос.') remove_empty_rows(1, table_results) continue search_work = False
def start_search(self, event): self.search_work = True if self.file_taken and (len(self.query_list) != 0): for j, item in enumerate(self.query_list): self.query = self.query_list[j] r = requests.get(self.query_url + self.query) self.r_count += 1 self.limit_data = limit( self.r_count, self.db_path, self.req_date, self.day_limit, self.day_overdraft, self.limit_police, self.hour, self.search_work) if (self.limit_data[0]) and (self.limit_data[2] > 0): # Проверяет не исчерпан ли часовой лимит на запросы. self.ranking(r) self.sql_con(self.res_list) self.res_list = [] self.rank = 0 self.recent_limit = self.limit_data[1] - 1 elif (not self.limit_data[0]) and (self.limit_data[2] > 0): # Проверяет не исчерпан ли часовой лимит на запросы. self.label_info.setText(str(self.recent_limit) + 'Превышен лимит запросов!\nОжидайте ' + str(60 - int(datetime.now().strftime('%M'))) + ' минут.') return else: self.label_info.setText('Превышен суточный лимит запросов!\nЗаходите завтра :)') return self.sql_con(self.res_list) self.res_list = [] self.rank = 0 self.file_taken = False elif (self.file_taken is False) and (len(self.query) != ''): r = requests.get(self.query_url + self.query) self.r_count += 1 self.limit_data = limit( self.r_count, self.db_path, self.req_date, self.day_limit, self.day_overdraft, self.limit_police, self.hour, self.search_work) self.ranking(r) self.sql_con(self.res_list) self.res_list = [] else: self.label_info.setText('Внимание!\nБыл выбран пустой запрос.') self.search_work = False
def setupUi(self, YaP): self.limit_data = limit(self.r_count, self.db_path, self.req_date, self.day_limit, self.day_overdraft, self.limit_police, self.hour, self.search_work) YaP.setObjectName("YaP") YaP.setEnabled(True) YaP.resize(800, 600) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(50) sizePolicy.setVerticalStretch(50) sizePolicy.setHeightForWidth(YaP.sizePolicy().hasHeightForWidth()) YaP.setSizePolicy(sizePolicy) YaP.setMinimumSize(QtCore.QSize(800, 600)) YaP.setSizeIncrement(QtCore.QSize(0, 0)) self.gridLayout = QtWidgets.QGridLayout(YaP) self.gridLayout.setObjectName("gridLayout") spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem, 2, 1, 1, 1) self.groupBox_mode = QtWidgets.QGroupBox(YaP) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.groupBox_mode.sizePolicy().hasHeightForWidth()) self.groupBox_mode.setSizePolicy(sizePolicy) self.groupBox_mode.setMinimumSize(QtCore.QSize(220, 90)) self.groupBox_mode.setObjectName("groupBox_mode") self.radioButton_single_mode = QtWidgets.QRadioButton(self.groupBox_mode) self.radioButton_single_mode.setGeometry(QtCore.QRect(10, 20, 131, 21)) self.radioButton_single_mode.setObjectName("radioButton_single_mode") self.radioButton_single_mode.autoExclusive() self.radioButton_single_mode.setChecked(True) self.radioButton_file_mode = QtWidgets.QRadioButton(self.groupBox_mode) self.radioButton_file_mode.setGeometry(QtCore.QRect(10, 40, 101, 21)) self.radioButton_file_mode.setObjectName("radioButton_file_mode") self.radioButton_file_mode.autoExclusive() self.checkBox = QtWidgets.QCheckBox(self.groupBox_mode) self.checkBox.setGeometry(QtCore.QRect(10, 60, 211, 21)) self.checkBox.setObjectName("checkBox") self.gridLayout.addWidget(self.groupBox_mode, 0, 1, 1, 1) spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem, 2, 1, 1, 1) self.groupBox_limits = QtWidgets.QGroupBox(YaP) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.groupBox_limits.sizePolicy().hasHeightForWidth()) self.groupBox_limits.setSizePolicy(sizePolicy) self.groupBox_limits.setMinimumSize(QtCore.QSize(220, 340)) self.groupBox_limits.setObjectName("groupBox_limits") self.splitter_gb_limits = QtWidgets.QSplitter(self.groupBox_limits) self.splitter_gb_limits.setGeometry(QtCore.QRect(20, -10, 177, 331)) self.splitter_gb_limits.setOrientation(QtCore.Qt.Vertical) self.splitter_gb_limits.setObjectName("splitter_gb_limits") self.label_day_limit = QtWidgets.QLabel(self.splitter_gb_limits) self.label_day_limit.setObjectName("label_day_limit") self.lcdNumber_day_limit = QtWidgets.QLCDNumber(self.splitter_gb_limits) font = QtGui.QFont() font.setPointSize(18) font.setBold(False) font.setWeight(50) self.lcdNumber_day_limit.setFont(font) self.lcdNumber_day_limit.setFrameShape(QtWidgets.QFrame.NoFrame) self.lcdNumber_day_limit.setDigitCount(3) self.lcdNumber_day_limit.setSegmentStyle(QtWidgets.QLCDNumber.Filled) self.lcdNumber_day_limit.setProperty( "intValue", (self.day_limit - self.limit_data[2])-1) self.lcdNumber_day_limit.setObjectName("lcdNumber_day_limit") self.label_hour_limit = QtWidgets.QLabel(self.splitter_gb_limits) self.label_hour_limit.setObjectName("label_hour_limit") self.lcdNumber_hour_limit = QtWidgets.QLCDNumber(self.splitter_gb_limits) font = QtGui.QFont() font.setPointSize(18) font.setBold(False) font.setWeight(50) self.lcdNumber_hour_limit.setFont(font) self.lcdNumber_hour_limit.setFrameShape(QtWidgets.QFrame.NoFrame) self.lcdNumber_hour_limit.setDigitCount(3) self.lcdNumber_hour_limit.setSegmentStyle(QtWidgets.QLCDNumber.Filled) self.lcdNumber_hour_limit.setProperty("intValue", self.limit_data[1]) self.lcdNumber_hour_limit.setObjectName("lcdNumber_hour_limit") self.gridLayout.addWidget(self.groupBox_limits, 1, 1, 1, 1) self.groupBox_info = QtWidgets.QGroupBox(YaP) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.groupBox_info.sizePolicy().hasHeightForWidth()) self.groupBox_info.setSizePolicy(sizePolicy) self.groupBox_info.setMinimumSize(QtCore.QSize(0, 110)) self.groupBox_info.setMaximumSize(QtCore.QSize(16777215, 150)) self.groupBox_info.setObjectName("groupBox_info") self.label_info = QtWidgets.QLabel(self.groupBox_info) self.label_info.setGeometry(QtCore.QRect(20, 10, 188, 81)) font = QtGui.QFont() font.setPointSize(8) font.setBold(True) font.setItalic(False) font.setWeight(75) self.label_info.setFont(font) self.label_info.setTextFormat(QtCore.Qt.AutoText) self.label_info.setScaledContents(False) self.label_info.setAlignment(QtCore.Qt.AlignCenter) self.label_info.setObjectName("label_info") self.gridLayout.addWidget(self.groupBox_info, 3, 1, 2, 1) self.btn_save = QtWidgets.QPushButton(YaP) self.btn_save.setObjectName("btn_save") self.gridLayout.addWidget(self.btn_save, 5, 1, 1, 1) self.groupBox_main = QtWidgets.QGroupBox(YaP) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.groupBox_main.sizePolicy().hasHeightForWidth()) self.groupBox_main.setSizePolicy(sizePolicy) self.groupBox_main.setMinimumSize(QtCore.QSize(530, 600)) self.groupBox_main.setSizeIncrement(QtCore.QSize(600, 0)) self.groupBox_main.setFlat(False) self.groupBox_main.setCheckable(False) self.groupBox_main.setObjectName("groupBox_main") self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_main) self.gridLayout_3.setObjectName("gridLayout_3") self.gridLayout_main = QtWidgets.QGridLayout() self.gridLayout_main.setObjectName("gridLayout_main") self.btn_search = QtWidgets.QPushButton(self.groupBox_main) self.btn_search.setObjectName("btn_search") self.gridLayout_main.addWidget(self.btn_search, 0, 4, 1, 1) self.lineEdit_single_query = QtWidgets.QLineEdit(self.groupBox_main) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.lineEdit_single_query.sizePolicy().hasHeightForWidth()) self.lineEdit_single_query.setSizePolicy(sizePolicy) self.lineEdit_single_query.setMinimumSize(QtCore.QSize(37, 0)) self.lineEdit_single_query.setObjectName("lineEdit_single_query") self.gridLayout_main.addWidget(self.lineEdit_single_query, 0, 1, 1, 3) self.btn_fileopen = QtWidgets.QPushButton(self.groupBox_main) self.btn_fileopen.setObjectName("btn_fileopen") self.gridLayout_main.addWidget(self.btn_fileopen, 0, 0, 1, 1) self.btn_fileopen.setDisabled(True) self.table_results = QtWidgets.QTableWidget(self.groupBox_main) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.table_results.sizePolicy().hasHeightForWidth()) self.table_results.setSizePolicy(sizePolicy) self.table_results.setMinimumSize(QtCore.QSize(500, 496)) self.table_results.setRowCount(0) self.table_results.setColumnCount(3) self.table_results.setHorizontalHeaderLabels( "КЛЮЧЕВОЕ СЛОВО;МЕСТО В ПОИСКЕ;ДАТА ЗАПРОСА".split(";")) self.table_results.setObjectName("table_results") self.table_results.horizontalHeader().setCascadingSectionResizes(False) self.table_results.horizontalHeader().setDefaultSectionSize(170) self.table_results.horizontalHeader().setMinimumSectionSize(31) self.table_results.horizontalHeader().setSortIndicatorShown(False) self.table_results.horizontalHeader().setStretchLastSection(False) self.table_results.verticalHeader().setCascadingSectionResizes(False) self.gridLayout_main.addWidget(self.table_results, 1, 0, 1, 5) self.label_filepath = QtWidgets.QLabel(self.groupBox_main) self.label_filepath.setMinimumSize(QtCore.QSize(0, 42)) self.label_filepath.setObjectName("label_filepath") self.gridLayout_main.addWidget(self.label_filepath, 2, 0, 1, 5) self.gridLayout_3.addLayout(self.gridLayout_main, 0, 0, 1, 1) self.gridLayout.addWidget(self.groupBox_main, 0, 0, 6, 1) self.retranslateUi(YaP) QtCore.QMetaObject.connectSlotsByName(YaP)
def start_search(self, event): if self.timer.isActive(): self.timer.stop() else: self.timer.start(100, self) self.label_done.setText( 'Запросы обработаны, результаты занесены в базу данных.\n\ Для сохранения в файл нажмите кнопку \"Сохранить\".') if self.file_taken: for j, item in enumerate(self.query_list): self.query = self.query_list[j] r = requests.get(self.query_url + self.query) self.r_count += 1 # функция limit() может быть вызвана только один раз # # во избежание неправильных показателей счётчика. # limit_data = limit(self.r_count, self.db_path, self.req_date) # # ########################################################### # if (limit_data[0]): result = r.text result_list = result.split('<url>') for i, item in enumerate(result_list): if self.rate_url in item: self.rank += i break self.res_list.append(( self.query.encode('utf-8').decode('cp1251'), self.rank, self.req_date,)) self.file_queries.append( self.query.encode('utf-8').decode('cp1251')) limit_resume = str(limit_data[1]) + ' - Winter is close!' else: limit_resume = str(limit_data[1]) +\ 'Hour limit is here... Wait about ' +\ str(60 - int(datetime.now().strftime('%M'))) +\ ' minuntes, please!' self.sql_con(self.res_list) print(limit_resume) print(int(datetime.now().strftime('%Y-%m-%d'))) print(int(datetime.now().strftime('%Y-%m-%d'))-1) else: r = requests.get(self.query_url + self.query) self.r_count += 1 result = r.text result_list = result.split('<url>') for i, item in enumerate(result_list): if self.rate_url in item: self.rank += i break if self.rank != 0: self.res_label = ('По запросу \"' + self.query + '\" сайт poligon.info \ находится на ' + str(self.rank) + '-й позиции.\nДата запроса : ' + self.req_date + '.') self.label_r.setText(self.res_label) self.label_r.adjustSize() self.res_list.append(( self.query.encode('utf-8').decode('cp1251'), self.rank, self.req_date,)) self.sql_con(self.res_list) else: self.res_label = ('По запросу \"' + self.query + '\" сайт poligon.info \ находится ниже 100-й позиции.\nДата запроса : ' + self.req_date + '.') self.label_r.setText(self.res_label) self.label_r.adjustSize() self.res_list.append(( self.query.encode('utf-8').decode('cp1251'), self.rank, self.req_date,)) self.sql_con(self.res_list) print('end') print(self.res_list)
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
def start_search(self, event): self.search_work = True # YaP.timer = QtCore.QBasicTimer() # if YaP.timer.isActive(): # YaP.timer.stop() # else: # YaP.timer.start(100, YaP) if self.file_taken: for j, item in enumerate(self.query_list): self.query = self.query_list[j] r = requests.get(self.query_url + self.query) self.r_count += 1 self.limit_data = limit( self.r_count, self.db_path, self.req_date, self.day_limit, self.day_overdraft, self.limit_police, self.hour, self.search_work) if (self.limit_data[0]): result = r.text result_list = result.split('<url>') for i, item in enumerate(result_list): if self.rate_url in item: self.rank += i break if self.rank != 0: self.cell_rank = str(self.rank) else: self.cell_rank = "< 100" self.cell_date = self.req_date # print(len(self.recent_requests)) if (self.query not in self.recent_requests): self.cell_word = self.query self.recent_requests.append(self.query) self.table_results.setRowCount(self.table_row + 1) self.table_results.setItem( self.table_row, 0, QtWidgets.QTableWidgetItem(self.cell_word)) self.table_results.setItem( self.table_row, 1, QtWidgets.QTableWidgetItem(self.cell_rank)) self.table_results.setItem( self.table_row, 2, QtWidgets.QTableWidgetItem(self.cell_date)) self.table_row += 1 self.label_info.setText('Запрос обработан.\nДля сохранения статистики\nнажмите кнопку \"Сохранить\".') else: self.label_info.setText('Этот запрос уже обработан.\nВведите другой запрос.') self.recent_limit = self.limit_data[1] self.lcdNumber_hour_limit.setProperty( "intValue", self.recent_limit) self.lcdNumber_day_limit.setProperty( "intValue", (self.day_limit - self.limit_data[2]-1)) self.res_list.append(( self.query.encode('utf-8').decode('cp1251'), self.rank, self.req_date,)) self.sql_con(self.res_list) self.res_list = [] self.rank = 0 self.recent_limit = self.limit_data[1] - 1 limit_resume = str(self.recent_limit) + '\ - Winter is close!' else: limit_resume = str(self.recent_limit) + '\ Hour limit is here... Wait about ' +\ str(60 - int(datetime.now().strftime('%M'))) +\ ' minuntes, please!' self.sql_con(self.res_list) self.res_list = [] self.rank = 0 self.file_taken = False # print(limit_resume) else: r = requests.get(self.query_url + self.query) self.r_count += 1 self.limit_data = limit( self.r_count, self.db_path, self.req_date, self.day_limit, self.day_overdraft, self.limit_police, self.hour, self.search_work) result = r.text result_list = result.split('<url>') for i, item in enumerate(result_list): if self.rate_url in item: self.rank += i break if self.rank != 0: self.cell_rank = str(self.rank) else: self.cell_rank = "< 100" self.cell_date = self.req_date # print(len(self.recent_requests)) if (self.query not in self.recent_requests): self.cell_word = self.query self.recent_requests.append(self.query) self.table_results.setRowCount(self.table_row + 1) self.table_results.setItem( self.table_row, 0, QtWidgets.QTableWidgetItem(self.cell_word)) self.table_results.setItem( self.table_row, 1, QtWidgets.QTableWidgetItem(self.cell_rank)) self.table_results.setItem( self.table_row, 2, QtWidgets.QTableWidgetItem(self.cell_date)) self.table_row += 1 self.label_info.setText( 'Запрос обработан.\nДля сохранения статистики\nнажмите кнопку \"Сохранить\".') else: self.label_info.setText('Этот запрос уже обработан.\nВведите другой запрос.') self.recent_limit = self.limit_data[1] self.lcdNumber_hour_limit.setProperty( "intValue", self.recent_limit) self.lcdNumber_day_limit.setProperty( "intValue", (self.day_limit - self.limit_data[2]-1)) self.res_list.append(( self.query.encode('utf-8').decode('cp1251'), self.rank, self.req_date,)) self.sql_con(self.res_list) self.res_list = [] self.search_work = False
conn.close() # ключевое слово, для которого вычисляется позиция в выдаче Яндекса query = '' # список результатов рейтинга res_list = [] # позиция в выдаче Яндекса rank = 0 # имя xls-файла для списка запросов и вывода по ним статистики рейтингов fname = '' # кол-во столбцов в таблице представления данных # table_row = 0 # превышение лимита запросов за предыдущий день day_overdraft = 0 # список запросов, отображаемых в таблице table_list = [] # список номеров строк в таблице с текущими запросами table_indexes = [] # сюда поступают одиночные запросы перед добавлением в таблицу table_add = [] # переключатель для функции подсчёта лимитов(чтобы не считал вхолостую) search_work = False ref_path = "file:///C:/Users/gnato/Desktop/Igor/progs/python_progs/YaP/reference.html" # текущий час суток # формат: strftime('%Y-%m-%d %H:%M:%S') hour = int(datetime.now().strftime('%H')) req_date = str(datetime.now().strftime('%Y-%m-%d')) # данные по текущим лимитам, заполняются возвратом от функции limit() limit_data = limit(db_path, req_date, day_limit, day_overdraft, limit_police, hour, search_work, 1, 0, 0)