Skip to content

Commit

Permalink
Merge pull request #69 from Zeal-L/develop
Browse files Browse the repository at this point in the history
修复内存泄漏bug;重构下载逻辑
  • Loading branch information
Zeal-L authored Aug 25, 2023
2 parents d1c75d5 + 3580532 commit eaa85f1
Show file tree
Hide file tree
Showing 23 changed files with 635 additions and 507 deletions.
8 changes: 6 additions & 2 deletions .github/workflows/pylint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on: [push]

jobs:
build:
runs-on: windows-latest
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11"]
Expand All @@ -14,10 +14,14 @@ jobs:
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
sh setup.sh
- name: Analysing the code with pylint
id: pylint
run: |
pipenv run pylint $(git ls-files '*.py' | grep -v "PySide_src")
pipenv run pylint $(git ls-files '*.py' | grep -v "PySide_src")
continue-on-error: true
9 changes: 5 additions & 4 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ clear-cache-post-run=no
# In error mode, messages with a category besides ERROR or FATAL are
# suppressed, and no reports are done by default. Error mode is compatible with
# disabling specific errors.
errors-only=yes
#errors-only=

# Always return a 0 (non-error) status code, even if lint errors are found.
# This is primarily useful in continuous integration scripts.
Expand Down Expand Up @@ -69,7 +69,6 @@ ignored-modules=
# pygtk.require().
init-hook="from pylint.config import find_pylintrc;import os, sys; sys.path.append(os.path.dirname(find_pylintrc()))"


# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
# number of processors available to use, and will cap the count on Windows to
# avoid hangs.
Expand Down Expand Up @@ -338,7 +337,7 @@ indent-after-paren=4
indent-string=' '

# Maximum number of characters on a single line.
max-line-length=100
max-line-length=120

# Maximum number of lines in a module.
max-module-lines=1000
Expand Down Expand Up @@ -429,7 +428,9 @@ disable=raw-checker-failed,
suppressed-message,
useless-suppression,
deprecated-pragma,
use-symbolic-message-instead
use-symbolic-message-instead,
logging-fstring-interpolation,
invalid-name

# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
Expand Down
18 changes: 9 additions & 9 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

87 changes: 23 additions & 64 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@

**因此 将将将~ 🎉 一个好用的哔哩哔哩漫画下载器就此诞生!**

