轶哥

妄图改变世界的全栈程序员。

对接ChatGPT3.5的API实现打字机效果
  •   更新:2023-03-14 00:30:25
  •   首发:2023-03-13 23:52:44
  •   JavaScript
  •   438

回一个完整的对话文本。我们将介绍一个 Node.js 服务器和一个 HTML 页面的示例代码,这两个组件通过 HTTP 请求和 SSE(Server-Sent Events)协议连接,并实现了基于流式 API 的长时间运行的聊天功能。

对接ChatGPT3.5接口本身很简单,但是实现stream以打字机效果展示并且实现自动长回复,不少小伙伴遇到问题,特整理了一份3.5接口开放当天用于临时验证的示例代码供学习参考(千万不要用于生产环境)。

Office表格转HTML Table
  •   更新:2023-03-12 10:55:03
  •   首发:2022-08-22 22:50:13
  •   JavaScript
  •   1288

这个程序大约写于5年前,在3年前开源。这是一篇3年前就应该写的文章,一直沉睡在TODO List,由于优先级过低,竟然拖到今天才写。

office2table.png

这个小工具诞生的原因背景:

Office的Excel是目前最优秀的表格工具,Office三套件经久不衰,无疑是职场最具影响力的生产力软件。而World与Excel中的表格直接复制到网页(HTML组件)中会遗留非常多的额外标签,这些标签在浏览器中有的是无法识别的,有的是能识别但是会出现显示异常的。

在Web2.0时代,出现了“所见即所得”的HTML富文本编辑器。与此同时,Web前端飞速发展,出现了多种自适应布局方式,可以让Web页面兼容不同大小和分辨率的显示器。

由于Office新版协议采用了和HTML类似的标记语言来表达富文本内容,使得WPS等第三方Office软件得以在不破解协议的情况下修改Office文件。然而World、Excel和PowerPoint的表格内容直接复制出来粘贴到HTML富文本编辑器是可以使用的,但是多余的标签会衍生出各种问题。

这个 Office Table 转 HTML Table 就是为了解决此问题开发的纯前段处理数据的Web小程序。

MySQL批量重命名表名和列名
  •   更新:2022-02-23 20:16:12
  •   首发:2022-02-23 20:16:12
  •   JavaScript
  •   1117

MySQL批量重命名表名和列名,修改表名为大驼峰,列名为小驼峰。

最近公司项目重构,为了适应Prisma的习惯,保持数据库字段命名方式和代码模式一致,特地编写此脚本实现批量重命名已存在的表名和列名。

Auto.js 小米MIUI自动解锁屏幕脚本
  •   更新:2022-02-22 17:28:41
  •   首发:2022-02-21 22:53:16
  •   JavaScript
  •   2322

使用Auto.js解锁MIUI13的密码锁屏,不能直接滑动屏幕,会因为防误触功能导致解锁失败,关闭防误触也没用。只需要滑动的时候不那么直接即可。

if (!device.isScreenOn()) {        //从息屏状态  将屏幕唤醒
    device.wakeUp()//唤醒设备
    sleep(2000) // 等待屏幕亮起

    swipe(random(device.width / 3, device.width / 2), random(device.height * 8 / 10, device.height * 7 / 10), random(device.width / 3, device.width / 2), random(device.height * 2 / 10, device.height / 10), random(500, 1000))
    sleep(1000)

    //解锁
    desc(1).findOne().click()
    desc(2).findOne().click()
    desc(3).findOne().click()
    desc(4).findOne().click()
}

通过下拉再点击时间的方式在MIUI13行不通了,但实现也不复杂,核心实现是上述第四行代码。

SSL证书过期监测
  •   更新:2022-02-08 16:52:00
  •   首发:2022-01-28 23:46:00
  •   JavaScript
  •   1710

部分程序配置了免费 SSL 证书更新程序,但是更新程序更新证书失败并不会通知到管理员,可能导致业务异常。通过针对域名的 SSL 证书过期监测小程序,作为二道防火墙,避免事故发生。

需求

  1. 以 cron 风格定时监测 SSL 证书过期和可用状态。
  2. 提前 2 天发送短信通知管理员(需要支持多手机号)。
  3. 可以在线维护通知列表(域名+手机号)。
  4. 程序要尽量简单,尽量降低后续维护成本。
  5. 开发要尽可能快。
开源MySQL定时备份系统
  •   更新:2021-08-25 14:58:16
  •   首发:2020-02-15 13:10:41
  •   JavaScript
  •   3978

自动获取 MySQL 数据库备份文件并将其上传到对象存储。

Features

  1. 支持加密后压缩上传(默认上传到私密存储的“归档存储”类型,文件需解冻后方可下载)。
  2. 定时自动执行任务。
  3. Web 可视化动态添加配置,支持同时管理多个数据库,可以设置需要备份的表或不需要备份的表。
  4. 支持生成单个 PHP 文件,用于仅内网可访问数据库或虚拟主机数据库的备份。
  5. 支持生成 Shell 文件,用于仅内网可访问数据库的备份。(由于 Docker 部署已非常方便,这个功能不再开发)
  6. 支持 Swagger UI 查看 API,方便与其它系统整合。
  7. 支持超级管理员添加多个普通管理员超级管理员可以管理所有数据库,普通管理员之间内容互不可见,适合普通开发团队的使用场景。
  8. 由于此系统仅为灾备设计,仅支持全量备份,默认备份数据+结构(包含视图、触发器等),不支持增量备份。如果您的数据非常重要,请勿将此作为唯一备份系统,可配合服务商提供的备份功能使用。
  9. 兼容支持手机端访问。
  上一页 下一页