PanSou 一款開源網盤搜索項目,集成前后端,一鍵部署,開箱即用

PanSou 網盤搜索API

PanSou是一個高性能的網盤資源搜索API服務,支持TG搜索和自定義插件搜索。系統設計以性能和可擴展性為核心,支持并發搜索、結果智能排序和網盤類型分類。

項目地址:https://github.com/fish2018/pansou

特性(詳見系統設計文檔)

  • 高性能搜索:并發執行多個TG頻道及異步插件搜索,顯著提升搜索速度;工作池設計,高效管理并發任務
  • 網盤類型分類:自動識別多種網盤鏈接,按類型歸類展示
  • 智能排序:基于插件等級、時間新鮮度和優先關鍵詞的多維度綜合排序算法
  • 異步插件系統:支持通過插件擴展搜索來源,支持"盡快響應,持續處理"的異步搜索模式,解決了某些搜索源響應時間長的問題。詳情參考插件開發指南
  • 二級緩存:分片內存+分片磁盤緩存機制,大幅提升重復查詢速度和并發性能

支持的網盤類型

百度網盤 (baidu)、阿里云盤 (aliyun)、夸克網盤 (quark)、天翼云盤 (tianyi)、UC網盤 (uc)、移動云盤 (mobile)、115網盤 (115)、PikPak (pikpak)、迅雷網盤 (xunlei)、123網盤 (123)、磁力鏈接 (magnet)、電驢鏈接 (ed2k)、其他 (others)

預覽

請添加圖片描述
請添加圖片描述
請添加圖片描述

快速開始

在 Github 上先Fork me on GitHub本項目,并點上 Star !!!

使用Docker部署

前后端集成版
直接使用Docker命令

一鍵啟動,開箱即用,無需任何配置

docker run -d --name pansou -p 80:80 ghcr.io/fish2018/pansou-web
使用Docker Compose(推薦)
# 下載配置文件
curl -o docker-compose.yml https://raw.githubusercontent.com/fish2018/pansou-web/refs/heads/main/docker-compose.yml# 啟動服務
docker-compose up -d# 查看日志
docker-compose logs -f
純后端API
直接使用Docker命令
docker run -d --name pansou -p 8888:8888 -v pansou-cache:/app/cache -e CHANNELS="tgsearchers2,xxx" ghcr.io/fish2018/pansou:latest
使用Docker Compose(推薦)
# 下載配置文件
curl -o docker-compose.yml  https://raw.githubusercontent.com/fish2018/pansou/refs/heads/main/docker-compose.yml# 啟動服務
docker-compose up -d# 訪問服務
http://localhost:8888

從源碼安裝

環境要求
  • Go 1.18+
  • 可選:SOCKS5代理(用于訪問受限地區的Telegram站點)
  1. 克隆倉庫
git clone https://github.com/fish2018/pansou.git
cd pansou
  1. 配置環境變量(可選)
🚀 基礎配置
環境變量描述默認值說明
PORT服務端口8888修改服務監聽端口
PROXYSOCKS5代理如:socks5://127.0.0.1:1080
CHANNELS默認搜索的TG頻道tgsearchers2多個頻道用逗號分隔
🔧 高級配置(默認值即可)
點擊展開高級配置選項(通常不需要修改)
環境變量描述默認值
CONCURRENCY并發搜索數自動計算
CACHE_TTL緩存有效期(分鐘)60
CACHE_MAX_SIZE最大緩存大小(MB)100
PLUGIN_TIMEOUT插件超時時間(秒)30
ASYNC_RESPONSE_TIMEOUT快速響應超時(秒)4
ASYNC_LOG_ENABLED異步插件詳細日志true
CACHE_PATH緩存文件路徑./cache
SHARD_COUNT緩存分片數量8
CACHE_WRITE_STRATEGY緩存寫入策略(immediate/hybrid)hybrid
ENABLE_COMPRESSION是否啟用壓縮false
MIN_SIZE_TO_COMPRESS最小壓縮閾值(字節)1024
GC_PERCENTGo GC觸發百分比100
ASYNC_MAX_BACKGROUND_WORKERS最大后臺工作者數量CPU核心數×5
ASYNC_MAX_BACKGROUND_TASKS最大后臺任務數量工作者數×5
ASYNC_CACHE_TTL_HOURS異步緩存有效期(小時)1
HTTP_READ_TIMEOUTHTTP讀取超時(秒)自動計算
HTTP_WRITE_TIMEOUTHTTP寫入超時(秒)自動計算
HTTP_IDLE_TIMEOUTHTTP空閑超時(秒)120
HTTP_MAX_CONNSHTTP最大連接數自動計算
  1. 構建
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w -extldflags '-static'" -o pansou .
  1. 運行
./pansou

其他配置參考

