| 131 | } |
| 132 | |
| 133 | async generateReport() { |
| 134 | console.log('📊 Generating comprehensive report...\n'); |
| 135 | |
| 136 | const stats = {}; |
| 137 | |
| 138 | // iCSS 统计 |
| 139 | stats.icss = await new Promise((resolve) => { |
| 140 | this.db.get('SELECT COUNT(*) as count FROM issues', (err, row) => { |
| 141 | resolve(err ? 0 : row.count); |
| 142 | }); |
| 143 | }); |
| 144 | |
| 145 | // CSS-Inspiration 统计 |
| 146 | stats.inspiration = await new Promise((resolve) => { |
| 147 | this.db.get('SELECT COUNT(*) as count FROM css_inspiration', (err, row) => { |
| 148 | resolve(err ? 0 : row.count); |
| 149 | }); |
| 150 | }); |
| 151 | |
| 152 | // 代码片段统计 |
| 153 | stats.snippets = await new Promise((resolve) => { |
| 154 | this.db.get('SELECT COUNT(*) as count FROM code_snippets', (err, row) => { |
| 155 | resolve(err ? 0 : row.count); |
| 156 | }); |
| 157 | }); |
| 158 | |
| 159 | // 演示样式统计 |
| 160 | stats.demos = await new Promise((resolve) => { |
| 161 | this.db.get('SELECT COUNT(*) as count FROM demo_styles', (err, row) => { |
| 162 | resolve(err ? 0 : row.count); |
| 163 | }); |
| 164 | }); |
| 165 | |
| 166 | console.log('📈 Database Statistics Summary:'); |
| 167 | console.log(` iCSS Articles: ${stats.icss}`); |
| 168 | console.log(` CSS-Inspiration Demos: ${stats.inspiration}`); |
| 169 | console.log(` Code Snippets: ${stats.snippets}`); |
| 170 | console.log(` Demo Styles: ${stats.demos}`); |
| 171 | console.log(` Total Records: ${stats.icss + stats.inspiration + stats.snippets + stats.demos}`); |
| 172 | } |
| 173 | |
| 174 | async runAllTests() { |
| 175 | try { |