2024 年第 46 周草梅周报:push-all-in-one 发布 4.0.0-beta 版重大更新

前言

欢迎来到草梅周报!这是一个由草梅友仁基于 AI 整理的周报,旨在为您提供最新的博客更新、GitHub 动态、个人动态和其他周刊文章推荐等内容。


本周的主要工作内容是对 push-all-in-one 进行重大版本更新。

这次的更新的主要理念是统一接口,即将所有推送方式的接口进行统一,减少使用难度。

v3 及之前:

import { ServerChanTurbo } from 'push-all-in-one'
// Server酱·Turbo。官方文档:https://sct.ftqq.com/r/13172
const SCTKEY = 'SCTxxxxxxxxxxxxxxxxxxx'
const serverChanTurbo = new ServerChanTurbo(SCTKEY)
serverChanTurbo.send('你好', '你好,我很可爱')

v4:

import { ServerChanTurbo } from 'push-all-in-one'
// Server酱·Turbo。官方文档:https://sct.ftqq.com/r/13172
const SERVER_CHAN_TURBO_SENDKEY= 'SCTxxxxxxxxxxxxxxxxxxx'
const serverChanTurbo = new ServerChanTurbo({
    SERVER_CHAN_TURBO_SENDKEY,
})
serverChanTurbo.send('你好', '你好,我很可爱 - Server酱·Turbo', {})

这一次改动是不兼容更新,主要将所有推送类的构造函数入参都改为了 objectsend() 方法也统一为 send(title: string, desp?: string, options?: any) 的格式。

这样做最大的好处就是 runPushAllInOne 函数实现起来简单了很多,真正实现一个函数推送所有渠道。

export async function runPushAllInOne<T extends PushType>(title: string, desp: string, pushConfig: MetaPushConfig<T>): Promise<SendResponse<any>> {
    const { type, config, option } = pushConfig
    if (PushAllInOne[type]) {
        const push = new PushAllInOne[type](config as any)
        return push.send(title, desp, option as any)
    }
    throw new Error('未匹配到任何推送方式!')
}

如果希望试用,请参考 beta 分支的 README。

# 由于还在 beta 版本,需要指定版本后安装
npm i push-all-in-one@4.0.0-beta.2 -S

其余改动请参考 v4 升级计划

  • 移除 crypto-js,迁移到原生的 crypto,以减少依赖体积。
  • 移除 qs,迁移到原生 URLSearchParams,以减少依赖体积。
  • 升级 https-proxy-agent、socks-proxy-agent 版本,以修复可能存在的漏洞。
  • 最低 Node.js 版本要求提升到 18,以支持原生 esm。
  • 迁移构建到 tsup
  • 迁移模块系统到 ES modules
  • 统一入参和返回值格式/类型

与此对应的,push-all-in-cloud 也进行了同步更新,升级 push-all-in-one 版本到 v4。

push-all-in-one 改动影响, push-all-in-cloud在对应接口的参数上也有不兼容更新,请参考 beta 分支的 README 了解改动。


rss-impact-server 预计在下周之后进行push-all-in-on版本更新,推送配置相关模块会有影响,届时请参考 CHANGELOG。了解改动。

推送配置相关改动将会参考 将推送配置提取为单独的配置项路由 #243升级 push-all-in-one 版本到 v4 #459 进行改动。

GitHub Release

