Skip to content
This repository was archived by the owner on Mar 10, 2024. It is now read-only.
/ Speechless Public archive

把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。

License

Notifications You must be signed in to change notification settings

meterscao/Speechless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

21e4aab · Aug 16, 2023

History

72 Commits
Apr 20, 2023
Aug 16, 2023
Apr 23, 2023
Aug 16, 2023
Nov 4, 2022
Nov 22, 2022
Nov 4, 2022
Aug 16, 2023
Apr 24, 2023
Apr 24, 2023
Aug 16, 2023
Aug 16, 2023
Jan 6, 2023
Jan 6, 2023
Jan 6, 2023
Apr 13, 2023

Repository files navigation

Speechless

WechatIMG160 copy

Speechless 是一个帮助新浪微博用户,把微博内容导出成 PDF 进行本地备份的 Chrome Extension。

查看官网👉 https://sppechless.fun

使用

  • 通过 Chrome Web Store 安装(推荐)

    Chrome Web Store

简介

✅ 一键导出 PDF

将微博的文字、图片、表情轻松备份成高质量PDF文件,方便阅读、浏览和储存。

✅ 支持时间范围筛选

可以根据时间范围进行筛选和导出,确保只备份你关心的特定时期的微博内容。

✅ 备份任何公开的微博

不仅支持备份你自己的微博,还支持其他任何公共公开的微博。

✅ 安全可靠

无需额外登录和输入密码,直接通过插件形式使用,确保你的账户安全和隐私保护。

✅ 支持原创与转载

可选择仅备份原创微博或全部微博(含转发内容),灵活满足不同需求。

✅ 精美的照片排版

支持选择图片备份的大小和清晰度,为你提供最佳的阅读和存储体验。

WechatIMG161 copy

WechatIMG162 copy

原理

Chrome 并没有为 Extension 提供直接导出 PDF 的 Api,但是可以借助 Chrome 的 打印预览/另存为 PDF 功能,将网页的内容直接另存为 PDF。

所以 Speechless 做了以下几件事情:

  1. 在页面上找到需要备份用户的 UID,这通常可以通过 URL 直接获得
  2. 通过 Ajax 不断去拉取该用户可见的微博内容,当内容中有长文时,额外通过接口获取长文信息
  3. 将拉取到的微博内容,添加到页面的节点上,并且设置基本的样式和布局
  4. 直到所有内容都拉取完毕之后,通过点击事件触发 window.print() ,唤起 Chrome 自带的打印预览界面
  5. 在打印预览界面 目标打印机 选择 另存为 PDF,导出即可

依赖

  • Vue3
  • TailwindCSS

其他

  • 愿人人都有自由表达的权利。

更新

version 2.2

  • 修复了长文无法展开,只显示“展开”两个字的问题
  • 保留了文本内容内的换行,使内容阅读体验更佳
  • 优化了导出文件的标题

version 2.0

  • 支持选择时间范围
  • 支持选择图片大小
  • 支持仅备份原创微博
  • 支持最小化窗口
  • 支持多种url形式的微博主页

version 1.2

  • 增加了默认的拉取时间间隔,以避免拉取过于频繁被微博限制的问题。但目前的方法仍不是最优解法,尚有较大优化空间
  • 增加了拉取完成后,手动选择图片裁切样式的操作
  • 增加了拉取完成后,手动选择是否展示 转、赞、评 信息的操作 @rickypeng99
  • 增加了拉取过程中暂停的操作

version 1.1

  • 使用 Weibo API 获取用户 UID 和用户名 @jingfelix
  • 修复了 icon name 错误的大小写问题 @jjhhms