Files
domainCheck/fix_on_query_finished.py
2026-05-06 16:30:59 +08:00

194 lines
8.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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')