diff --git a/pansou/README.md b/pansou/README.md new file mode 100644 index 000000000..af395e89a --- /dev/null +++ b/pansou/README.md @@ -0,0 +1,55 @@ +# PanSou 网盘搜索 API + +PanSou 是一个高性能的网盘资源搜索 API 服务,支持 Telegram 搜索和自定义插件扩展,系统以性能和可扩展性为核心,支持并发搜索、结果智能排序和多网盘类型分类。 + +## ✨ 特性 +- **高性能搜索**:并发执行多个 Telegram 频道及插件搜索,显著提升搜索速度 +- **多网盘类型分类**:自动识别百度网盘、阿里云盘、夸克网盘等多种链接 +- **智能排序**:基于插件等级、时间新鲜度和关键词权重的综合排序 +- **异步插件系统**:支持“尽快响应,持续处理”的搜索模式 +- **二级缓存**:内存 + 磁盘分片缓存机制,大幅提升重复查询性能 + +## 🛠 支持的网盘类型 +百度网盘、阿里云盘、夸克网盘、天翼云盘、UC网盘、移动云盘、115网盘、PikPak、迅雷网盘、123网盘、磁力链接、电驴链接等。 + +## 🚀 快速开始 + +### 使用 Docker 部署(前后端一体) +```bash +docker run -d --name pansou -p 80:80 ghcr.io/fish2018/pansou-web +``` + +### 使用 Docker Compose(推荐) + +```bash +curl -o docker-compose.yml https://raw.githubusercontent.com/fish2018/pansou-web/refs/heads/main/docker-compose.yml +docker-compose up -d +``` + +### 仅后端 API + +```bash +docker run -d --name pansou -p 8888:8888 -v pansou-cache:/app/cache -e CHANNELS="tgsearchers2,xxx" ghcr.io/fish2018/pansou:latest +``` + +## 📚 API 文档 + +### 搜索 API + +- 接口:`/api/search` +- 方法:`POST` / `GET` +- 参数: + - `kw`:搜索关键词 + - `channels`:搜索的频道 + - `cloud_types`:网盘类型过滤 + - 更多详见[项目文档](https://github.com/fish2018/pansou) + +### 健康检查 API + +- 接口:`/api/health` +- 方法:`GET` + +## 🔗 项目地址 + +- GitHub: https://github.com/fish2018/pansou +- 文档: https://github.com/fish2018/pansou \ No newline at end of file diff --git a/pansou/data.yml b/pansou/data.yml new file mode 100644 index 000000000..3e764e8fc --- /dev/null +++ b/pansou/data.yml @@ -0,0 +1,33 @@ +name: PanSou +tags: + - 网盘 + - 搜索 + - 自托管 +title: 高性能网盘搜索 API 服务 +description: PanSou 是一个支持 Telegram 搜索和插件扩展的高性能网盘搜索 API 系统,支持多网盘类型分类、智能排序、异步插件扩展与二级缓存。 +additionalProperties: + key: pansou + name: PanSou + tags: + - WebSite + - Tool + shortDescZh: 高性能网盘搜索 API 服务 + shortDescEn: High-performance cloud drive search API service + type: website + crossVersionUpdate: true + limit: 0 + website: https://github.com/fish2018/pansou + github: https://github.com/fish2018/pansou + document: https://github.com/fish2018/pansou + description: + en: High-performance cloud drive search API service supporting Telegram search and plugin extensions, with intelligent sorting and multi-cloud categorization. + zh: 高性能网盘搜索 API 系统,支持 Telegram 搜索与插件扩展,具备智能排序和多网盘类型分类。 + zh-Hant: 高效能網盤搜索 API 系統,支援 Telegram 搜索與插件擴展,具有智能排序和多網盤分類。 + ja: Telegram検索とプラグイン拡張に対応した高性能クラウドドライブ検索APIシステムです。 + ms: Perkhidmatan API carian storan awan berprestasi tinggi yang menyokong carian Telegram dan peluasan pemalam. + pt-br: Serviço de API de pesquisa de armazenamento em nuvem de alto desempenho com suporte a pesquisa no Telegram e extensões de plugins. + ru: Высокопроизводительный API поиска по облачным хранилищам с поддержкой поиска в Telegram и расширений плагинов. + ko: 텔레그램 검색과 플러그인 확장을 지원하는 고성능 클라우드 드라이브 검색 API 시스템입니다. + architectures: + - amd64 + - arm64 diff --git a/pansou/logo.png b/pansou/logo.png new file mode 100644 index 000000000..9b76f12bf Binary files /dev/null and b/pansou/logo.png differ diff --git a/pansou/sha-c1292b2/data.yml b/pansou/sha-c1292b2/data.yml new file mode 100644 index 000000000..717e51c28 --- /dev/null +++ b/pansou/sha-c1292b2/data.yml @@ -0,0 +1,133 @@ +additionalProperties: + formFields: + - default: 45963 + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP 端口 + label: + en: HTTP Port + ja: ポート + ms: Port + pt-br: Porta + ru: Порт + ko: 포트 + zh: HTTP 端口 + zh-Hant: HTTP 連接埠 + required: true + rule: paramPort + type: number + + - default: "" + envKey: SOCKS5_PROXY + labelEn: SOCKS5 Proxy + labelZh: SOCKS5 代理 + label: + en: SOCKS5 Proxy + ja: SOCKS5プロキシ + ms: Proksi SOCKS5 + pt-br: Proxy SOCKS5 + ru: SOCKS5 прокси + ko: SOCKS5 프록시 + zh: SOCKS5 代理 + zh-Hant: SOCKS5 代理 + required: false + type: text + + - default: "" + envKey: HTTP_PROXY + labelEn: HTTP Proxy + labelZh: HTTP 代理 + label: + en: HTTP Proxy + ja: HTTPプロキシ + ms: Proksi HTTP + pt-br: Proxy HTTP + ru: HTTP прокси + ko: HTTP 프록시 + zh: HTTP 代理 + zh-Hant: HTTP 代理 + required: false + type: text + + - default: "" + envKey: HTTPS_PROXY + labelEn: HTTPS Proxy + labelZh: HTTPS 代理 + label: + en: HTTPS Proxy + ja: HTTPSプロキシ + ms: Proksi HTTPS + pt-br: Proxy HTTPS + ru: HTTPS прокси + ko: HTTPS 프록시 + zh: HTTPS 代理 + zh-Hant: HTTPS 代理 + required: false + type: text + + - default: true + envKey: MOONTV_ENABLE_REGISTER + required: true + type: select + label: + en: Enable Registration + ja: 登録を有効にする + ms: Dayakan Pendaftaran + pt-br: Habilitar Registro + ru: Включить регистрацию + ko: 회원가입 활성화 + zh: 启用注册 + zh-Hant: 啟用註冊 + values: + - label: 启用 + value: "true" + - label: 禁用 + value: "false" + + - default: "3600" + envKey: CACHE_TTL + labelEn: Cache TTL (seconds) + labelZh: 缓存有效期(秒) + label: + en: Cache TTL (seconds) + ja: キャッシュTTL(秒) + ms: Cache TTL (saat) + pt-br: TTL de Cache (segundos) + ru: TTL кэша (сек) + ko: 캐시 TTL(초) + zh: 缓存有效期(秒) + zh-Hant: 快取有效期(秒) + required: true + type: number + + - default: "200" + envKey: MAX_CONCURRENCY + labelEn: Max Concurrency + labelZh: 最大并发数 + label: + en: Max Concurrency + ja: 最大同時実行数 + ms: Keupayaan Serentak Maks + pt-br: Concorrência Máxima + ru: Макс. количество потоков + ko: 최대 동시 실행 수 + zh: 最大并发数 + zh-Hant: 最大並行數 + required: true + type: number + + - default: "30" + envKey: MAX_PAGES + labelEn: Max Pages + labelZh: 最大页面数 + label: + en: Max Pages + ja: 最大ページ数 + ms: Bilangan Halaman Maks + pt-br: Páginas Máximas + ru: Макс. количество страниц + ko: 최대 페이지 수 + zh: 最大页面数 + zh-Hant: 最大頁數 + required: true + type: number diff --git a/pansou/sha-c1292b2/docker-compose.yml b/pansou/sha-c1292b2/docker-compose.yml new file mode 100644 index 000000000..f5536f1fc --- /dev/null +++ b/pansou/sha-c1292b2/docker-compose.yml @@ -0,0 +1,26 @@ +services: + pansou: + image: ghcr.io/fish2018/pansou-web:sha-c1292b2 + container_name: ${CONTAINER_NAME} + restart: always + labels: + createdBy: "Apps" + ports: + - "${PANEL_APP_PORT_HTTP}:80" + environment: + SOCKS5_PROXY: ${SOCKS5_PROXY} + HTTP_PROXY: ${HTTP_PROXY} + HTTPS_PROXY: ${HTTPS_PROXY} + CACHE_ENABLED: ${CACHE_ENABLED} + CACHE_TTL: ${CACHE_TTL} + MAX_CONCURRENCY: ${MAX_CONCURRENCY} + MAX_PAGES: ${MAX_PAGES} + volumes: + - ./data/data:/app/data + - ./data/logs:/app/logs + networks: + - 1panel-network + +networks: + 1panel-network: + external: true diff --git a/pansou/sha-c1292b2/scripts/init.sh b/pansou/sha-c1292b2/scripts/init.sh new file mode 100644 index 000000000..390cc1d23 --- /dev/null +++ b/pansou/sha-c1292b2/scripts/init.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# 替换docker-compose.yml中的ghcr.io为ghcr.nju.edu.cn +echo "开始替换镜像源地址..." +if sed -i 's/ghcr.io/ghcr.nju.edu.cn/g' ./docker-compose.yml; then + echo "成功: 已将ghcr.io替换为ghcr.nju.edu.cn" +else + echo "错误: 替换镜像源地址失败" + exit 1 +fi diff --git a/pansou/sha-c1292b2/scripts/upgrade.sh b/pansou/sha-c1292b2/scripts/upgrade.sh new file mode 100644 index 000000000..390cc1d23 --- /dev/null +++ b/pansou/sha-c1292b2/scripts/upgrade.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# 替换docker-compose.yml中的ghcr.io为ghcr.nju.edu.cn +echo "开始替换镜像源地址..." +if sed -i 's/ghcr.io/ghcr.nju.edu.cn/g' ./docker-compose.yml; then + echo "成功: 已将ghcr.io替换为ghcr.nju.edu.cn" +else + echo "错误: 替换镜像源地址失败" + exit 1 +fi