Gemini to Notion Exporter

Gemini 导出:智能图片归位 (支持 PicList/PicGo)+隐私开关+单个对话导出

当前为 2025-11-25 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
wyih
评分
0 0 0
版本
13.0
创建于
2025-11-23
更新于
2025-11-25
大小
25.6 KB
许可证
MIT
适用于

一键将 Gemini 对话导出到 Notion Database。支持 markdown、代码块高亮、表格、图片上传到 PicList(解决 Notion 图片链接失效问题),并能精准将用户上传的图片还原到对话位置。

🚀 Gemini to Notion Exporter

这是目前功能最完善的 Google Gemini 对话导出脚本。它不仅能将对话文本导出到 Notion,还完美解决了图片转存图片位置错乱的两大痛点。(但用户上传的文件无法像图片一样转存)

✨ 核心功能

  1. 📸 PicList/PicGo 无缝集成
    • 脚本会自动拦截 Gemini 中的图片(包括 AI 生成图和用户上传图)。
    • 自动调用本地开启的 PicList/PicGo 服务将图片上传到你配置的图床。
    • 解决痛点:直接复制到 Notion 的图片链接通常是临时的(Google 链接),过段时间会失效。本脚本通过转存图床,确保 Notion 里的图片永久有效。
  2. 🧩 用户图片智能归位
    • 独家功能:很多脚本在导出时,会将用户上传的图片一股脑堆在文末或丢失。
    • 本脚本通过 DOM 分析,能精准地将用户上传的参考图放回对应的 User Query(提问)气泡中,还原真实的对话上下文。
  3. 📝 完美排版支持
    • 支持 Markdown 格式(粗体、斜体、链接)。
    • 支持 代码块(自动检测编程语言,映射到 Notion 支持的语言格式)。
    • 支持 表格(Table)导出。
    • 支持 多级标题列表
  4. ⚡ 批量写入优化
    • 自动处理 Notion API 的 Block 数量限制(每批 100 个),即使是超长对话也能完整导出,不会报错。

🛠️ 准备工作 (必读)

在安装脚本前,请确保你已经准备好以下环境:

1. 配置 Notion

  1. 创建一个新的 Notion Database(数据库),并确保它包含以下 3 个属性(列名必须一致)
    • Name (类型: Title/标题) —— 用于存放对话标题
    • Date (类型: Date/日期) —— 用于记录导出时间 (必须有,否则会报错)
    • URL (类型: URL) —— 用于存放原始对话链接
  2. Notion Integrations 创建一个 Integration,获取 Internal Integration Secret (以 ntn_ 开头)。
  3. 在你的 Database 页面右上角点击 ... -> Connect to -> 选择你刚才创建的 Integration。
  4. 获取 Database ID(在浏览器地址栏 URL 中,?v= 之前的那串 32 位字符)。

2. 配置 PicList (或 PicGo)

为了实现图片转存,你需要安装 PicList (推荐) 或 PicGo。

  1. 打开 PicList 设置 -> 设置 Server。
  2. 开启 Server,并确保端口设置为 36677 (脚本默认连接此端口)。
  3. 确保 PicList 已经配置好了你喜欢的图床(如 Github, S3, Imgur, 阿里云 OSS 等)。
  4. 注意:脚本会以 127.0.0.1:36677 进行通信,请确保没有被防火墙拦截。

📖 使用指南

  1. 安装脚本:点击安装本脚本。
  2. 刷新页面:打开 Google Gemini 页面。
  3. 初次配置
    • 脚本启动时会检测 PicList 心跳。如果连接成功,控制台会显示 ✅ PicList 心跳正常
    • 页面右下角会出现 "📥 Save to Notion" 按钮。
    • 点击按钮,首次运行会提示输入 Notion SecretDatabase ID。输入后会自动保存到本地。
  4. 开始导出
    • 点击按钮后,脚本会变为 🕵️ Analyzing...,开始解析页面并上传图片。
    • 图片上传完成后,状态变为 💾 Creating Page...,开始写入 Notion。
    • 最后显示 ✅ Saved! 即表示完成。

❓ 常见问题 (FAQ)

Q: 点击按钮后提示 "Notion Database 缺少 'Date' 列"? A: 请回到你的 Notion 数据库,添加一个名为 Date 的列,类型选择 Date。这是脚本记录导出时间的依据。

Q: 图片上传失败,提示连接不上 PicList? A: 请检查:

  1. PicList 软件是否已打开?
  2. PicList 设置中 Server 是否已开启?
  3. 端口是否是 36677
  4. 如果是 macOS,可能需要检查网络权限。

Q: 我不想用 PicList,只想导出纯文本行吗? A: 目前版本强依赖 PicList 处理图片。如果未检测到 PicList,图片部分可能会显示为红色错误提示,但文本部分仍会尝试导出。


📝 更新日志

v11.6

  • 新增:PicList 本地服务对接,实现图片永久化存储。
  • 新增:DOM 智能解析,修复用户上传图片位置错乱的问题。
  • 优化:改进了代码块语言检测逻辑。
  • 优化:增加了 Notion 分批写入逻辑,支持超长对话导出。

v11.9 🚨 核心修复 (Critical Fixes)

  1. 修复 CSP 拦截导致的图片上传失败
    • 问题:由于 Google 更新了安全策略(CSP),原脚本使用 fetch('blob:...') 获取图片数据会被浏览器拦截(报错 Refused to connect)。
    • 修复:改为使用 HTML5 Canvas 绘图提取 方案。脚本现在将页面上已显示的图片绘制到内存画布中,再导出为二进制数据。这种方式完全绕过了网络请求层面的 CSP 限制,完美复活图片导出功能。
  2. 修复 PDF/二进制文件上传损坏
    • 问题:原脚本使用手动拼接字符串的方式构造 multipart/form-data 请求体,导致 PDF 等非文本文件的二进制数据在传输中损坏,PicList 报错 Error processing formData
    • 修复:重构上传模块,改用浏览器原生的标准 FormData API。确保所有文件类型(PDF、Zip、图片)的二进制流都能被正确封装和发送。
  3. PDF Blob 优雅降级
    • 问题:对于本地预览状态的 PDF(blob: 链接),既无法用 Canvas 提取(不是图片),也无法用 Fetch 下载(CSP 限制)。
    • 修复:增加了智能判断逻辑。如果遇到无法提取的本地文件 Blob,脚本不再尝试强制下载导致报错,而是自动转换为一条灰色文本提示(如 📄 [本地文件未上传] ...),保证脚本不会卡死,能继续处理后续内容。

v11.10 自动补全后缀:针对无后缀的文件链接,根据 MIME 类型自动补全扩展名(支持 PDF, Office, HTML, 代码文件等)。

v12.0

  • 新增隐私标记功能
    • 支持对单条对话进行“隐私标记”(点击 👁️/🚫 切换)。
    • 被标记的消息(包括其中的文字、图片、PDF 等附件)将直接跳过,不上传至 PicList/Notion,保护敏感数据。
  • 交互优化
    • 隐私开关移至消息气泡的右下角,悬停显示,不再遮挡右上角的原有操作按钮。
    • 同时支持标记 用户提问 (User)Gemini 回复 (Model)v13.0 ✨ 单条导出 (Single Export):每条对话旁新增 📤 按钮。点击 User 消息即可自动将其与 AI 的回复组合(除非该回复已被隐私标记)导出,无需保存整页。点击 Gemini 回复 (Model)仅导出回复,不包含用户信息。