rss-impact-server

  • v1.10.0 – 2024-11-09 20:16:27

    摘要:
    版本 1.10.0 的主要更新包括代码重构、新功能添加和 Bug 修复。具体内容如下:

    代码重构

    • 修改了 auth0 默认的用户名设定。
    • 重构了 getConditions 逻辑,并修改了相关测试用例。
    • 新增了 git commit hash 输出,解决了 #440 问题。
    • 订阅获取成功时,清空错误计数。

    新功能

    • 新增了最大错误次数配置,自动禁用错误次数过多的订阅。
    • 新增了构建信息输出。

    Bug 修复

    • 修复了 oidc 未初始化时的 logout 问题。
    • 修复了推送时存在多余换行符的问题。
    • 修复了禁用订阅后未移除定时任务的问题。
    • 修复了邮箱校验逻辑错误。
    • 修复了部分情况不按照 id 排序的问题。

      push-all-in-one

  • v4.0.0-beta.2 – 2024-11-09 19:17:02

    摘要:

    Bug 修复

    • 修复了接口类型未导出的问题。
    • 修复了部分类型声明的大小写问题。

    以上修复通过提交 9535ebc 实现。

  • v4.0.0-beta.1 – 2024-11-09 18:45:44

    摘要:

    版本 4.0.0-beta.1 的主要更新包括代码重构、新功能添加和 Bug 修复。

    代码重构

    • 修改文档和代码示例,优化部分代码的类型声明。
    • 移除 crypto-js,迁移到原生的 crypto
    • 调整 send 接口的返回值类型为 SendResponse
    • 重构多个推送服务的接口,包括 Discord、iGot、OneBot、PushDeer、PushPlus、Qmsg 酱、ServerChanTurbo/ServerChanV3、Telegram、WechatApp/WechatRobot、息知推送、自定义邮件类和钉钉机器人推送。

    新功能

    • 最低 Node.js 版本要求提升到 18,以支持原生 ESM。
    • 新增 runPushAllInOne 函数。

    Bug 修复

    • 修复 qmsg 酱的 bot 参数问题。
    • 修复代理依赖升级导致的错误,优化 Server 酱³ 的调用方式为安全模式。
    • 升级 https-proxy-agentsocks-proxy-agent 版本。
    • 移除 qs,迁移到原生 URLSearchParams,修复 Qmsg 文档链接。
    • 迁移测试到 jest,修复生成钉钉签名错误的问题。

    重大变更

    • 最低 Node.js 版本要求提升到 18,以支持原生 ESM。

      push-all-in-cloud

  • v2.0.0-beta.1 – 2024-11-09 19:49:29

    摘要:

    版本 2.0.0-beta.1 于 2024 年 11 月 9 日发布。此版本包含以下主要更新:

    1. 新功能

      • 修改了批量推送和转发推送的逻辑。
      • 修改了环境变量配置。
    2. 重大变更

      • 升级了 push-all-in-one 到 v4 版本。

    这些更新旨在改进推送功能的逻辑和配置,并引入了对 push-all-in-one 库的重大升级。

个人动态

  • #FromRss #技术交流圈 #草梅碎碎念 – 2024-11-05 22:10:47

    FromRss #技术交流圈 #草梅碎碎念

    经过实测,阿里云 OSS 也是 S3 兼容的,也就是说,可以完全不通过官方的 \ali-oss\ SDK,而是使用 S3 的 \@aws-sdk/client-s3\ SDK 来上传文件。
    这样做的好处就是可以直接兼容所 有 S3 兼容的 OSS,比 如 R2 之类的,也就不用每家 OSS 都适配过去了。
    原文链接:https://juejin.cn/pin/7433758646775578636

