🎉 Notion Files Management v1.4.6-Beta
这是 Notion Files Management 的测试版功能更新。由于本次开发周期内迭代密集(v1.4.1 ~ v1.4.5 在同一天内连续发布),版本号直接从 v1.4.0-Status 跳至 v1.4.6-Beta,以下为合并后的完整变更内容。
✨ 新功能
🎬 全媒体类型下载与原生块上传
- 下载范围从仅
file块扩展至 5 种 Notion 媒体块:file、image、pdf、audio、video。 - 新增页面级资源提取:自动下载页面图标(icon)、封面(cover)及
files属性中的附件。 - 上传时自动检测文件类型并使用 Notion 原生块类型挂载——图片以
image块预览、视频以video块播放、音频以audio块播放、PDF 以pdf块预览,其他文件保持file块不变。 - URL 刷新与页面大小统计同步支持所有媒体块类型。
🔄 自动更新
- 应用启动时后台静默检查版本,结果缓存供设置页和主页使用。
- 设置页新增**「自动更新」按钮**:按优先级依次尝试多线路下载(
version.json配置),带进度条显示,全部失败时提示手动下载。 - 支持两种更新包类型:
installer(安装包,直接启动)和exe(裸可执行文件,通过 bat 脚本延迟替换后自动重启)。 - 主页顶部新增版本更新提醒横幅(液态玻璃风格),检测到新版本时以渐入 + 下滑动画弹出,提供「转到设置更新」一键跳转。
🎨 界面优化
📋 下载 / 上传页面卡片化重构
- 任务列表从三列横排布局重构为全宽纵向卡片堆叠,每个任务一个圆角卡片,进度条从 6px 提升至 8px 全宽。
- 新增状态色彩联动系统:🔵 进行中(主题色)、🟢 完成(绿色)、🔴 失败(红色)、⚪ 等待(灰色),图标 + 进度条 + 百分比三者同色。
- 窗口缩放时卡片等比拉伸,比例始终协调,无内容溢出。
⚙️ 设置页面整合
- 新增统一的**「应用配置」模块**,合并原来分散在各节的保存 / 重启按钮为一键保存 + 独立重启。
- 所有用户反馈(保存成功 / 失败、重启确认、功耗警告)统一为内嵌式
InfoBar,替代系统弹窗(MessageBox),与应用主题风格一致。 - 背景材质选项重命名为「视频或图片」,选择时显示功耗警告提示。
🐛 Bug 修复
📏 页面大小更新结果全部为 0 GB
- 根因:
page_size_update.py仅使用 HEAD 请求获取文件大小,但 Notion(AWS S3)的 HEAD 响应不一定包含Content-Length。 - 修复:引入双策略探测——HEAD 请求 → Range GET(
bytes=0-0)解析Content-Range回退,与download.py逻辑对齐。
🔧 技术变更
Python 后端
notion.py:新增MEDIA_BLOCK_TYPES常量,get_download_url()支持 5 种媒体块;新增get_page_object()、extract_page_level_files()、_extract_hosted_url()、_filename_from_url()方法;refresh_file_url()支持所有媒体块。upload.py:新增_detect_notion_block_type()方法及扩展名映射常量;_attach_to_page_as_file_block()重构为动态块类型挂载。main.py:get_download_list()新增页面级文件提取;get_download_statuses()新增block_type字段。page_size_update.py:_probe_file_size()重写为双策略探测;_extract_file_urls()支持所有媒体块。
C# 前端
App.xaml.cs:新增启动时静默版本检查(fire-and-forget),结果缓存至SettingsPage.CachedVersionInfo。SettingsPage:VersionInfo数据模型重构(适配version.json新格式);新增自动更新下载逻辑(多线路优先级、进度条、installer/exe 双模式);操作区整合为统一「应用配置」模块;保存反馈改为 InfoBar。DownloadPage.xaml/UploadPage.xaml:任务列表重构为全宽卡片布局;新增状态色彩资源及 DataTrigger 联动;上传页移除 15MB 提示。DashboardPage:新增版本更新提醒横幅(液态玻璃风格 + 渐入动画 + 轮询检测 + 导航跳转)。FileSelectItem.cs/NotionBackendService.cs:新增block_type属性及读取逻辑。
版本号
Version: 1.4.0-Status → 1.4.6-BetaAssemblyVersion: 1.4.0.0 → 1.4.6.0
📦 下载
内嵌 Python 3.11,无需单独安装 Python。
💻 系统要求
- Windows 10 (1809+) · x64
- 最低 2 GB RAM
🚀 快速开始
- 在 Notion 的 Notion Integrations 创建 Integration,复制 Token(
ntn_开头)。 - 在 Notion 页面 →
…→ Add connections → 选择你的 Integration。 - 打开应用 → 设置 → 粘贴 Token → 保存 → 开始使用。
⚠️ 已知问题
- 仅支持 Windows x64。
- 程序重启后任务不会持久化(仅内存保存)。
- 暂不支持断点续传。
- 数据源迁移基于标题匹配,同名页面可能导致映射不精确。
- Notion 临时文件 URL 有效期约 1 小时,大批量页面更新时早期获取的 URL 可能过期。
- 裸 exe 自动更新在受保护目录(如
C:\Program Files\)下可能因权限不足失败,建议使用 installer 模式。
🐛 反馈
如果觉得有用,欢迎给项目点个 ⭐ Star! · 赞助支持 ❤️
发布于 2026年2月21日 · 版本:1.4.6-Beta
🎉 Notion Files Management v1.4.6-Beta
This is a beta feature update of Notion Files Management. Due to intensive iteration during this development cycle (v1.4.1 through v1.4.5 were released consecutively within a single day), the version number jumps directly from v1.4.0-Status to v1.4.6-Beta. Below is the consolidated changelog.
✨ New Features
🎬 Full Media Type Downloads & Native Block Uploads
- Download scope expanded from
fileblocks only to all 5 Notion media block types:file,image,pdf,audio,video. - New page-level resource extraction: Automatically downloads page icons, covers, and attachments from
files-type properties. - Uploads now auto-detect file types and mount using Notion's native block types — images as
imageblocks (with preview), videos asvideoblocks (with player), audio asaudioblocks (with player), PDFs aspdfblocks (with preview), and other files remain asfileblocks. - URL refresh and page size statistics now cover all media block types.
🔄 Auto-Update
- Silent background version check on startup; results cached for use by Settings and Dashboard pages.
- New "Auto Update" button in Settings: Attempts multi-route downloads in priority order (configured via
version.json), with progress bar display; falls back to manual download prompt if all routes fail. - Supports two update package types:
installer(setup package, launched directly) andexe(bare executable, replaced via delayed bat script with automatic restart). - New version update banner on Dashboard (liquid glass style) — slides in with fade + translate animation when a new version is detected, with a one-click "Go to Settings" navigation button.
🎨 UI Improvements
📋 Download / Upload Page Card Layout
- Task list refactored from three-column horizontal layout to full-width vertical card stack, with each task in a rounded card and progress bars upgraded from 6px to 8px full-width.
- New status color system: 🔵 In Progress (accent color), 🟢 Completed (green), 🔴 Failed (red), ⚪ Waiting (gray) — icon + progress bar + percentage all synchronized.
- Cards scale proportionally on window resize, maintaining consistent proportions with no content overflow.
⚙️ Settings Page Consolidation
- New unified "App Configuration" module, merging previously scattered save/restart buttons into one-click save + separate restart.
- All user feedback (save success/failure, restart confirmation, power consumption warning) unified as inline
InfoBarcontrols, replacing systemMessageBoxdialogs, consistent with the app theme. - Background material option renamed to "Video or Image" with power consumption warning on selection.
🐛 Bug Fixes
📏 Page Size Update Returns All 0 GB
- Root cause:
page_size_update.pyused only HEAD requests to get file sizes, but Notion (AWS S3) HEAD responses don't always includeContent-Length. - Fix: Introduced dual-strategy probing — HEAD request → Range GET (
bytes=0-0) parsingContent-Rangeas fallback, aligned withdownload.pylogic.
🔧 Technical Changes
Python Backend
notion.py: AddedMEDIA_BLOCK_TYPESconstant;get_download_url()supports 5 media block types; new methodsget_page_object(),extract_page_level_files(),_extract_hosted_url(),_filename_from_url();refresh_file_url()supports all media blocks.upload.py: Added_detect_notion_block_type()with extension mapping constants;_attach_to_page_as_file_block()refactored to dynamic block type mounting.main.py:get_download_list()now includes page-level file extraction;get_download_statuses()includesblock_typefield.page_size_update.py:_probe_file_size()rewritten with dual-strategy probing;_extract_file_urls()supports all media blocks.
C# Frontend
App.xaml.cs: Added silent startup version check (fire-and-forget), caching results toSettingsPage.CachedVersionInfo.SettingsPage:VersionInfomodel refactored for newversion.jsonformat; added auto-update download logic (multi-route priority, progress bar, installer/exe dual mode); operation area consolidated into unified "App Configuration" module; save feedback changed to InfoBar.DownloadPage.xaml/UploadPage.xaml: Task list refactored to full-width card layout; added status color resources and DataTrigger synchronization; removed 15MB notice from upload page.DashboardPage: Added version update banner (liquid glass style + fade-in animation + polling detection + navigation).FileSelectItem.cs/NotionBackendService.cs: Addedblock_typeproperty and read logic.
Version
Version: 1.4.0-Status → 1.4.6-BetaAssemblyVersion: 1.4.0.0 → 1.4.6.0
📦 Download
Built-in Python 3.11, no separate Python installation required.
💻 System Requirements
- Windows 10 (1809+) · x64
- Minimum 2 GB RAM
🚀 Quick Start
- Create an Integration in Notion via Notion Integrations and copy the Token (starts with
ntn_). - In your Notion page →
…→ Add connections → Select your Integration. - Open the application → Settings → Paste the Token → Save → Start using.
⚠️ Known Issues
- Only supports Windows x64.
- Tasks are not persistent after restarting the program (memory-only storage).
- Breakpoint resume is not supported yet.
- Data source migration uses title-based matching; pages with identical titles may cause imprecise mapping.
- Notion temporary file URLs expire after ~1 hour; URLs fetched early in large batch updates may become invalid.
- Bare exe auto-update may fail in protected directories (e.g.,
C:\Program Files\) due to insufficient permissions; installer mode is recommended in such cases.
🐛 Feedback
Submit Issues · Join Discussions
If you find this project helpful, feel free to give it a ⭐ Star! · Sponsor ❤️
Released on February 21, 2026 · Version: 1.4.6-Beta
