feat(app_detail_window): 改进开发者信息获取逻辑,优先通过API查询

当存在有效的开发者ID时,优先通过API获取开发者名称,失败时再回退到本地数据。同时优化了异常处理流程,确保开发者信息能正确显示。
This commit is contained in:
2025-09-24 22:01:59 +08:00
parent e553768c1d
commit cea9614989
2 changed files with 36 additions and 8 deletions

View File

@@ -272,14 +272,42 @@ class AppDetailWindow(QMainWindow):
# 更新头部信息
self.app_title.setText(app_data.get('name', '未知应用'))
# 改进开发者信息处理,确保能正确显示开发者名称
developer_name = app_data.get('developer_name', '')
# 如果developer_name为空尝试从其他可能的字段获取
if not developer_name:
developer_name = app_data.get('developer', '')
# 如果developer也为空尝试使用developer_email
if not developer_name:
developer_name = app_data.get('developer_email', '未知开发者')
# 通过开发者ID查询开发者名称
developer_id = app_data.get('developer_id', '')
developer_name = "未知开发者"
if developer_id and developer_id != "0":
# 尝试通过API获取开发者名称
try:
developer_info = self.api_client.make_request('getdeveloperinfo', {'id': developer_id})
if isinstance(developer_info, dict) and 'success' in developer_info and developer_info['success']:
developer_name = developer_info['data'].get('name', '未知开发者')
else:
# 如果API调用失败尝试从本地数据获取
if 'developer_name' in app_data and app_data['developer_name']:
developer_name = app_data['developer_name']
elif 'developer' in app_data and app_data['developer']:
developer_name = app_data['developer']
elif 'developer_email' in app_data and app_data['developer_email']:
developer_name = app_data['developer_email']
except Exception as e:
# 异常处理,使用本地数据
if 'developer_name' in app_data and app_data['developer_name']:
developer_name = app_data['developer_name']
elif 'developer' in app_data and app_data['developer']:
developer_name = app_data['developer']
elif 'developer_email' in app_data and app_data['developer_email']:
developer_name = app_data['developer_email']
else:
# 如果没有有效的开发者ID尝试从本地数据获取
if 'developer_name' in app_data and app_data['developer_name']:
developer_name = app_data['developer_name']
elif 'developer' in app_data and app_data['developer']:
developer_name = app_data['developer']
elif 'developer_email' in app_data and app_data['developer_email']:
developer_name = app_data['developer_email']
self.developer_label.setText(f"开发者: {developer_name}")
# 根据应用状态设置状态标签样式