掘金本周最热

  • 独立开发者 5 个月,月收入赶超北京工资,我的一点心得 – 2024-11-09 18:25:35

    摘要:
    作者分享了自己从北京离职回到河北老家后,成为独立开发者的经历和心得。他提到,最近几个月的收入已经超过了在北京时的工资,并且心态上也有了很大的变化。他主要通过为其他研发团队提供可二次开发的在线图片编辑器源码来盈利,目标是帮助企业快速搭建在线设计工具。

    作者强调,客户的选择是理性的,因此必须提供最优的解决方案,切实帮助客户解决问题,才能获得信任和订单。他建议,既然选择了独立开发,就要全力以赴,不怕脏、不怕累、不怕难,不断尝试和积累。

    在客户满意与投入成本的矛盾方面,作者认为,只有通过专业的努力和有限的资源,让客户得到超预期的结果,才能赢得下一次订单。他总结了项目开发的经验,强调了沟通、需求梳理和客户预期管理的重要性。

    最后,作者表示,这些心得是个人观点,欢迎大家批评指正,并希望能与其他开发者交流。

  • 富文本选型太难了,谁来帮帮我! – 2024-11-07 16:53:43

    摘要:

    富文本编辑器在管理平台中是信息输入和内容编辑的重要工具,几乎不可或缺。它不仅能帮助用户轻松创建和格式化文档、邮件、模板等内容,还支持多样化的输入方式,提升了内容管理的便捷性和效率。然而,实现一个全面且高效的富文本编辑器涉及跨浏览器兼容性、复杂的格式化操作、多媒体支持等多个技术难题,需要大量的人力物力。不同的用户对功能有各自的偏好,选择富文本编辑器时需要在功能性与操作便捷性之间进行取舍。

    • 强烈推荐: Tinymce, CKEditor, Tiptap, Jodit
    • 比较推荐: Quill, wangEditor, Editor, Slate
    • 不推荐: UEditor, Squire, Summernote, medium-editor

    优秀的富文本编辑器不仅要页面美观,而且要格式化功能强大,使用方便快捷。选择合适的富文本编辑器,不仅关系到内容生产的效率,更直接影响到平台的用户满意度和运营效果。理解开发富文本编辑器是一个巨难且很难盈利的项目,只能尽可能满足痛点,在使用体验和需求功能上找到平衡点

  • webSocket 封装,心跳检测+断线重连基于 ES6 class,已在生产环境上使用,已发布包 – 2024-11-07 16:15:43

    摘要:
    WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,由 HTML5 引入。它允许客户端和服务器之间进行双向数据传输,只需一次握手即可建立持久连接,从而简化了数据交换过程。与传统的 Ajax 轮询相比,WebSocket 能更有效地节省服务器资源和带宽,提供更实时的通信。

    WebSocket 的特点包括:建立在 TCP 协议之上,与 HTTP 协议兼容,数据格式轻量,支持文本和二进制数据传输,无同源限制,协议标识符为 ws 或 wss。它适用于需要实时数据交换的场景,如通信、股票交易、直播、共享桌面等。

    WebSocket API 提供了构造函数、状态变量和方法,如 WebSocket(url, protocols)readyStatesend(data)close(code, reason),以及事件回调函数 onopenonmessageonerroronclose

    为了增强 WebSocket 的功能,开发者可以进行封装,如添加心跳检测和断线重连机制。心跳检测通过定期发送数据包来确认连接状态,防止数据丢失。封装后的 WebSocket 类可以配置各种参数,并支持全局复用。

    测试部分展示了基于 Node.js 的 WebSocket 实现,通过 nodejs-websocket 模块创建了一个简单的服务器,并进行了连接测试。

其他周刊推荐

阮一峰的网络日志

  • 科技爱好者周刊(第 324 期):人类已知的最大质数 – 2024-11-08 08:15:38

    摘要:

    摘要

    本周内容涵盖了科技动态、AI 相关进展、工具推荐、资源分享等多个方面。核心内容包括:

    1. 科技动态

      • 美国程序员卢克·杜兰特发现人类已知的最大质数 M136279841,该质数有 41,024,320 个十进制位,杜兰特为此花费了约 200 万美元购买 GPU 计算时间。
      • 旧金山市中心的一家胶囊旅馆因价格相对便宜而非常抢手,17 个床位有 300 人申请。
      • 英国伯明翰市政府更换 ERP 系统后遇到问题,成本从最初的 1900 万英镑增加到 1.31 亿英镑。
      • 两个巴基斯坦青年使用 AI 生成万圣节活动信息,导致爱尔兰首都都柏林上千人聚集等待不存在的活动。
    2. AI 相关

      • OpenAI 推出 ChatGPT 搜索,与谷歌搜索正面竞争。
      • 多个 AI 工具和平台介绍,如离线语音转文字软件 AI Hear、开源的 AI 网关 APIPark 等。
    3. 工具推荐

      • 网页抓取工具 flyscrape、Python 包安装器 uv、Mac 的 TCP 数据包分析工具 ChatTCP 等。
    4. 资源分享

      • 《System Design Interview: An Insider’s Guide》一书的中文翻译,介绍如何设计不同目的的软件系统。
      • Auth Wiki 网站,收录与身份验证、授权和身份管理相关的详细条目。
    5. 图片与文摘

      • 太阳能板价格下降,未来可能成为建筑物外墙的常见材料。
      • 美国医院仍在使用寻呼机的原因,包括信号问题、续航和简单性。

    本周内容丰富,涵盖了科技领域的多个热点和实用工具,适合对科技动态和 AI 发展感兴趣的读者。

    总结

本周的更新和动态如上所示。感谢您的阅读!
您可以通过以下方式订阅草梅周报的更新:

本文作者:草梅友仁
本文地址:https://blog.cmyr.ltd/archives/2024-11-10-caomei-weekly-push-all-in-one-v4-beta-major-update.html
版权声明:转载请注明出处!