Poe to Notion Exporter (with PicList)

导出 poe.com 聊天到 Notion,支持图片上传(PicList)+隐私开关+单条导出

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

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

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

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

作者
wyih
日安装量
0
总安装量
0
评分
0 0 0
版本
0.1
创建于
2025-12-11
更新于
2025-12-11
大小
39.0 KB
许可证
MIT
适用于

📌 脚本简介

Poe to Notion Exporter (with PicList)
一个把 poe.com 聊天记录一键导出到 Notion 数据库 的油猴脚本,支持:

  • 整个对话一键导出
  • 单条消息 + 紧随其后的回复导出
  • 为每条消息单独控制「是否导出」(隐私开关)
  • 图片自动上传到本地 PicList,转成可长期访问的外链
  • 尽量保留 Poe 聊天中的格式(标题、列表、代码块、公式、表格等)

适合做:

  • AI 对话知识库归档
  • Prompt & 回答收藏
  • 代码 / 公式 / 表格聊天内容备份到 Notion

✨ 功能特点

  • 右下角一键导出按钮
    页面右下角会出现一个按钮:

    • 📥 保存到 Notion(中文环境)
    • 📥 Save to Notion(英文环境)
      点击后会把当前聊天页面中所有消息按顺序导出到 Notion。
  • 每条消息的悬浮工具条
    鼠标移动到每个聊天气泡上方,会出现一个小工具条:

    • 👁️ / 🚫:隐私开关,控制该条消息是否导出
    • 📤:仅导出这条消息(以及紧随其后的对方回复)
  • 隐私控制(按条屏蔽)

    • 默认:所有消息都会导出
    • 如果你点击某条消息上的 🚫,该条消息正文不会导出,会在 Notion 中用一条 callout 替代,例如:
    • 🚫 此 User 内容已标记为隐私,未导出。
    • 🚫 This Assistant message is marked as private and not exported.
  • 单条导出 + 自动带下一条
    点击某条消息上的 📤,脚本会:

    1. 导出这条气泡
    2. 如果下一条是对方的回复,也一起导出
      很适合「一个提问 + 一个回答」的快速收藏场景。
  • 图片导出(PicList 支持)

    • 会扫描:
    • 消息内容里的图片(如 GPT-Image、Seedream 生成的图)
    • 用户上传的附件图片(Poe 底部 attachment 区)
    • 脚本会:
    • 把图片二进制读取出来
    • POST 给本地 PicList 服务
    • 得到 PicList 返回的图床 URL
    • 把这个 URL 写入 Notion 的 image block
    • 如果 PicList 没有运行 / 上传失败,会在 Notion 中标记一条失败提示,不至于中断整个导出。
  • 富文本支持(尽量匹配原样)

    • 段落 / 标题(H1~H3)
    • 无序 / 有序列表
    • 引用块(blockquote)
    • 代码块(自动识别语言,映射到 Notion 支持的语言)
    • 行内代码(code
    • LaTeX 公式(行内 + 块级) → Notion equation
    • 表格(<table> → Notion table)
    • 文件链接(检测附件链接,作为 file block 导出)
  • 多语言 UI
    简单根据浏览器语言决定显示中文 / 英文提示(navigator.languagezh 开头则显示中文)。


🔧 依赖 & 前置条件

  1. 油猴 / 脚本管理器

    • Tampermonkey / Violentmonkey / Userscripts 等均可
    • 浏览器支持:Chrome / Edge / Firefox 等现代浏览器
  2. Notion

    • 需要一个 Notion 账号
    • 在 Notion 中创建一个 database 用来存放聊天记录
    • 创建一个 Notion Integration,并把它添加到该 database
  3. PicList(可选,但推荐)

    • 一个本地运行的图床客户端
    • 此脚本默认使用本地服务地址:http://127.0.0.1:36677
    • 在脚本加载后,会自动发起 /heartbeat 检测,如果没开只会影响「图片上传」,文本导出不受影响
    • 可以在 GitHub 搜索 PicList 获取安装方式

📥 安装 & 配置步骤

1. 安装脚本

  1. 安装 Tampermonkey / Violentmonkey 等脚本管理器
  2. 在 Greasy Fork 打开本脚本页面,点击「安装」
  3. 确认脚本匹配地址为:https://poe.com/*

2. 配置 Notion Token 和 Database ID

  1. 打开任意 poe.com 聊天页面
  2. 点击浏览器工具栏上的脚本菜单(Tampermonkey 图标)
  3. 找到本脚本的菜单项:
    • ⚙️ 设置 Notion Token/DB(中文)
    • ⚙️ Config Notion Token/DB(英文)
  4. 依次输入:
    • Notion Integration Secret(形如 ntn_xxx
    • Notion Database ID(database 的 ID)

配置会保存在脚本管理器的本地存储中(GM_setValue),之后不用每次再填。


🧱 Notion 端 Database 配置建议

建议创建一个简单的数据库,用来收集所有从 Poe 导出的聊天记录,包含这些字段:

  • Name(必需)

    • 类型:Title
    • 脚本会把「聊天第一条消息的前若干个字」作为标题写入这里
  • Date

    • 类型:Date
    • 脚本会写入导出时的时间(当前时间)
  • URL

    • 类型:URL
    • 脚本会把当前 poe.com 的页面地址填进来,方便日后回跳原始链接

⚠️ 目前脚本默认使用属性名:Name / Date / URL
若你修改成别的字段名,需要同步修改脚本代码中创建 page 的那一部分。


🕹 使用说明

1. 全量导出

  1. 打开某个 Poe 对话页面
  2. 等待脚本加载完(几百毫秒~1 秒)
  3. 页面右下角会出现一个蓝底按钮:
    • 📥 保存到 Notion
  4. 点击按钮:
    • 脚本会扫描页面中所有消息气泡
    • 将它们转换为 Notion block
    • 如有图片,会尝试上传到 PicList,再把外链写入 Notion
    • 最后在目标 database 创建一个新的 page 并附上这些 block

按钮文字会按状态变化:

  • 📥 保存到 Notion🕵️ 处理中...💾 保存中...✅ 已保存 / ❌ 出错

2. 单条导出 + 隐私控制

把鼠标移到任意一条消息气泡,右上角会出现一条小工具条:

  • 👁️ / 🚫(隐私开关)

    • 默认是 👁️,表示:会导出
    • 点击一次变成 🚫,表示:这条消息内容不会导出
    • 再点击一次切回 👁️
    • 状态会影响「全量导出」和「单条导出」
  • 📤(单条导出)

    • 只导出这一条气泡
    • 如果下一条是另一方的回复,并且没被标记隐私,也会一起导出
    • 导出的 Notion 页标题会使用这一条气泡的内容前几十个字符

导出成功时,📤 按钮会短暂显示 以示完成;失败则显示


🧠 格式细节说明

脚本会尽量按照以下规则把 DOM 转为 Notion blocks:

  • 普通文本段落 → paragraph
  • <h1> ~ <h3>heading_1 / heading_2 / heading_3
  • 引用 <blockquote>quote
  • 列表 <ul>/<ol>bulleted_list_item / numbered_list_item
  • 代码块 <pre><code>
    • 自动尝试识别 className 中的语言(如 language-javascript
    • 映射到 Notion 支持的语言;未知语言则退回 plain text
  • 行内 code / strong / em → bold / italic / code 标记
  • LaTeX:
    • 检测 data-latex-source / data-math 属性
    • 行内公式 → inline equation
    • 特定容器类(如 katex-display) → block equation
  • 表格 <table> → Notion table + table_row
  • 附件文件:
    • 检测 <a> 标签是否是文件下载 / blob 链接
    • 在 Notion 中以 file block 的形式插入(external URL)
    • 若是无法上传的本地 blob 文件,会插入一行文本提示

🧱 图片上传(PicList 协议)

  • 脚本会扫描:
    • 消息正文里的 <img>
    • Poe 附件区域 .Attachments_attachments__x_H2Q img
  • 然后:
    1. 读取图片二进制(对 blob URL 也会尝试用 <canvas> 转 blob)
    2. 使用 multipart/form-data POST 到 http://127.0.0.1:36677/upload
    3. PicList 返回一个 URL,脚本把这个 URL 写入 Notion image.external.url
  • 上传失败时:
    • 该图片对应的 block 会变成一段提示文本:
      ⚠️ Upload Failed: filename

如果你完全不使用 PicList:

  • 只会影响图片导出
  • 文本/代码/表格/公式仍然可以正常导出到 Notion

❓ 常见问题

1. 右下角按钮不见了?

可能原因:

  • 脚本没有成功加载:
    • 检查浏览器右上角 Tampermonkey 图标是否启用
    • 检查此脚本是否对 https://poe.com/* 生效
  • 脚本报语法错误:
    • 打开开发者工具 (F12) → Console,看是否有红色报错信息

2. 点击导出后提示 ❌ 出错?

优先检查:

  1. Notion Integration Secret 是否正确
  2. Database ID 是否正确
  3. 该 Integration 是否被添加到对应的 database(Notion 中要手动授权)
  4. 网络环境是否能访问 Notion API

可以打开开发者工具,看 Network / Console 是否有请求失败 / 401 / 403 等信息。

3. 图片在 Notion 里显示成「上传失败」或不显示?

  • PicList 没有运行 / 没有监听 127.0.0.1:36677
  • 某些 blob 图像浏览器禁止跨源读取,canvas 转 blob 失败
  • PicList 返回的 JSON 格式与脚本预期不符(如果你改过 PicList 配置)

文本仍然会导出,只是这一张图片会变成提示文本。


🔐 安全 & 隐私说明

  • 脚本只会向两个地方发数据:

    1. Notion 官方 API:用于创建 Page 和追加 Blocks
    2. 本地的 PicList 服务 (127.0.0.1):用于上传图片
  • Notion Token / Database ID:

    • 只保存在本地(脚本管理器的存储中)
    • 不会发送到第三方服务器
  • 消息隐私控制:

    • 每条消息都有隐私开关
    • 标记为隐私的消息不会把原文发给 Notion
    • 在 Notion 中只会看到类似「此消息已标记为隐私,未导出」的占位提示

✅ 适用场景建议

  • 把「高质量 AI 对话」沉淀成自己的 Notion 知识库
  • 记录 prompt 测试过程、代码调试过程、灵感对话
  • 对话太长,Poe 查找不方便,想放到 Notion 统一检索 / 标注 / 链接

如果你有更多想要支持的格式(比如引用关系、tag、自动识别模型等),可以在脚本基础上继续二次开发 🙌