# tieba-filter **Repository Path**: zyl1989/tieba-filter ## Basic Information - **Project Name**: tieba-filter - **Description**: 此过滤器仅在当前浏览器生效,不会影响其他用户的浏览体验。过滤规则保存在本地,更换浏览器或清除数据后需要重新设置。支持标题和用户名的关键词过滤、正则匹配、规则导入导出 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-25 - **Last Updated**: 2025-08-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 贴吧本地过滤器 (Tieba-Filter) ![版本](https://img.shields.io/badge/version-1.1.0-blue) ![平台](https://img.shields.io/badge/platform-Tampermonkey-brightgreen) ![许可证](https://img.shields.io/badge/license-MIT-lightgrey) **贴吧本地过滤器** 是一款功能强大的浏览器油猴脚本,旨在深度净化您的百度贴吧浏览体验。它通过提供精细化的内容过滤选项,让您远离不感兴趣的帖子、用户和广告,享受更清爽、更高效的贴吧冲浪。 所有过滤规则均保存在本地浏览器中,不会影响他人。请注意,更换浏览器或清除数据会导致规则丢失,建议定期使用导出功能备份。 --- ## ✨ 核心功能 ### 1. 强大的多维度过滤系统 - **帖子标题过滤**: 根据您设定的关键词或正则表达式,自动隐藏帖子列表中的相关主题。 - **发帖用户过滤**: - **用户名关键词过滤**: 隐藏指定用户的全部帖子。 - **用户ID精准过滤**: 脚本会自动获取并补全用户ID,实现100%精准屏蔽,即使用户改名也无法绕过。 - **帖子回复过滤**: - **用户过滤**: 自动隐藏指定用户在帖子内的所有回复(包括楼中楼)。 - **内容过滤**: 将标题过滤规则应用于回复内容,自动隐藏包含关键词的回复。 - **等级过滤**: 自动隐藏所有1级用户的回复,有效屏蔽小号骚扰。 - **深度广告过滤**: 内置强大的广告规则引擎 (`adFilterManager`),全面屏蔽帖子列表中的信息流广告、视频广告、右侧栏广告及各种牛皮癣推广。 ### 2. 灵活的规则管理 - **双层规则体系**: - **全局规则**: 应用于所有贴吧,一次设置,全站生效。 - **贴吧规则**: 针对特定贴吧设置,实现精细化管理。 - **规则导入与导出**: 以 `.json` 格式轻松备份和分享您的过滤规则。 - **实时规则搜索**: 在大量规则中快速定位您想找的条目。 - **状态控制**: - **全局开关**: 一键暂停或恢复所有过滤功能。 - **单条规则开关**: 独立启用或禁用任意一条规则,无需删除。 ### 3. 人性化的交互界面 - **现代化UI面板**: 提供一个美观、易用的悬浮面板来管理所有设置。 - **实时过滤统计**: 清晰展示全局和当前吧的过滤数量,效果一目了然。 - **多标签页同步**: 当您在一个页面修改规则时,其他打开的贴吧页面会实时同步,无需手动刷新。 - **响应式设计**: 界面在不同窗口大小下均能良好显示。 --- ## 🚀 技术亮点 - **模块化架构**: 脚本代码被清晰地划分为多个管理器 (`filterManager`, `panelManager`, `userIdManager`, `replyFilterManager`, `adFilterManager`, `syncManager` 等),职责分明,易于维护和扩展。 - **高性能设计**: - **虚拟列表**: 当过滤规则数量过多时,UI面板会启用虚拟列表技术进行渲染,即使有数千条规则也能保证界面流畅不卡顿。 - **防抖 (Debounce)**: 对搜索、滚动等高频事件进行防抖处理,避免不必要的性能消耗。 - **MutationObserver**: 高效地监听页面内容变化,以增量、精准的方式应用过滤规则,而非暴力地全局刷新。 - **智能用户识别**: `userIdManager` 能够从贴吧页面复杂、多变的DOM结构中稳定地提取用户ID,是实现精准用户过滤的核心。 - **后台ID补全**: 对于只有用户名的旧规则,脚本会在后台静默地尝试获取并补全用户ID,持续增强过滤的精准度。 --- ## 🛠️ 安装与使用 ### 安装教程 1. 确保您的浏览器已经安装了 [Tampermonkey](https://www.tampermonkey.net/) 扩展。 2. 点击本项目中的 [`dist/tieba-filter.user.js`](tieba-filter.user.js:1) 文件。 3. 在打开的页面中,Tampermonkey 会自动弹出安装界面,点击“安装”即可。 ### 使用说明 1. **打开管理面板**: - 在任意贴吧页面,点击浏览器右上角的 Tampermonkey 扩展图标。 - 在菜单中选择 **“管理全局过滤规则”** 或 **“管理贴吧过滤规则”**。 2. **添加规则**: - 在面板顶部选择“标题过滤”或“用户过滤”。 - 在输入框中输入关键词,点击“添加过滤”按钮。 ![输入图片说明](YHGZ2.png) 3. **管理规则**: - 您可以对列表中的每一条规则进行删除或开关操作。 - 使用顶部的全局开关可以一键暂停所有过滤。 ![输入图片说明](qjgz1.png) --- ## 💻 开发与构建 本项目已采用现代化前端工程进行重构,实现了完全的模块化开发。 ### 项目结构 - `/dist`: 存放最终构建生成的油猴脚本。 - `/src`: 存放所有模块化的源代码。 - `main.js`: 项目主入口文件。 - `*.js`: 按功能拆分的各个模块文件。 - `vite.config.js`: Vite 配置文件。 - `package.json`: 项目依赖与脚本。 ### 开发流程 1. **安装依赖**: ```bash npm install ``` 2. **修改代码**: 在 `src` 目录下对相应模块进行修改。 3. **构建脚本**: ```bash npm run build ``` 该命令会自动将 `src` 目录下的所有代码打包,并生成最终可用的油猴脚本到 `dist/tieba-filter.user.js`。 --- ## 维护与开发 本项目遵循高标准的开发准则,注重代码组织、性能、错误处理和测试。 - **代码组织**: 严格的模块化分离,清晰的职责划分。 - **性能考虑**: 优先使用高性能API,异步处理耗时操作。 - **错误处理**: 完善的 `try...catch` 机制和控制台日志,便于调试。 欢迎对本项目进行 Fork 和提交 Pull Request,共同改进这个工具。