fengdu2077/x-search-filters
GitHub: fengdu2077/x-search-filters
一个将 X(Twitter)高级搜索操作符可视化为图形面板的 Chrome 扩展,让用户无需记忆复杂语法即可构建精确搜索查询。
Stars: 17 | Forks: 2
# X Search Filters / X 高级搜索筛选器
[English](./README.en.md)
一个用于增强 X(Twitter)搜索体验的 Chrome 扩展。它把 X 支持的高级搜索操作符(如 `from:`、`since:`、`min_faves:`、`filter:images`、`lang:ja` 等)做成可视化面板,避免用户记忆复杂语法。
## 功能特点
- **按使用意图分组**:搜索 / 来源 / 筛选 / 类型
- **不干扰 X 原生搜索联想**:点击搜索框仍然显示 X 自带的用户/关键词联想
- **明确应用规则**:编辑筛选条件时不会写入 X 搜索框,只有点击「应用」时才写入并搜索
- **历史与收藏**:本地保存最近搜索和命名收藏
- **中英文界面**:支持中文 / English UI 切换
- **无构建步骤**:Manifest V3 + 原生 JavaScript / CSS
## 从 GitHub 安装
1. 在 GitHub 页面点击 **Code → Download ZIP**。
2. 解压下载的 ZIP 文件。
3. 打开 Chrome 或 Edge,进入:
chrome://extensions
4. 打开右上角 **开发者模式**。
5. 点击 **加载已解压的扩展程序**。
6. 选择解压后的项目目录,也就是直接包含 `manifest.json` 的那一层目录。
7. 打开 `https://x.com`,在搜索框内使用 **Advanced / 高级搜索** 按钮。
## 本地开发安装
如果你在本机开发,可以直接加载这个目录:
F:\feng\x\x-search-filters
注意:Chrome 加载未打包扩展时,选择的文件夹必须直接包含 `manifest.json`。
## 使用方式
┌────────────────────────────────────────┐
│ X 搜索框 │
│ [高级搜索/Adv] │
└────────────────────────────────────────┘
│ 点击
▼
┌────────────────────────────────────────┐
│ 高级搜索 [⏱][★][✕] │
├────────────────────────────────────────┤
│ 🔍 关键词 │
├────────────────────────────────────────┤
│ [搜索][来源][筛选][类型] 语言: 任意 │
├────────────────────────────────────────┤
│ 当前标签下的筛选字段 │
├────────────────────────────────────────┤
│ query preview [复制][重置][收藏][应用] │
└────────────────────────────────────────┘
## 关键交互规则
- 点击 X 搜索框本身:仍然使用 X 原生搜索联想。
- 打开高级搜索:点击搜索框里的 **Advanced / 高级搜索** 按钮,或在搜索框聚焦时按 `Ctrl+Shift+F`。
- 编辑筛选条件:只更新面板里的查询预览,不会实时覆盖 X 搜索框。
- 点击 **应用**:清空 X 搜索框,写入最终查询,并通过 X 自身搜索流程提交。
- 点击 **重置**:清空高级搜索面板和 X 搜索框,但不会提交搜索。
- 点击 **复制**:复制当前生成的搜索语句。
- 点击 **收藏**:保存当前查询,之后可在收藏中复用。
## 支持的搜索字段
| 分组 | 字段 |
| --- | --- |
| 搜索 | 关键词、精确短语、OR、排除词、话题标签、URL 域名、语言 |
| 来源 | 来自用户、回复给用户、认证账号、关注的人、地点、半径 |
| 筛选 | 最近时间、起始日期、截止日期、最少点赞、最少转发、最少回复 |
| 类型 | 媒体、图片、视频、链接、引用推文、排除回复 |
对应 X 操作符:
| 分组 | 操作符 |
| --- | --- |
| 搜索 | `"exact phrase"`, `OR`, `-exclude`, `#hashtag`, `url:`, `lang:` |
| 来源 | `from:`, `to:`, `filter:verified`, `filter:follows`, `near:`, `within:` |
| 筛选 | `within_time:`, `since:`, `until:`, `min_faves:`, `min_retweets:`, `min_replies:` |
| 类型 | `filter:media`, `filter:images`, `filter:videos`, `filter:links`, `filter:quote`, `-filter:replies` |
## 项目结构
manifest.json Manifest V3 配置
icons/ 扩展图标
src/
content.js 搜索框识别 + Advanced 按钮注入
panel.js 高级搜索面板
panel.css 面板样式
operators.js 搜索操作符元数据
query-builder.js 面板状态 → X 搜索语句
react-input.js 安全写入 React 受控 input
storage.js 历史、收藏、语言设置
i18n.js 中英文文案
## 开发说明
修改代码后,需要重新加载扩展:
1. 打开 `chrome://extensions`。
2. 找到 **X Search Filters**。
3. 点击扩展卡片上的刷新按钮。
4. 刷新 X 页面。
## 项目注意事项
- 当前项目处于试用和迭代阶段,暂未上架 Chrome Web Store。
- 目前通过 GitHub 分发,用户可以使用 Chrome 开发者模式加载未打包扩展。
- 当前暂未注册 Google Chrome Web Store 开发者账号;如果后续使用人数较多,会考虑上架到 Chrome Web Store。
- 这个扩展依赖 X 页面中的搜索框 DOM。X 如果调整页面结构,可能导致按钮识别或部分交互失效。
- 如果你在使用中遇到问题,欢迎提交 issue;如果你愿意改进代码,也欢迎发起 MR / PR。
## 免责声明
本项目是独立浏览器扩展,与 X Corp. / Twitter 无关联、无赞助、无背书。X 可能随时调整页面 DOM 或搜索行为,导致插件部分功能失效。
## License
MIT
标签:Web插件, X/Twitter, 前端组件, 搜索工具, 数据可视化, 自定义脚本