MCPcopy
hub / github.com/peterq/pan-light

github.com/peterq/pan-light @main sqlite

repository ↗ · DeepWiki ↗
1,473 symbols 4,745 edges 226 files 114 documented · 8%
README

pan-light

                     _ _       _     _   
                    | (_)     | |   | |  
 _ __   __ _ _ __   | |_  __ _| |__ | |_ 
| '_ \ / _` | '_ \  | | |/ _` | '_ \| __|
| |_) | (_| | | | | | | | (_| | | | | |_ 
| .__/ \__,_|_| |_| |_|_|\__, |_| |_|\__|
| |                       __/ |          
|_|                      |___/       

pan-light

pan-light 是一款不限速的百度网盘客户端, 基于 golang + Qt5 开发. 本项意义在于探究 golang 在图形界面客户端; web 服务端; 事件调度, websocket, p2p 长连接 等方面的应用和实践. 欢迎广大 golang 开发者参与本项目.

软件官网 | 在线体验 | 技术文档 | 技术交流群: 438604465 | 用户交流群: 222718962

特性

  • 利用golang轻量级协程, 高并发分段下载, 可通过调节并发数达到最佳下载速度; 下载进度状态数据持久化到磁盘, 实现软件重启后可断点续传;
  • 客户端本地实现简单代理, 突破百度防盗链, 将网盘视频喂给qt视频播放组件, 从而在线播放视频
  • 在线体验: 用户无需下载, 通过网页即可在线体验本软件部分功能; 该系统可应用于其他客户端产品的在线体验;
  • 在线体验原理: 闲置的个人pc, 通过 docker 开启若干个'虚拟机', 虚拟机内安装好了本软件以及vnc服务. 用户打开网页, 在服务端的调度下, 网页通过 web rtc 和闲置pc建立p2p连接. 闲置pc将会打通一条用户网页到docker内部'隧道'. 网页连接虚拟机vnc服务进行远程控制

关于

本项目是作者第一个完整的go语言实战项目. 希望对于一些找不到好的实战项目的go语言初学者能起到一点帮助, 欢迎你们阅读项目技术文档, 源码, 并参与到项目开发. 但也正由于作者也是初学者且项目工作量挺大,个人精力有限等一些原因, 在代码严谨方面还有待后续跟进. 比如,你会看到为了网络数据的传递方便, 项目用了大量的map[string]interface{}类型, 并且没有做严格类型判断; 有些低频竞争数据的锁也省掉了, 等等; 欢迎大家一起来完善.

软件截图

截图1

截图2

截图3

截图4

其他

  • 本项目花费了作者大量的时间和精力, 如果你觉得本项目对你有帮助, 帮忙点个star.

  • 最近突然多了很多非技术用户. 所以有必要做一下说明:

  • 这个项目还是一个开发中的项目, 发布预览版是因为完成了主要功能, 尚缺少很多客户端需要的人性化功能, 也有很多bug. 所以非技术最好选择其他更成熟的替代产品
  • 有用户抱怨, vip通道用不了: 因为这2天突然多了很多普通用户,服务端只配了一个vip账号,操作频率太高,已被百度被封号。 这个项目我只是想做一波技术上的实验, 是作为学习golang语言的练手项目. 没想拿来运营, 可惜了我上个月才续交的超级会员年费. 这个项目所有的源码都是开源的, 如果你想自己用可以自己部署. 但你的所有所作所为均与作者无关, 作者不分享你的盈利, 也不承担责任. 但项目是我写的, 我还是有义务奉劝一句: 做一个遵纪守法的良民, 共建社会主义和谐社会.
  • 对于坚持想使用本项目的普通用户, 你可以在设置里把并发数调到256也能达到6-8M的下载速度, 但是更建议支持正版, 开通会员.

  • 有很多fork, 但是还没有pr, 欢迎pr!!! 作者最近很忙, 需要借助社区的力量推动本项目.

Extension points exported contracts — how you extend this code

Job (FuncType)
@author qiang.ou Job 延时任务回调函数
server/timewheel/timewheel.go
AppError (Interface)
(no doc) [1 implementers]
server/artisan/errors.go
EventHandler (Interface)
(no doc) [1 implementers]
server/realtime/server.go
LinkResolver (FuncType)
(no doc)
pc/downloader/manager.go
RpcHandler (Interface)
(no doc)
server/realtime/server.go
EventHandleFunc (FuncType)
(no doc)
server/realtime/server.go
RpcHandleFunc (FuncType)
(no doc)
server/realtime/server.go
DeliveryTaskFunc (FuncType)
(no doc)
server/realtime/server.go

Core symbols most depended-on inside this repo

Join
called by 544
server/realtime/room.go
ClassName
called by 167
qt/tool-chain/binding/parser/enum.go
addStandard
called by 137
demo/demo-online-front/src/lib/vnc/core/input/domkeytable.js
CleanValue
called by 116
qt/tool-chain/binding/parser/helper.go
RunCmd
called by 105
qt/tool-chain/utils/utils.go
Error
called by 80
server/artisan/errors.go
CleanName
called by 78
qt/tool-chain/binding/parser/helper.go
UseJs
called by 68
qt/tool-chain/binding/parser/helper.go

Shape

Function 736
Method 571
Struct 95
Class 42
TypeAlias 12
FuncType 11
Interface 6

Languages

Go71%
TypeScript29%

Modules by API surface

demo/demo-online-front/src/lib/vnc/core/rfb.js80 symbols
pc/storage/types.pb.go57 symbols
qt/tool-chain/cmd/moc/test/qtmoc_test.go41 symbols
demo/demo-online-front/src/lib/vnc/core/display.js36 symbols
demo/demo-online-front/src/realtime/realtime.js33 symbols
demo/demo-online-front/src/lib/vnc/core/websock.js33 symbols
qt/tool-chain/utils/env.go31 symbols
server/realtime/server.go24 symbols
qt/tool-chain/binding/parser/helper.go24 symbols
demo/demo-online-front/src/app.js24 symbols
qt/tool-chain/cmd/moc/test/sub/subb.go23 symbols
pc/gui/qml/js/util.js23 symbols

Dependencies from manifests, versioned

github.com/ThomasRooney/gexpectv0.0.0-2016123117012 · 1×
github.com/dgrijalva/jwt-gov3.2.0+incompatible · 1×
github.com/go-redis/cachev6.4.0+incompatible · 1×
github.com/go-redis/redisv6.15.6+incompatible · 1×
github.com/golang/freetypev0.0.0-2017060900350 · 1×
github.com/gopherjs/gopherjsv0.0.0-2019043016542 · 1×
github.com/inconshreveable/mousetrapv1.0.0 · 1×
github.com/iris-contrib/middleware/jwtv0.0.0-2019102817215 · 1×
github.com/kballard/go-shellquotev0.0.0-2018042803000 · 1×

Datastores touched

(mongodb)Database · 1 repos
adminDatabase · 1 repos

For agents

$ claude mcp add pan-light \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact