Skip to content

Add download new features#17

Closed
mustbeasaltyfish wants to merge 3 commits intomasterfrom
dev_mustbeasaltyfish
Closed

Add download new features#17
mustbeasaltyfish wants to merge 3 commits intomasterfrom
dev_mustbeasaltyfish

Conversation

@mustbeasaltyfish
Copy link
Collaborator

@mustbeasaltyfish mustbeasaltyfish commented Sep 30, 2025

📝 BAKA Course Platform v1.5.3 更新日志

🎉 新增功能

📥 文档批量下载

  • 多选模式:支持同时选择多个文档进行批量下载
  • 下载任务管理器:实时查看所有下载任务的进度和状态
    • 分为"下载中"和"已完成"两个标签页
    • 显示实时下载进度(进度条、百分比、文件大小)
    • 支持单独删除或清空所有已完成任务
  • 无大小限制:移除了50MB的文件下载限制,支持任意大小文件下载

🎨 UI/UX 优化

  • 下载任务弹窗
    • 右下角浮动气泡设计,不遮挡主界面
    • 丝滑的淡入淡出动画效果(300ms)
    • 小圆角设计,视觉更柔和
    • 点击"下载任务"按钮可切换显示/隐藏
  • 按钮中文化
    • "多选" / "取消多选"
    • "全选" / "取消全选"
    • "下载选中"
    • "下载任务"
  • 移除冗余提示:删除批量下载后的弹窗提示

🐛 Bug 修复

作业附件问题

  • ✅ 修复文件大小显示错误(改进formatFileSize函数,支持多种单位)
  • ✅ 修复下载后文件扩展名丢失(自动从URL提取扩展名)
  • ✅ 修复已提交作业显示"0B"(新增文件大小获取API)
  • ✅ 移除作业附件50MB下载限制

🔧 技术改进

  • 添加getHomeworkFileSize API,通过HEAD请求高效获取文件大小
  • 优化文件扩展名处理逻辑,确保下载文件格式正确
  • 改进文件大小格式化函数,支持字节、KB、MB、GB自动转换
  • 批量下载支持进度追踪和任务管理

📦 平台支持

  • macOS ARM64(Apple Silicon)
  • 文件大小:~91MB

安装包位置release/BAKA Course Platform-1.5.2-arm64.dmg

主要改进领域:文档管理、作业系统、用户体验、界面设计

## 📝 BAKA Course Platform v1.5.2 更新日志

### 🎉 新增功能

#### 📥 文档批量下载
- **多选模式**:支持同时选择多个文档进行批量下载
- **下载任务管理器**:实时查看所有下载任务的进度和状态
  - 分为"下载中"和"已完成"两个标签页
  - 显示实时下载进度(进度条、百分比、文件大小)
  - 支持单独删除或清空所有已完成任务
- **无大小限制**:移除了50MB的文件下载限制,支持任意大小文件下载

#### 🎨 UI/UX 优化
- **下载任务弹窗**:
  - 右下角浮动气泡设计,不遮挡主界面
  - 丝滑的淡入淡出动画效果(300ms)
  - 小圆角设计,视觉更柔和
  - 点击"下载任务"按钮可切换显示/隐藏
- **按钮中文化**:
  - "多选" / "取消多选"
  - "全选" / "取消全选"
  - "下载选中"
  - "下载任务"
- **移除冗余提示**:删除批量下载后的弹窗提示

### 🐛 Bug 修复

#### 作业附件问题
- ✅ 修复文件大小显示错误(改进`formatFileSize`函数,支持多种单位)
- ✅ 修复下载后文件扩展名丢失(自动从URL提取扩展名)
- ✅ 修复已提交作业显示"0B"(新增文件大小获取API)
- ✅ 移除作业附件50MB下载限制

### 🔧 技术改进
- 添加`getHomeworkFileSize` API,通过HEAD请求高效获取文件大小
- 优化文件扩展名处理逻辑,确保下载文件格式正确
- 改进文件大小格式化函数,支持字节、KB、MB、GB自动转换
- 批量下载支持进度追踪和任务管理

### 📦 平台支持
- macOS ARM64(Apple Silicon)
- 文件大小:~91MB

---

**安装包位置**:`release/BAKA Course Platform-1.5.2-arm64.dmg`

**主要改进领域**:文档管理、作业系统、用户体验、界面设计
@ram6ert
Copy link
Owner

ram6ert commented Oct 1, 2025

其实之所以限制文件大小是因为怕爆内存。原本的模型是主线程把文件下载到内存后传给前端的,而不是主线程直接下载到磁盘。

@ram6ert
Copy link
Owner

ram6ert commented Oct 1, 2025

等会再看看喵

Copy link
Owner

@ram6ert ram6ert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感觉好像有点让我们的程序趋于复杂了,虽然本来的程序就已经有点臃肿了。
我在想是不是可以删除掉之前所有下载的接口,提供一个统一的下载接口,然后这个接口本来就是支持批量下载的。
类似这样:

ipcMain.invoke('download-attachment', {
type: 'document',
documentId: id
});

然后下载任务管理、进度显示也统一到一个界面。

window.URL.revokeObjectURL(url);
} else if (!result.success) {
alert(`Download failed: ${result.error || "Unknown error"}`);
alert(`下载失败: ${result.error || "未知错误"}`);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

用翻译或者英语吧,其实我们程序是有 i18n 支持的

@ram6ert
Copy link
Owner

ram6ert commented Oct 1, 2025

另外最近发现了一个新的用法,可以帮助 LLM 更好地编程。
就是让 LLM 在项目根目录下创建一个 @docs/ 目录,每次写完代码就往里更新项目结构、实现细节的文档,并且让他在写代码之前都要先读一遍文档,这样的话 LLM 生成的代码风格会比较统一,不会杂糅。

@ram6ert ram6ert closed this Oct 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants