Jusou(剧搜)是一个基于 Flutter 的多源资源搜索应用。它可以聚合本地索引、外部适配器和自定义 JSON 数据源,并在客户端完成链接识别、去重、排序、校验、收藏和历史记录管理。
- 多来源搜索:支持本地索引、外部适配器和
~/.jusou/sources/*.json自定义源。 - 链接识别:识别常见分享链接格式。
- 结果整理:按相关度、最新、多源可信度和文件大小排序,并支持来源、年份、类型、提取码和链接状态过滤。
- 去重合并:对同一分享链接或同一资源的多来源结果进行合并,保留更完整的海报、年份、大小和来源信息。
- 链接校验:检测链接格式、可访问状态和失效标记,缓存校验结果。
- 本地资料库:支持收藏、最近打开、搜索历史、失效反馈和外部源设置。
- 跨端运行:当前包含 macOS、Windows 和 Web 平台工程;发布包重点覆盖 macOS 和 Windows。
flutter pub get
flutter run -d macos如果需要运行 Web 版本:
flutter run -d chromeJusou 默认会读取当前用户目录下的本地数据:
~/.jusou/index.json
~/.jusou/sources/*.json
index.json 和自定义 JSON 源中的资源字段会映射到 Resource 模型,常用字段包括:
{
"id": "resource-id",
"title": "资源标题",
"share_url": "https://example.com/share/example",
"share_pwd": "abcd",
"source": "local",
"year": "2024",
"type": "movie",
"file_size": "12GB",
"poster_url": "https://example.com/poster.jpg",
"updated_at": "2026-01-01T00:00:00.000"
}没有本地数据文件或远程地址时,应用会显示数据源引导。远程搜索地址可在应用设置中启用、停用或拖动排序。普通远程地址需要兼容 /api/search?kw=关键词 JSON 接口;alipansou.com 会自动使用专用网页适配器,并解析站内跳转到真实阿里云盘链接。
应用设置里可以导入或导出配置。导出时在保存窗口输入文件名,或选择已有 JSON 文件;如果重名,系统保存面板会先确认是否覆盖。导入时在打开窗口选择要导入的配置 JSON 文件。配置也可放在默认路径供 TG 爬虫读取:
~/.jusou/config.json
配置包含远程搜索开关、远程搜索 URL 列表、深色模式和 Telegram 频道列表。配置包格式示例:
{
"app": "jusou",
"schema_version": 1,
"settings": {
"enable_remote": true,
"remote_urls": ["https://example.com"],
"dark_mode": true,
"telegram_channels": ["movie_channel"]
}
}crawler/ 是独立的 Node.js 爬虫脚本目录,用于抓取或整理外部页面数据,输出到 ~/.jusou/index.json,供应用作为本地索引读取。
cd crawler
npm install
node index.jsTelegram 公开频道抓取已经内置到应用中(lib/data/services/telegram_crawler.dart)。在应用设置中维护 TG 频道列表后,从设置面板点击"运行 TG 爬虫"即可抓取,结果写入 ~/.jusou/sources/telegram.json,下次搜索自动读取。频道列表与 ~/.jusou/config.json 中的 telegram_channels 字段保持同步。
所有抓取结果视为不可信输入,链接校验/去重/排序管线会在搜索阶段统一处理。
flutter analyze
flutter test当前发布版本为 v1.0.2,对应 Flutter 应用版本 1.0.2+3。