📦 LinkLeong / OZSync

📄 debug-status.js · 123 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123// ZimaOS 状态栏调试脚本
// 在 Obsidian 开发者控制台中运行此脚本

console.log('=== ZimaOS 状态栏调试脚本开始 ===');

// 检查插件是否存在
if (typeof window.zimaosPlugin === 'undefined') {
    console.error('❌ 插件实例不存在!请确保插件已加载。');
    console.log('💡 尝试重新加载插件或重启 Obsidian');
} else {
    console.log('✅ 插件实例已找到');
    
    const plugin = window.zimaosPlugin;
    
    // 1. 基本信息检查
    console.log('\n--- 1. 基本信息检查 ---');
    console.log('插件名称:', plugin.manifest?.name || 'Unknown');
    console.log('插件版本:', plugin.manifest?.version || 'Unknown');
    console.log('插件是否启用:', plugin.app?.plugins?.enabledPlugins?.has(plugin.manifest?.id) || false);
    
    // 2. 状态栏检查
    console.log('\n--- 2. 状态栏检查 ---');
    if (plugin.statusBarItem) {
        console.log('✅ 状态栏元素存在');
        console.log('状态栏文本:', plugin.statusBarItem.getText ? plugin.statusBarItem.getText() : plugin.statusBarItem.innerText);
        console.log('状态栏HTML:', plugin.statusBarItem.innerHTML);
        console.log('状态栏可见性:', plugin.statusBarItem.style.display !== 'none');
        console.log('状态栏类名:', plugin.statusBarItem.className);
        
        // 检查状态栏是否在DOM中
        const isInDOM = document.body.contains(plugin.statusBarItem);
        console.log('状态栏在DOM中:', isInDOM);
        
        if (!isInDOM) {
            console.warn('⚠️ 状态栏元素不在DOM中,可能已被移除');
        }
    } else {
        console.error('❌ 状态栏元素不存在!');
    }
    
    // 3. 同步状态检查
    console.log('\n--- 3. 同步状态检查 ---');
    if (plugin.syncStatus) {
        console.log('同步状态:', JSON.stringify(plugin.syncStatus, null, 2));
    } else {
        console.error('❌ 同步状态不存在!');
    }
    
    // 4. 客户端状态检查
    console.log('\n--- 4. 客户端状态检查 ---');
    if (plugin.zimaosClient) {
        console.log('✅ ZimaOS客户端存在');
        try {
            const authState = plugin.zimaosClient.getAuthState();
            console.log('认证状态:', authState);
        } catch (error) {
            console.error('获取认证状态失败:', error);
        }
    } else {
        console.error('❌ ZimaOS客户端不存在!');
    }
    
    // 5. 设置检查
    console.log('\n--- 5. 设置检查 ---');
    if (plugin.settings) {
        console.log('插件设置:', JSON.stringify(plugin.settings, null, 2));
    } else {
        console.error('❌ 插件设置不存在!');
    }
    
    // 6. 手动测试功能
    console.log('\n--- 6. 手动测试功能 ---');
    
    // 测试状态栏更新
    console.log('🔄 测试状态栏更新...');
    try {
        plugin.updateStatusBar();
        console.log('✅ 状态栏更新成功');
        
        // 等待一下再检查结果
        setTimeout(() => {
            if (plugin.statusBarItem) {
                console.log('更新后的状态栏文本:', plugin.statusBarItem.getText ? plugin.statusBarItem.getText() : plugin.statusBarItem.innerText);
            }
        }, 100);
    } catch (error) {
        console.error('❌ 状态栏更新失败:', error);
    }
    
    // 测试连接
    console.log('🔄 测试连接...');
    if (plugin.zimaosClient && typeof plugin.zimaosClient.testConnection === 'function') {
        plugin.zimaosClient.testConnection()
            .then(result => {
                console.log('✅ 连接测试成功:', result);
            })
            .catch(error => {
                console.error('❌ 连接测试失败:', error);
            });
    } else {
        console.error('❌ 无法执行连接测试');
    }
    
    // 7. 调试命令测试
    console.log('\n--- 7. 调试命令测试 ---');
    if (typeof plugin.debugStatusBar === 'function') {
        console.log('🔄 执行调试命令...');
        try {
            plugin.debugStatusBar();
        } catch (error) {
            console.error('❌ 调试命令执行失败:', error);
        }
    } else {
        console.error('❌ 调试命令不存在');
    }
}

console.log('\n=== 调试脚本结束 ===');
console.log('\n💡 使用提示:');
console.log('- 如果状态栏不显示,检查插件是否正确加载');
console.log('- 如果连接失败,检查服务器设置和网络连接');
console.log('- 可以运行 window.zimaosPlugin.debugStatusBar() 获取更多信息');
console.log('- 可以运行 window.zimaosPlugin.updateStatusBar() 手动更新状态栏');