* 判断是否应该跳过Reddit网站上的特定元素
(node: any)
| 1233 | * 判断是否应该跳过Reddit网站上的特定元素 |
| 1234 | */ |
| 1235 | function shouldSkipRedditElement(node: any): boolean { |
| 1236 | // 检查是否为特殊内容(URL、邮箱、用户名等) |
| 1237 | if (node.textContent && isSpecialContent(node.textContent)) { |
| 1238 | debugLog('Reddit', '特殊内容跳过', node.textContent); |
| 1239 | return true; |
| 1240 | } |
| 1241 | |
| 1242 | // 处理帖子标题中的屏幕阅读器内容 |
| 1243 | if (node.tagName?.toLowerCase() === 'faceplate-screen-reader-content') { |
| 1244 | debugLog('Reddit', '屏幕阅读器内容跳过', node.textContent); |
| 1245 | return true; |
| 1246 | } |
| 1247 | |
| 1248 | // 处理帖子中的时间标签 |
| 1249 | if (node.tagName?.toLowerCase() === 'time') { |
| 1250 | debugLog('Reddit', '时间标签跳过', node.textContent); |
| 1251 | return true; |
| 1252 | } |
| 1253 | |
| 1254 | // 如果当前节点或其祖先节点匹配这些选择器,则跳过 |
| 1255 | const skipSelectors = [ |
| 1256 | // 导航栏和头部 |
| 1257 | 'header', |
| 1258 | 'div._3Qx5bBCG_O8wVZee9J-KyJ', // Reddit的头部容器 |
| 1259 | 'div._1x6pySZ2CoUnAfsFhGe7J1', // 导航栏 |
| 1260 | 'div._1QhgSEQa6-vyHBHcV0rygZ', // 顶部横幅 |
| 1261 | 'nav, div[data-testid="subreddit-header"]', // 导航区域 |
| 1262 | 'div._3ozFtOe6WpJEMUtxDOIvtU', // 菜单条 |
| 1263 | 'div._2QZ7T4uAFMs_N83BZcN-Em', // 排序栏 |
| 1264 | |
| 1265 | // Reddit新UI元素 |
| 1266 | 'faceplate-timeago', // 时间显示组件 |
| 1267 | 'a[data-ks-id]', // 帖子链接 |
| 1268 | 'shreddit-post[data-ks-item]', // 帖子组件 |
| 1269 | 'a[slot="full-post-link"]', // 完整帖子链接 |
| 1270 | 'span[slot="credit-bar"]', // 信用栏 |
| 1271 | 'shreddit-post-flair', // 帖子标签 |
| 1272 | 'shreddit-join-button', // 加入按钮 |
| 1273 | 'shreddit-post-overflow-menu', // 溢出菜单 |
| 1274 | 'shreddit-async-loader', // 异步加载器 |
| 1275 | 'faceplate-hovercard', // 悬停卡片 |
| 1276 | 'faceplate-tracker', // 跟踪器 |
| 1277 | 'faceplate-number', // 数字格式化组件 |
| 1278 | 'shreddit-distinguished-post-tags', // 特殊帖子标签 |
| 1279 | |
| 1280 | // 侧边栏 |
| 1281 | 'div._1OVBBWLtHoSPfGCRaPzpTf', // 侧边栏容器 |
| 1282 | 'div.wBtTDilkW_zr1D60d6V2Z', // 侧边栏组件 |
| 1283 | 'div._3Qkp11fjcAw9I9wtLo8frE', // 边栏卡片 |
| 1284 | 'div._1HSQGYlfPWzs40LP8sZqzT', // 社区边栏 |
| 1285 | 'div._2vEf-C2keJaBMY9qk_BxVn', // 侧边栏块 |
| 1286 | 'div._3Qkp11fjcAw9I9wtLo8frE', // 社区信息卡 |
| 1287 | 'div._2QmHYFeMADTpuXJtd36LQs', // 边栏模块 |
| 1288 | |
| 1289 | // 表单元素 |
| 1290 | 'form', 'input', 'textarea', 'button', |
| 1291 | 'button._3QMG29bQNj9RUoGMvSHpZg', // 主要按钮 |
| 1292 | 'button._10K5i7NW6qcm-UoCtpB3aK', // 次要按钮 |
no test coverage detected