## :sparkles: 主要功能 / 特性
## ✨ 主要功能 / 特性
- **黑科技下载未解锁章节!**
- **已打包成单个可执行文件,双击即用!**
- **易操作的图形界面!~~(不用再费劲的部署环境跑命令行)~~**
- **无需漫画ID,可直接关键词搜索漫画!并附带搜索词高亮!**
- **支持B站和BiliPlus两种解析方式!**
- **可配置的多线程下载,速度拉满!**
- **实现了应对网络波动等情况的异常重试,以及应用了指数级退让来避免在短时间大量重试被拉黑名单**
- **丰富的漫画详情信息,本地漫画管理功能,一键检查更新!**
Expand Down Expand Up @@ -73,25 +73,30 @@
- **特别提示: 毕竟是要提供 Cookie 给第三方网站托管,因此可能会有潜在的安全风险。敏感人群请不要使用自己主账号的 Cookie**
- `BiliPlus``Cookie` 获取方法跟上述一致,在 [ComicWebReader](https://www.biliplus.com/manga/) 登入后在开发者工具中找到 `access_key` 粘贴到程序设置选项中的 `BiliPlus Cookie` 即可

- **兼容性:目前只在64位的Winodw 10上测试通过,不过其他>=windows 10的版本应该都能运行,发现问题的欢迎提Issues**
- **兼容性:目前只在64位的 Winodw 10 上测试通过,不过 windows 11 应该也能运行,发现问题的欢迎提Issues**
- **搜索 / 选择章节 / 下载 的功能介绍我想已经不言而喻了,这就是图形化界面的好处!**
- **值得注意的是:本软件不支持断点续传和下载任务缓存的功能 ~~(毕竟一章漫画太小了,好像也没什么必要,断了不如重下)~~,所以请确保不要在下载中途关闭!**
- 如果程序意外中断,可以选择把下了一半的文件都删掉(一般在目标漫画文件夹的根目录下),重新下载
- **程序缓存和日志历史文件存在 `C:\Users\AppData\Roaming\BiliBili-Manga-Downloader\` 目录下,可以通过"清空用户数据"功能一键删除**
- **如果想用"本地库存"功能,需要注意的是:下载好的漫画章节名以及保存的 `元数据.json` 都不能更改,否则将会无法正确读取漫画数据**
- **🔥 下面我要隆重的推荐一款搭配本软件使用的漫画浏览器 ~~(可以说就是为了这点儿醋 我才包的这顿饺子)~~**
- <div align=center><img src="https://user-images.githubusercontent.com/72005386/222974497-18b568e7-5b2e-416f-8d14-22ec68323570.png" width=100%></div>
- **NeeView** 是一款 Windows 下开源的图片浏览器,其特色是可以像翻书一样同时浏览两张照片,还支持压缩包看图、鼠标手势、触摸操作、多线程和超前查看、支持 PDF / 视频。 原生支持中文
- 下载地址: [Microsoft Store](https://www.microsoft.com/en-us/p/neeview/9p24z53hc1jr)
- 上面是官方介绍,要我说优势就下面几点
- 自动切页,双页浏览
- 左右或者右左的阅读顺序一键切换
- 鼠标左键长摁放大,自由移动放大聚焦点,滚轮调整放大倍数, 这点超爽的好嘛,吊打所有网页浏览体验 ~~(尤其是某些地方需要放大好好品鉴的时候,嗯嗯,我说的就是背景人物!)~~
- 优秀的资源浏览器以及简明的操作逻辑和界面
- 总之是电脑端看漫画的不二之选~
- 唯一的缺点好像就是对条漫不太支持,也有可能是我没找到选项,有知道的小伙伴可以联系我,谢啦~


## 💕 友情推荐
**🔥 下面我要隆重的推荐一款搭配本软件使用的本地漫画浏览器 ~~(可以说就是为了这点儿醋 我才包的这顿饺子)~~**

<div align=center><img src="https://user-images.githubusercontent.com/72005386/222974497-18b568e7-5b2e-416f-8d14-22ec68323570.png" width=100%></div>

- **NeeView** 是一款 Windows 下开源的图片浏览器,其特色是可以像翻书一样同时浏览两张照片,还支持压缩包看图、鼠标手势、触摸操作、多线程和超前查看、支持 PDF / 视频。 原生支持中文
- 下载地址: [**Microsoft Store**](https://www.microsoft.com/en-us/p/neeview/9p24z53hc1jr)
- 上面是官方介绍,要我说优势就下面几点
- 自动切页,双页浏览
- 左右或者右左的阅读顺序一键切换
- 鼠标左键长摁放大,自由移动放大聚焦点,滚轮调整放大倍数, 这点超爽的好嘛,吊打所有网页浏览体验 ~~(尤其是某些地方需要放大好好品鉴的时候,嗯嗯,我说的就是背景人物!)~~
- 优秀的资源浏览器以及简明的操作逻辑和界面
- 总之是电脑端看漫画的不二之选~
- 唯一的缺点好像就是对条漫不太支持,也有可能是我没找到选项,有知道的小伙伴可以联系我,谢啦~

## 💡 TODO List ~~(在可见的未来...)~~
- 更多开发进度详情请看 [**项目清单表**](https://github.com/users/Zeal-L/projects/2/views/1)
- **PS: 也欢迎小伙伴们多多的在Issues里提意见,不管是Bug还是操作逻辑,界面优化等等作者统统笑纳~**
- 🟦 缓存更多资源,减少网络请求
- 🟦 添加一个启动程序加载进度条
Expand Down Expand Up @@ -137,62 +142,16 @@

## ⚰️ 更新记录

![Alt](https://repobeats.axiom.co/api/embed/cc62fded834eb06fc9b30cf7ffd54eeb53d700fc.svg "Repobeats analytics image")

### v1.3.0 - *2022-08-11*
- 新增功能:
- 二维码登入
- 利用 [biliplus](https://www.biliplus.com/) 提供的 [ComicWebReader](https://www.biliplus.com/manga/) 在线漫画平台的api来尝试获取未解锁的漫画章节
- 优化配置:
- 移除保存文件夹名里的漫画ID信息;元数据现在默认保存,并且以此来初始化我的库存
- 老用户需要重新下载一章漫画,然后把以前下载好的移动到新文件夹中
- 修复bug:
- 修复个别`png`保存为`jpg`的情况
- 修复`BiliPlus Cookie`检测可能出现的隐藏`bug` ([#61][i61])
- 修复`BiliPlus`可以看未解锁的漫画章节,软件无法下载 ([#52][i52])

[i52]: https://github.com/Zeal-L/BiliBili-Manga-Downloader/issues/52
[i61]: https://github.com/Zeal-L/BiliBili-Manga-Downloader/issues/61

### v1.2.0 - *2022-06-20*
- 新增功能: 现在可以一键保存漫画的元数据了,包括漫画封面,漫画信息, 等等 (json格式) ([#39][i39])
- 重大优化: 对于 `文件夹-图片形式``7z压缩包` 的保存方式取消了对漫画原图像的二次压缩,现在图像保存的质量和原图一致。~~(虽然用肉眼看不出来)~~ 由于 `PDF` 保存格式的特殊性,仍然会进行二次压缩和信道转换

[i39]: https://github.com/Zeal-L/BiliBili-Manga-Downloader/issues/39


### v1.1.0 - *2022-05-19*
- 新增功能: 添加了多种主题选择
- 新增功能: 一键检查软件更新
- 修复bug: 修复了一个可能会导致启动失败的保存路径设置;现在如果保存的路径意外失效会初始化为默认路径(cwd)

### v1.0.4 - *2022-04-24*
- 优化使用体验: 我的库存列表现在按照漫画名排序
- 优化项目结构: 重新分类了原始UI文件和资源文件,并更新了打包脚本
- 更新依赖项:更新了过去一个月积攒的 pyside6,pillow 等 python 库的新版本

### v1.0.3 - *2022-03-12*
- 修复bug: 使用7z保存时可能会因为文件名特殊字符引起报错;添加针对“.”的正则过滤
- 优化配置: 全局网络请求的 timeout 以及 max retry 值增大一倍

### v1.0.2 - *2022-03-11*
- 修复bug: 总进度条数值错误更新为0
- 优化设置选项: 以防在网络不好的情况下高线程数导致的频繁重试警告,最大线程数现在设为32

### v1.0.1 - *2022-03-9*
- 优化UI视觉: 因为网络错误跳过任务后,更新总进度条的进度,速度和剩余时间信息
- 更新关于界面: 添加了作者的联系方式
![Repobeats analytics image](https://repobeats.axiom.co/api/embed/cc62fded834eb06fc9b30cf7ffd54eeb53d700fc.svg "Repobeats analytics image")

### v1.0.0 - *2022-03-6*
- 第一个正式版本
- 所有基本功能都测试可用
[**详细日志**](UPDATE.md)

## 🍻 联系方式
欢迎进群讨论程序,漫画,资源分享, 提交问题等等
- Q群号:244029317

## 🙈 PS
- **做项目不易,求星星!求赞助!如果本项目对你有帮助,请作者喝杯☕吧~**
**做项目不易,求星星!求赞助!如果本项目对你有帮助,请作者喝杯☕吧~**

<img src="https://user-images.githubusercontent.com/72005386/223096480-8d57ceef-0b33-4653-86bf-55e6094fcb9b.jpg" width=20%> <img src="https://user-images.githubusercontent.com/72005386/223096520-e5d95ac8-044d-4644-8500-3770e5ad81f8.jpg" width=18.5%>

Expand Down
60 changes: 60 additions & 0 deletions UPDATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
## ⚰️ 更新记录
### **[v1.3.1](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.3.1)** - *2022-08-25*
- 修复bug:
- 修复了一个在保存格式为 `pdf` 时导致内存泄漏的bug ([#68][i68])
- 优化:
- 优化下载速度和剩余时间的计算与获取, 现在更加的平稳和准确了
- 重构下载任务相关的逻辑, 减少耦合性

[i68]: https://github.com/Zeal-L/BiliBili-Manga-Downloader/issues/68

### **[v1.3.0](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.3.0)** - *2022-08-11*
- 新增功能:
- 二维码登入
- 利用 [Biliplus](https://www.biliplus.com/) 提供的 [ComicWebReader](https://www.biliplus.com/manga/) 在线漫画平台的api来尝试获取未解锁的漫画章节
- 优化配置:
- 移除保存文件夹名里的漫画ID信息;元数据现在默认保存,并且以此来初始化我的库存
- 老用户需要重新下载一章漫画,然后把以前下载好的移动到新文件夹中
- 修复bug:
- 修复个别`png`保存为`jpg`的情况
- 修复`BiliPlus Cookie`检测可能出现的隐藏`bug` ([#61][i61])
- 修复`BiliPlus`可以看未解锁的漫画章节,软件无法下载 ([#52][i52])

[i52]: https://github.com/Zeal-L/BiliBili-Manga-Downloader/issues/52
[i61]: https://github.com/Zeal-L/BiliBili-Manga-Downloader/issues/61

### **[v1.2.0-alpha](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.2.0-alpha)** - *2022-07-4*
- 非生产准备就绪的实验性版本
- 测试 `Biliplus Api`

### **[v1.2.0](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.2.0)** - *2022-06-20*
- 新增功能: 现在可以一键保存漫画的元数据了,包括漫画封面,漫画信息, 等等 (json格式) ([#39][i39])
- 重大优化: 对于 `文件夹-图片形式``7z压缩包` 的保存方式取消了对漫画原图像的二次压缩,现在图像保存的质量和原图一致。~~(虽然用肉眼看不出来)~~ 由于 `PDF` 保存格式的特殊性,仍然会进行二次压缩和信道转换

[i39]: https://github.com/Zeal-L/BiliBili-Manga-Downloader/issues/39

### **[v1.1.0](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.1.0)** - *2022-05-19*
- 新增功能: 添加了多种主题选择
- 新增功能: 一键检查软件更新
- 修复bug: 修复了一个可能会导致启动失败的保存路径设置;现在如果保存的路径意外失效会初始化为默认路径(cwd)

### **[v1.0.4](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.0.4)** - *2022-04-24*
- 优化使用体验: 我的库存列表现在按照漫画名排序
- 优化项目结构: 重新分类了原始UI文件和资源文件,并更新了打包脚本
- 更新依赖项:更新了过去一个月积攒的 pyside6,pillow 等 python 库的新版本

### **[v1.0.3](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.0.3)** - *2022-03-12*
- 修复bug: 使用7z保存时可能会因为文件名特殊字符引起报错;添加针对“.”的正则过滤
- 优化配置: 全局网络请求的 timeout 以及 max retry 值增大一倍

### **[v1.0.2](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.0.2)** - *2022-03-11*
- 修复bug: 总进度条数值错误更新为0
- 优化设置选项: 以防在网络不好的情况下高线程数导致的频繁重试警告,最大线程数现在设为32

### **[v1.0.1](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.0.1)** - *2022-03-9*
- 优化UI视觉: 因为网络错误跳过任务后,更新总进度条的进度,速度和剩余时间信息
- 更新关于界面: 添加了作者的联系方式

### **[v1.0.0](https://github.com/Zeal-L/BiliBili-Manga-Downloader/releases/tag/v1.0.0)** - *2022-03-6*
- 第一个正式版本
- 所有基本功能都测试可用
4 changes: 4 additions & 0 deletions app.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
"""
这是一个哔哩哔哩漫画下载器的应用程序,它提供了一个GUI界面,可以让用户下载漫画。这个文件是程序的入口文件,用于启动程序。
"""

from sys import argv, exit
from ctypes import windll

Expand Down
Loading

0 comments on commit eaa85f1

Please sign in to comment.