* 判断是否应该跳过YouTube网站上的特定元素
(node: any)
| 1560 | * 判断是否应该跳过YouTube网站上的特定元素 |
| 1561 | */ |
| 1562 | function shouldSkipYouTubeElement(node: any): boolean { |
| 1563 | // 检查是否为特殊内容(URL、邮箱、用户名等) |
| 1564 | if (node.textContent && isSpecialContent(node.textContent)) { |
| 1565 | debugLog('YouTube', '特殊内容跳过', node.textContent); |
| 1566 | return true; |
| 1567 | } |
| 1568 | |
| 1569 | // 如果当前节点或其祖先节点匹配这些选择器,则跳过 |
| 1570 | const skipSelectors = [ |
| 1571 | // 导航和菜单相关 |
| 1572 | 'div#masthead-container', // 顶部导航栏 |
| 1573 | 'div#guide-content', // 左侧菜单 |
| 1574 | 'ytd-mini-guide-renderer', // 迷你导航 |
| 1575 | 'div#buttons', // 按钮区域 |
| 1576 | 'ytd-topbar-menu-button-renderer', // 顶部菜单按钮 |
| 1577 | 'ytd-guide-entry-renderer', // 导航入口 |
| 1578 | 'ytd-guide-section-renderer h3', // 导航区标题 |
| 1579 | 'div#channel-header', // 频道头部区域 |
| 1580 | 'div#channel-navigation', // 频道导航区域 |
| 1581 | |
| 1582 | // 视频控制相关 |
| 1583 | 'div.ytp-chrome-bottom', // 播放器底部控制栏 |
| 1584 | 'div.ytp-chrome-top', // 播放器顶部控制栏 |
| 1585 | 'div.ytp-right-controls', // 右侧控制 |
| 1586 | 'div.ytp-left-controls', // 左侧控制 |
| 1587 | 'div.ytp-progress-bar-container', // 进度条容器 |
| 1588 | 'span.ytp-time-current', // 当前时间 |
| 1589 | 'span.ytp-time-duration', // 视频总时长 |
| 1590 | 'button.ytp-button', // 所有播放器按钮 |
| 1591 | 'div.ytp-chapter-container', // 章节容器 |
| 1592 | |
| 1593 | // 统计和互动区域 |
| 1594 | 'div#info-contents ytd-video-primary-info-renderer div#top-level-buttons-computed', // 点赞/分享按钮 |
| 1595 | 'span#dot', // 分隔点 |
| 1596 | 'span.ytd-video-view-count-renderer', // 观看次数 |
| 1597 | 'span.ytd-video-owner-renderer', // 频道信息区域 |
| 1598 | 'div#owner', // 视频所有者区域 |
| 1599 | 'a.ytd-video-owner-renderer', // 频道链接 |
| 1600 | 'ytd-subscribe-button-renderer', // 订阅按钮 |
| 1601 | 'div.ytd-subscribe-button-renderer', // 订阅按钮渲染器 |
| 1602 | 'ytd-button-renderer', // 按钮渲染器 |
| 1603 | 'ytd-menu-renderer', // 菜单渲染器 |
| 1604 | 'ytd-badge-supported-renderer', // 徽章支持渲染器 |
| 1605 | 'div#sponsor-button', // 赞助按钮 |
| 1606 | |
| 1607 | // 评论区控制元素 |
| 1608 | 'div#action-buttons', // 评论操作按钮 |
| 1609 | 'ytd-toggle-button-renderer', // 切换按钮 |
| 1610 | 'div#vote-count-middle', // 评论投票计数 |
| 1611 | 'ytd-comments-header-renderer', // 评论头部渲染器 |
| 1612 | 'div#title.ytd-comments-header-renderer', // 评论标题 |
| 1613 | 'span.ytd-comments-header-renderer', // 评论数量 |
| 1614 | 'ytd-sort-filter-sub-menu-renderer', // 评论排序选项 |
| 1615 | 'ytd-comment-action-buttons-renderer', // 评论操作按钮 |
| 1616 | |
| 1617 | // 内容卡片和元数据 |
| 1618 | 'div.ytd-metadata-row-container-renderer', // 元数据行 |
| 1619 | 'div#subscribe-button', // 订阅按钮 |
no test coverage detected