Giter Site home page Giter Site logo

peterq / pan-light Goto Github PK

View Code? Open in Web Editor NEW
12.1K 286.0 2.5K 25.6 MB

百度网盘不限速客户端, golang + qt5, 跨平台图形界面

Home Page: https://pan-light.peterq.cn

License: GNU Lesser General Public License v3.0

Go 76.45% QMake 0.09% QML 16.32% JavaScript 2.41% Shell 1.21% Dockerfile 1.89% Ruby 1.01% Batchfile 0.58% CMake 0.04%
golang qt5 qml baiduyun

pan-light's Introduction

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.

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

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

pan-light's People

Contributors

kataras avatar peterq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pan-light's Issues

建议增加cookie登录功能

每次用新帐号都需要用百度APP或者网页短信/邮箱验证,对于小号特别多但几乎都是买来当仓库号的人来说很不方便,希望能增加这种功能,谢谢!

out of memory

$ go build pan-light-pc.go
github.com/peterq/pan-light/qt/bindings/widgets
fatal error: runtime: out of memory

runtime stack:
runtime.throw(0xe5de56, 0x16)
/usr/local/go/src/runtime/panic.go:617 +0x72
runtime.sysMap(0xc0f4000000, 0x4000000, 0x16c9178)
/usr/local/go/src/runtime/mem_linux.go:170 +0xc7
runtime.(*mheap).sysAlloc(0x16a17c0, 0x2000, 0x16a17d0, 0x1)
/usr/local/go/src/runtime/malloc.go:633 +0x1cd

ubuntu18.04 + 4G 内存,出现out of memory,大佬有什么办法降低内存占用率吗?
PS:不想增加内存条

mac 平台线程太多或者文件太小会崩溃

mac开到200个线程左右下载文件会崩溃,现在线程180使用正常,下载速度3m左右,👍 有时候(可能部分文件问题)会显示获取文件信息失败 403
image
下载小文件会崩溃,可能是不是线程开的多,不够下载的,这个不知道什么情况

可否分享一下Golang的学习历程

Hi maintainer,
我也想学习golang, 能不能讲述下您的学习历程, 让晚辈少走弯路.
也希望有一天能为此项目贡献commit.

Best Regards,
--Laplace

Mac版客户端交互体验比较差

Mac版应该不是原生开发的吧,移植的?
Mac版目前无法最小化,没有图标,模块切换比较卡,探索里滚动比较卡,探索里的最热模块无法滚动,下载任务中的已下载容量显示不准确等等小问题还望后期更新解决一下。

这个软件怎么打开?

我下载下来以后打不开啊,安装了go运行环境还是打不开,想问下是怎么打开的?

拖动闪跳

以正常或快速的速度来拖动的时候,程序的界面会闪跳。
以慢速度来拖动不会出现这种问题。

建议增加排序功能

速度象飞一样, 非常好用. 软件本身也非常轻快.
建议增加排序功能, 我的网盘里面文件太多太多了,找起来费劲哈

编译出错

golang 1.12.6
macOS 10.14.5

cannot find module providing package github.com/peterq/pan-light/pc/downloader/internal

mac登录报错

runtime error: invalid memory address or nil pointer dereference

任务列表只有第一个任务可以下载,其他添加时都403错误

系统win7.
试了几天, 发现: 如果同时添加多个任务(无论: 同时下载任务数=1 或 2), 第一个任务会正常下载, 其他任务在添加的瞬间都显示: 获取文件信息错误: 访问链接错误, http 状态码403
删掉错误的任务, 重新添加, 或重启软件, 都一样.
总之, 添加任务时如果任务列表为空才能成功, 也就是说, 下载完一个再添加另一个才行

无法下载文件

每次下载的时候都会报qml:done这个问题

ERROR: No native FileDialog implementation available.
Qt Labs Platform requires Qt Widgets on this setup.
Add 'QT += widgets' to .pro and create QApplication in main().

qml: down

无法通过VIP通道进行下载

报错:获取下载链接错误:调用vip链接接口错误:api error(-1):vip账号转存文件错误:急速上传到vip账号失败:pan api error code -10.
普通下载通道没问题。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.