194 lines
8.4 KiB
Python
194 lines
8.4 KiB
Python
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') |