About this project
PanSou is a high-performance cloud drive resource search API service written in Go, with the core goal of providing a self-hostable search backend for cloud drive resource retrieval. It supports both Telegram channel search and custom plugin search, with concurrent execution, result sorting, and cloud drive type classification as its main design directions.
Key capabilities
- Concurrent search: Executes multiple TG channel and async plugin searches simultaneously, managing concurrent tasks through a worker pool to reduce overall response time.
- Cloud drive type classification: Automatically identifies the cloud drive to which links belong and classifies them by type, supporting Baidu Netdisk, Aliyun Drive, Quark Drive, Guangya Drive, Tianyi Cloud Drive, UC Drive, China Mobile Cloud Drive, 115, PikPak, Xunlei, 123 Pan, magnet links, eDonkey links, and other types.
- Smart sorting: Multi-dimensional comprehensive sorting based on plugin level, time freshness, and priority keywords.
- Async plugin system: Plugins can quickly return partial results first and then continue processing in the background, alleviating the problem of slow responses from some search sources; plugins must be explicitly enabled through ENABLED_PLUGINS.
- Two-level caching: Sharded in-memory plus disk caching to improve repeated query speed and concurrent performance, with configurable cache TTL, size, and shard count.
- Optional authentication: Disabled by default; when enabled, all endpoints except login and health check require a JWT Token, with support for multi-user account configuration and token validity settings.
API overview
- POST/GET /api/search: Search by keyword, with options to specify channels, plugins, concurrency, data source (TG/plugins/all), cloud drive type, whether to force refresh, and include/exclude keyword filtering; returns raw results and results merged by cloud drive type.
- POST /api/check/links: Batch check whether cloud drive share links are valid, with statuses including ok, bad, locked, unsupported, and uncertain, supporting per-request proxy and check result caching.
- POST /api/auth/login, /api/auth/verify, /api/auth/logout: Authentication-related endpoints.
- GET /api/health: Health check, returning service status, authentication toggle, enabled plugins, and channel list.
Deployment
Two Docker images are provided: a frontend-backend integrated version and a pure backend API version, which can be started with one click using docker run or docker-compose. Building from source is also supported, requiring Go 1.18+, with optional SOCKS5/HTTP proxy for accessing Telegram sites in restricted regions. The README also provides supervisor and nginx configuration references (including rate limiting and HTTPS).
The project is licensed under the MIT License, and the README states that it is for learning and research only and should not be used for profit-making purposes.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.