This commit is contained in:
BF
2026-05-06 16:30:59 +08:00
parent 83ab7a79e8
commit c2276f17f4
36 changed files with 432386 additions and 543 deletions

194
fix_on_query_finished.py Normal file
View File

@@ -0,0 +1,194 @@
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')