點擊展開 supervisor 配置參考
[program:pansou]
environment=PORT=8888,CHANNELS="tgsearchers2,yunpanxunlei,tianyifc,BaiduCloudDisk,txtyzy,peccxinpd,gotopan,xingqiump4,yunpanqk,PanjClub,kkxlzy,baicaoZY,MCPH01,share_aliyun,bdwpzhpd,ysxb48,jdjdn1111,yggpan,MCPH086,zaihuayun,Q66Share,NewAliPan,ypquark,Oscar_4Kmovies,ucwpzy,alyp_TV,alyp_4K_Movies,shareAliyun,alyp_1,dianyingshare,Quark_Movies,XiangxiuNBB,NewQuark,ydypzyfx,kuakeyun,ucquark,xx123pan,yingshifenxiang123,zyfb123,tyypzhpd,tianyirigeng,cloudtianyi,hdhhd21,Lsp115,oneonefivewpfx,Maidanglaocom,qixingzhenren,taoxgzy,tgsearchers115,Channel_Shares_115,tyysypzypd,vip115hot,wp123zy,yunpan139,yunpan189,yunpanuc,yydf_hzl,alyp_Animation,alyp_JLP,leoziyuan"
command=/home/work/pansou/pansou
directory=/home/work/pansou
autostart=true
autorestart=true
startsecs=5
startretries=3
exitcodes=0
stopwaitsecs=10
stopasgroup=true
killasgroup=true
點擊展開 nginx 配置參考
server {listen 80;server_name pansou.252035.xyz;# 將 HTTP 重定向到 HTTPSreturn 301 https://$host$request_uri;
}limit_req_zone $binary_remote_addr zone=api_limit:10m rate=60r/m;server {listen 443 ssl http2;server_name pansou.252035.xyz;access_log /home/work/logs/pansou.log;# 證書和密鑰路徑ssl_certificate /etc/letsencrypt/live/252035.xyz/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/252035.xyz/privkey.pem;# 增強 SSL 安全性ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;ssl_prefer_server_ciphers on;# 后端代理,應用限流location / {# 應用限流規則limit_req zone=api_limit burst=10 nodelay;# 當超過限制時返回 429 狀態碼limit_req_status 429;proxy_pass http://127.0.0.1:8888;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}

API文檔

搜索API

搜索網盤資源。

接口地址/api/search
請求方法POSTGET
Content-Typeapplication/json(POST方法)

POST請求參數

參數名類型必填描述
kwstring搜索關鍵詞
channelsstring[]搜索的頻道列表,不提供則使用默認配置
concnumber并發搜索數量,不提供則自動設置為頻道數+插件數+10
refreshboolean強制刷新,不使用緩存,便于調試和獲取最新數據
resstring結果類型:all(返回所有結果)、results(僅返回results)、merge(僅返回merged_by_type),默認為merge
srcstring數據來源類型:all(默認,全部來源)、tg(僅Telegram)、plugin(僅插件)
pluginsstring[]指定搜索的插件列表,不指定則搜索全部插件
cloud_typesstring[]指定返回的網盤類型列表,支持:baidu、aliyun、quark、tianyi、uc、mobile、115、pikpak、xunlei、123、magnet、ed2k,不指定則返回所有類型
extobject擴展參數,用于傳遞給插件的自定義參數,如{“title_en”:“English Title”, “is_all”:true}

GET請求參數

參數名類型必填描述
kwstring搜索關鍵詞
channelsstring搜索的頻道列表,使用英文逗號分隔多個頻道,不提供則使用默認配置
concnumber并發搜索數量,不提供則自動設置為頻道數+插件數+10
refreshboolean強制刷新,設置為"true"表示不使用緩存
resstring結果類型:all(返回所有結果)、results(僅返回results)、merge(僅返回merged_by_type),默認為merge
srcstring數據來源類型:all(默認,全部來源)、tg(僅Telegram)、plugin(僅插件)
pluginsstring指定搜索的插件列表,使用英文逗號分隔多個插件名,不指定則搜索全部插件
cloud_typesstring指定返回的網盤類型列表,使用英文逗號分隔多個類型,支持:baidu、aliyun、quark、tianyi、uc、mobile、115、pikpak、xunlei、123、magnet、ed2k,不指定則返回所有類型
extstringJSON格式的擴展參數,用于傳遞給插件的自定義參數,如{“title_en”:“English Title”, “is_all”:true}

POST請求示例

{"kw": "速度與激情","channels": ["tgsearchers2", "xxx"],"conc": 2,"refresh": true,"res": "merge","src": "all","plugins": ["jikepan"],"cloud_types": ["baidu", "quark"],"ext": {"title_en": "Fast and Furious","is_all": true}
}

GET請求示例

GET /api/search?kw=速度與激情&channels=tgsearchers2,xxx&conc=2&refresh=true&res=merge&src=tg&cloud_types=baidu,quark&ext={"title_en":"Fast and Furious","is_all":true}

成功響應

{"total": 15,"results": [{"message_id": "12345","unique_id": "channel-12345","channel": "tgsearchers2","datetime": "2023-06-10T14:23:45Z","title": "速度與激情全集1-10","content": "速度與激情系列全集,1080P高清...","links": [{"type": "baidu","url": "https://pan.baidu.com/s/1abcdef","password": "1234"}],"tags": ["電影", "合集"],"images": ["https://cdn1.cdn-telegram.org/file/xxx.jpg"]},// 更多結果...],"merged_by_type": {"baidu": [{"url": "https://pan.baidu.com/s/1abcdef","password": "1234","note": "速度與激情全集1-10","datetime": "2023-06-10T14:23:45Z","source": "tg:頻道名稱","images": ["https://cdn1.cdn-telegram.org/file/xxx.jpg"]},// 更多百度網盤鏈接...],"quark": [{"url": "https://pan.quark.cn/s/xxxx","password": "","note": "凡人修仙傳","datetime": "2023-06-10T15:30:22Z","source": "plugin:插件名","images": []}],"aliyun": [// 阿里云盤鏈接...]// 更多網盤類型...}
}

字段說明

  • source: 數據來源標識
    • tg:頻道名稱: 來自Telegram頻道
    • plugin:插件名: 來自指定插件
    • unknown: 未知來源
  • images: TG消息中的圖片鏈接數組(可選字段)
    • 僅在來源為Telegram頻道且消息包含圖片時出現

錯誤響應

{"code": 400,"message": "關鍵詞不能為空"
}

健康檢查

檢查API服務是否正常運行。

接口地址/api/health
請求方法GET

成功響應

{"channels": ["tgsearchers2"],"plugin_count": 16,"plugins": ["pansearch","panta", "qupansou","hunhepan","jikepan","pan666","panyq","susu","xuexizhinan","hdr4k","labi","shandian","duoduo","muou","wanou","ouge","zhizhen","huban"],"plugins_enabled": true,"status": "ok"
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93054.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93054.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93054.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java爬蟲實戰

本人目前在做魚皮的《智能協同云圖庫》,涉及到了以圖搜圖圖片爬取,雖然以前有爬過圖片,但是用的都是別人現成的代碼,不怎么去理解為什么要這樣做,這次有在嘗試理解每一個步驟。本人基礎極差,屬于一點基礎也…

深入詳解C語言的循環結構:while循環、do-while循環、for循環,結合實例,講透C語言的循環結構

🔥個人主頁:艾莉絲努力練劍 ?專欄傳送門:《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題、C/C干貨分享&學習過程記錄 🍉學習方向:C/C方向 ??人生格言:為天地立心&#…

北京-4年功能測試2年空窗-報培訓班學測開-第七十四天-線下面試-聊的很滿意但可能有風險-等信吧

今天沒去教室,因為下午有個線下面試。其實是可以去教室的,但我實在太焦慮了,我覺得去了教室我心情會更不好,什么都干不下去,所以我選擇不去早上依舊是帶著滿滿焦慮起來的,會覺得自己的一切都不令自己滿意&a…

在ubuntu服務器下安裝cuda和cudnn(筆記)

目錄 0 引言 1 相關環境查詢 2 安裝cuda 2.1 下載并安裝 2.2 安裝選項配置 2.3 驗證安裝 3 安裝cudnn 3.1 下載 3.2 解壓 3.3 刪除舊版本 cuDNN 3.4 復制新文件到 CUDA 目錄 3.5 設置文件權限 3.6 創建軟鏈接 3.7 驗證安裝 0 引言 我在使用服務器的cuda11.8的時…

docker安裝centos

docker庫地址https://hub.docker.com/ 嘗試使用centos7試了幾次超時 換了個版本就可以了 docker pull centos:centos7.9.2009有時候需要更新資源地址 可以使用 vim /etc/docker/daemon.json配置其他資源地址 {"registry-mirrors": ["http://hub-mirror.c.163…

內容索引之word轉md工具 - markitdown

切分文檔構建RAG庫過程中,langchain、llamaindex更期望處理latex、md類帶有顯式結構文檔。 langchain、llamaindex切分word,有可能將段落中間截斷,導致切分后的塊語義不完整。 所以,需要先將word轉化為md格式,然后再…

MaxKB+合合信息TextIn:通過API實現PDF掃描件的文檔審核

上海合合信息科技股份有限公司(以下簡稱為合合信息)是一家深耕人工智能、OCR(光學字符識別)及商業大數據技術領域的科技企業。該公司擁有領先的智能文字識別技術,其名片全能王(CamCard)、掃描全…

MyBatis 核心入門:從概念到實戰,一篇掌握簡單增刪改查

目錄 一、什么是 MyBatis?為什么要用它? 二、MyBatis 核心概念(通俗理解) 1.SqlSessionFactory 2.SqlSession 3.Mapper接口 4.映射文件(XML) 三、手把手搭建第一個 MyBatis 項目 1. 準備工作 2. 核心配置文…

數據結構初階(12)排序算法—插入排序(插入、希爾)(動圖演示)

2. 常見排序算法的實現2.0 十大排序算法2.1 插入排序 2.1.1 基本思想直接插入排序是一種簡單的插入排序法:基本思想把待排序的記錄按其關鍵碼值的大小逐個插入到一個已經排好序的有序序列中。直到所有的記錄插入完為止,得到一個新的有序序列 。 比 挪 (…

MySQL優化常用的幾個方法

本實例是對慢sql從2萬優化到5千優化方法的匯總。 首先貼上優化效果:1、更新數據時使用ID更新;2、"分頁/輪詢"查詢時先獲取符合數據要求主鍵的最大和最小ID,然后WHERE條件增加ID步增查詢;3、檢查SQL是否命中WHERE條件&am…

深入解析 AUTOSAR:汽車軟件開發的革命性架構

引言在汽車智能化、網聯化、電動化浪潮席卷全球的今天,汽車電子系統的復雜性與日俱增。傳統“煙囪式”的 ECU 開發模式(各供應商獨立開發軟硬件)帶來了巨大的兼容性、復用性和維護成本挑戰。AUTOSAR(AUTomotive Open System ARchi…

計算機視覺(opencv)實戰一——圖像本質、數字矩陣、RGB + 圖片基本操作(灰度、裁剪、替換等)

OpenCV 入門教程: OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺庫,廣泛應用于圖像處理、視頻分析、機器學習等領域。 在 Python 中,cv2 是 OpenCV 的主要接口模塊。本文將帶你一步步掌握 cv2…

《探索C++ set與multiset容器:深入有序唯一性集合的實現與應用》

前引:在STL的關聯式容器中,set以其嚴格的元素唯一性和自動排序特性成為處理有序數據的核心工具。其底層基于紅黑樹(Red-Black Tree)實現,保證了O(log n)的查找、插入與刪除復雜度!本文將從底層原理切入&…

各測試平臺功能對比分析(ITP,Postman,Apifox,MeterSphere)

對比ITP與Postman,Apifox,MeterSphere 功能特性ITPPostmanApifoxMeterSphere接口測試? 可視化接口調試,支持多種請求方式? 支持? 支持? 支持場景測試? 多接口串聯測試,支持前后置腳本? Collections功能? 支持? 支持定時任務? 基于Celery的定時…

開源日志log4cplus—如何將 string類型轉為tstring類型,又如何將char*類型轉換為tstring類型?

文章目錄🔧 一、理解 log4cplus::tstring 的本質?? 二、std::string 轉 tstring 的三種方法? 1. 使用內置宏 LOG4CPLUS_STRING_TO_TSTRING(推薦)? 2. 手動條件編譯轉換(精細控制)? 3. 多字節模式下的直接賦值??…

深度學習之CNN網絡簡介

CNN網絡簡單介紹 1.概述 卷積神經網絡(Convolutional Neural Network,CNN)是一種專門用于處理具有網格狀結構數據的深度學習模型。 ? CNN網絡主要有三部分構成:卷積層、池化層和全連接層構成,其中卷積層負責提取圖像中…

【微實驗】基頻提取的MATLAB實現(優化版)

前情提要: 【超詳細】科普:別再只會用自相關!YIN 和 PYIN 如何破解音頻隱藏密碼?-CSDN博客 【微實驗】媽媽我的MATLAB會識別聲音的基頻了!-CSDN博客 今天用MATLAB把算法封裝成函數,然后調用對比結果。 …

開發 npm 包【詳細教程】(含發布 npm 包,版本號升級,修改包后重新發布等)

1. 給 npm 包取個【唯一】的名字! npm 包命名規范 只能包含小寫字母(a-z)、數字(0-9)、連字符(-) 和 下劃線(_),不能包含空格、大寫字母、標點符號&#xff…

Secure 第三天作業

實驗需求:1.參考以上拓撲所示,完成以下需求:1) 配置各設備 IP 地址2) 配置 ZBFW,Inside-1 和 nside-2 屬于內部 Zone,Outside-1 屬于外部 Zonezone security insidezone security outsidezone-p…

Linux應用層-5.計算機網絡(菜鳥學習筆記)

計算機網絡的核心是連接與通信,從底層的物理信號到上層的應用服務,各層協議協同工作---------------------------------------------------------------------------------------一.計算機網絡分類(按范圍)1?個人區域網&#xff…