with open('G:\\PyCode\\domainScanDemo\\app\\ui\\domain_filter.py', 'r', encoding='utf-8') as f: content = f.read() # 找到on_query_finished方法 start_idx = content.find('def on_query_finished') if start_idx == -1: print('on_query_finished method not found') else: # 找到方法的结束位置(下一个方法的开始) end_idx = content.find('def ', start_idx + 1) if end_idx == -1: end_idx = len(content) # 构建新的方法 new_method = ''' def on_query_finished(self, domains, conditions, total_count): """ 查询完成回调 """ try: # 清空表格 self.table_widget.setRowCount(0) # 预设置表格行数,减少UI更新次数 num_rows = len(domains) self.table_widget.setRowCount(num_rows) # 定义状态映射字典,避免在循环中重复创建 register_status_mapping = { 0: '待检测', 1: '已注册', 2: '可注册', 3: '宽限期', 4: '赎回期', 5: '删除期' } use_status_mapping = { 0: '未使用', 1: '已经使用', 2: '已经卖出', 3: '已经预定' } detect_status_mapping = { 0: '待检测', 1: '检测完成', 2: '检测中', 3: '黑名单', 4: '检测失败' } review_status_mapping = { 0: '无需复核', 1: '待人工复核', 2: '人工通过', 3: '人工拒绝' } has_beian_mapping = { 1: '待检测', 2: '有备案记录', 3: '没有备案记录' } # 添加数据到表格 for row, domain in enumerate(domains): # 域名 self.table_widget.setItem(row, 0, QTableWidgetItem(domain['domain'])) # 注册状态 register_status = register_status_mapping.get(domain['register_status'], '未知') self.table_widget.setItem(row, 1, QTableWidgetItem(register_status)) # 使用状态 use_status = use_status_mapping.get(domain['use_status'], '未知') self.table_widget.setItem(row, 2, QTableWidgetItem(use_status)) # 检测状态 detect_status = detect_status_mapping.get(domain['detect_status'], '未知') self.table_widget.setItem(row, 3, QTableWidgetItem(detect_status)) # 复核状态 review_status = review_status_mapping.get(domain['review_status'], '未知') self.table_widget.setItem(row, 4, QTableWidgetItem(review_status)) # 域名过期时间 expire_date = domain.get('expire_date', '') self.table_widget.setItem(row, 5, QTableWidgetItem(str(expire_date) if expire_date else '')) # 单位性质 company_type = domain.get('company_type', '') self.table_widget.setItem(row, 6, QTableWidgetItem(company_type)) # 首页地址 home_url = domain.get('website_url', '') self.table_widget.setItem(row, 7, QTableWidgetItem(home_url)) # 检测时间 detect_time = domain.get('detect_time', '') self.table_widget.setItem(row, 8, QTableWidgetItem(str(detect_time) if detect_time else '')) # 备案历史 has_beian = has_beian_mapping.get(domain.get('has_beian'), '未知') self.table_widget.setItem(row, 9, QTableWidgetItem(has_beian)) # 备案年份 beian_year = domain.get('beian_year', '') self.table_widget.setItem(row, 10, QTableWidgetItem(str(beian_year) if beian_year else '')) # 快照年份 snapshot_years = domain.get('snapshot_years', '') self.table_widget.setItem(row, 11, QTableWidgetItem(snapshot_years)) # 百度历史收录状态 baidu_history = domain.get('baidu_history') if baidu_history is None: baidu_history = {} elif isinstance(baidu_history, str): import json try: baidu_history = json.loads(baidu_history) except: baidu_history = {} baidu_history_status = '是' if baidu_history.get('status') else '否' self.table_widget.setItem(row, 12, QTableWidgetItem(baidu_history_status)) # 百度site收录状态 baidu_site = domain.get('baidu_site') if baidu_site is None: baidu_site = {} elif isinstance(baidu_site, str): import json try: baidu_site = json.loads(baidu_site) except: baidu_site = {} baidu_site_status = '是' if baidu_site.get('status') else '否' self.table_widget.setItem(row, 13, QTableWidgetItem(baidu_site_status)) # title是否有中文 is_chinese_title = domain.get('is_chinese_title', False) is_chinese_title_text = '是' if is_chinese_title else '否' self.table_widget.setItem(row, 14, QTableWidgetItem(is_chinese_title_text)) # 360site收录 qihu360_site = domain.get('qihu360_site') if qihu360_site is None: qihu360_site = {} elif isinstance(qihu360_site, str): import json try: qihu360_site = json.loads(qihu360_site) except: qihu360_site = {} qihu360_site_status = '是' if qihu360_site.get('status') else '否' self.table_widget.setItem(row, 15, QTableWidgetItem(qihu360_site_status)) # Google site收录状态 google_site = domain.get('google_site') if google_site is None: google_site = {} elif isinstance(google_site, str): import json try: google_site = json.loads(google_site) except: google_site = {} google_site_status = '是' if google_site.get('status') else '否' self.table_widget.setItem(row, 16, QTableWidgetItem(google_site_status)) # 友情链接数量 backlink_count = domain.get('backlink_count', 0) self.table_widget.setItem(row, 17, QTableWidgetItem(str(backlink_count))) # 显示查询结果,包括总数、总页数和当前页码 current_page_count = len(domains) page_size = self.page_size_spinbox.value() total_pages = (total_count + page_size - 1) // page_size # 向上取整计算总页数 current_page = self.page_spinbox.value() self.status_label.setText(f"查询完成,共 {total_count} 条记录,当前页显示 {current_page_count} 条,共 {total_pages} 页,当前第 {current_page} 页") logger.info(f"查询完成,共 {total_count} 条记录,当前页显示 {current_page_count} 条,共 {total_pages} 页,当前第 {current_page} 页") except Exception as e: self.status_label.setText(f"处理查询结果时出错: {str(e)}") logger.error(f"处理查询结果时出错: {e}") ''' # 替换方法 new_content = content[:start_idx] + new_method + content[end_idx:] # 写回文件 with open('G:\\PyCode\\domainScanDemo\\app\\ui\\domain_filter.py', 'w', encoding='utf-8') as f: f.write(new_content) print('on_query_finished method updated successfully')