切换评论系统为Twikoo

切换评论系统为Twikoo

请注意,本文编写于  142  天前,最后修改于  142  天前,其中某些信息可能已经过时。

前言

从使用 Hexo 博客开始,Valine 就是我的首选评论系统,包括现在我使用的 Halo 博客,也将默认的评论系统切换成了 Valine,这主要是因为 Valine 自身比较轻量、简洁,而且它的各种衍生版本、Valine-admin 都满足了我的正常使用需求。
不过,最近偶然看到 imaegoo 重新开发了一款同样轻量的 Twikoo 评论系统,确实惊艳到了我,所以我决定将使用已久的 Valine 切换到 Twikoo。

Twikoo 评论系统

一个简洁、安全、免费的静态网站评论系统,基于腾讯云开发。

这是 Twikoo 评论的简介,与 Valine 的简介基本如出一辙。

Twikoo 的特点

关于 Twikoo,它的优缺点作者已经在 README 文档上写了,其中我个人认为比 Valine 要更好的地方主要如下:

  1. 支持点赞,这个功能可以说是求之不得了,正常的评论系统理应具备这个能力,但是之前的几款评论都缺失这个功能,所以在 Twikoo 上极大的满足了我的需求
  2. 支持评论置顶,这个功能简直 nice~
  3. 评论框内容实时保存草稿,刷新不会丢失。这算是一个痒点吧,正常使用场景下倒是用的不多
  4. 自带垃圾检测功能,之前使用 Valine 的时候,每天都会有各种物流、单号之类的垃圾评论,而 Valine 只能使用增强的 Valine-admin 去屏蔽这种垃圾评论,很不方便,而 Twikoo 可以实时配置垃圾评论的关键字,即使评论了也不会显示,麻麻再也不用担心烦人的广告了!
  5. 支持自定义表情包,通过 Json 文件可以区分不同类别的表情包,确实很方便~而 Valine 只有衍生版才支持表情包分类
  6. 内嵌式管理面板,可以在评论区输入自定义的“暗号”进入管理界面,而且都可以实时配置,很方便的管理评论、删除评论,再也不用通过 LeanCloud 管理了!

实话说,这确实是我理想中的博客评论系统之一,虽然没有那么完美,但是已经很不错了,所以也是非常推荐大家使用~

Twikoo 的使用

其实作者在 Twikoo 文档中已经写的比较好了,有多种方式可以使用,但是由于 Twikoo 是基于腾讯云使用的,所以我们要先在腾讯云中部署好,可以参考作者的视频进行腾讯云部署:

其中需要注意:最新的 v1.3.0 版本,云函数代码已经比较简洁了,不再是视频中的长代码(见最新的官方文档),另外,很多使用者反应免费版很容易超过免费额度,所以每月可能会有一部分的超出费用。

从 Valine 切换到 Twikoo

在 Twikoo 管理面板中就可以直接选择从 Valine 评论导入,需要在 LeanCloud 中选择导出评论文件。

image.png

从 LeanCloud 中导出 Valine 的评论为 JSON 文件方式:

image.png

导出后会提示发送到你的邮箱(不得不说在页面上实时导出都不支持,LeanCloud 确实不太行)

如果你现在是在下午 4 点之后(导出只有在每天下午 4 点前支持),或者恰好注册这个应用的 LeanCloud 的邮箱已经无法登陆了(真被我碰到了),那么也可以随便写个脚本导出 Valine 评论为 JSON 文件:

import leancloud
import json

leancloud.init('填写app_id', app_key='填写app_key',master_key='填写master_key')
query = leancloud.Query('Comment')
query.descending('updatedAt')
query.skip(1000)  # 每次最多只能查询1000条数据
query.limit(100)
objs = query.find()
res = []
for obj in objs:
    dict = {
       'objectId': obj.get('objectId'),
        'QQAvatar': obj.get("QQAvatar"),
        'comment': obj.get("comment"),
        'insertedAt': str(obj.get("insertedAt")),
        'ip': obj.get("ip"),
        'link': obj.get("link"),
        'mail': obj.get("mail"),
        'nick': obj.get("nick"),
        'pid': obj.get("pid"),
        'rid': obj.get("rid"),
        'ua': obj.get("ua"),
        'url': obj.get("url"),
        'createdAt': str(obj.get("createdAt")),
        'updatedAt': str(obj.get("updatedAt"))
    }
    model = json.dumps(dict, ensure_ascii=False)
    fr = open('output.json', 'a', encoding='utf-8')
    fr.write(model + "\n")
    fr.close()

生成后将 output.json 导入到 Twikoo 的管理面板就可以了。

本文由 Sanarous 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可,转载前请务必署名
本文链接:https://bestzuo.cn/posts/twikoo.html
最后更新于:2021-05-09 21:27:05

切换主题 | SCHEME TOOL