719 字
4 分钟
-
-
兜兜转转开发了1个月的ExTalk,最后还是换回了成熟的方案
AI概括本文内容
正在概括...
Thinking ▾
为何更换
ExTalk的一些问题
其实这个项目我开发了很久,投入了大量的时间和精力,几乎平时周六日一有之间就会修点东西,但是奈何前端实在是太难看了
因为我真的前端特别烂,所以基本都是用的Claude写的,但是…始终感觉这个UI不太好看,而且其实整个系统的稳定性我也没有花太多时间测试。时间实在是太紧张了…
UpXuu的问题
emm其实好像和上一框一样吧hh,就是没时间开发了,未来如果有什么严重的安全问题可能也没法及时修复
就当图省心吧换别人开发了很久的项目
何以迁移
之前使用的是D1数据库+workers 所以迁移起来也比较方便 这里供大家参考吧
ExTalk → Waline 数据迁移说明
概述
将 ExTalk 评论系统的 D1 数据库数据转换为 Waline 兼容格式,包括评论、页面统计和用户数据。
1. Worker API 导出接口
在 Cloudflare Worker 中创建 /export-data 端点,通过密钥认证后导出 D1 数据库所有表数据:
// POST /export-data// 需要密钥: upxuu-export-2026该接口查询以下表:
page_views- 页面浏览量统计users- 注册用户comments- 评论数据comment_counts- 评论计数comment_reports- 举报记录allowed_domains- 允许域名page_restrictions- 页面限制page_views_log- 访问日志(IP 防刷)
2. Node.js 转换脚本
使用 convert_to_waline.js 脚本完成数据转换:
node convert_to_waline.js步骤:
- 拉取原始数据 - 通过 HTTPS 请求 Worker API,使用 UTF-8 编码接收 JSON
- 读取 Waline 模板 - 解析
waline.json获取 Waline 数据结构和现有 objectId 起始值 - 转换评论 - 按 Waline Comment 表结构映射字段:
| ExTalk | Waline | 说明 |
|---|---|---|
id | - | 用于建立父子关系映射 |
page_url | url | 页面路径 |
nickname | nick | 昵称 |
content | comment | 评论内容 |
email | mail | 邮箱 |
website | link | 网站链接 |
parent_id | pid/rid | 父评论/根评论 ID |
ip | ip | IP 地址 |
user_agent | ua | 浏览器 UA |
created_at | insertedAt/createdAt/updatedAt | 时间戳 |
- 处理回复关系 - 先转换根评论,再转换子评论,通过
walineId映射建立pid和rid - 转换 Counter -
page_views.views→Counter.time - 转换 Users - 仅保留 UpXuu 管理员账号,密码使用 bcrypt 哈希
3. 输出
生成 waline_import.json,符合 Waline 导入格式:
{ "__version": "1.39.3", "type": "waline", "version": 1, "tables": ["Comment", "Counter", "Users"], "data": { "Comment": [...], "Counter": [...], "Users": [...] }}转换结果
- 评论: 256 条(根评论 231 条 + 回复 25 条)
- 页面统计: 118 个页面
- 用户: 1 个(UpXuu 管理员)
新的评论系统:Waline
Waline | Waline 之所以选择它,主要还是感觉这个UI确实挺清新的,而且部署也很方便 并且还在更新当中


我个人还是比较喜欢这种简洁的
extalk的未来
或许在不久的将来 我会重新继续维护吧 一会会把它开源
兜兜转转开发了1个月的ExTalk,最后还是换回了成熟的方案
https://upxuu.com/posts/newcommentsystem/版权声明
本文版权为 UpXuu 所有,保留所有权利(All Rights Reserved)。
禁止商用:严禁用于任何变现、引流、赚取平台激励等行为。
禁止改编:禁止洗稿、翻译、节选等任何形式的二次创作。
转载授权:如需转载,请发邮件至 me@upxuu.com 申请书面许可,未经授权不得转载。
目录
XUUAI 问答

