多说评论关闭,个人博客该怎么办
2017年的六一,多说给了个人博客的博主们一个“重磅的礼物”:
多说使用将于2017年6月1日到期,请尽快迁移,详见duoshuo.com。
看到这则消息,我相信大多数博主都吃了一惊。毕竟,多年积累了大量的评论数据。这些评论该何去何从。干脆有的博主就直接关闭了评论功能;有的继续坚持,直到最后一刻;有的就直接再找一个评论插件,前提当然能接手多说的评论数据,换到自己的个人博客上。总之,我们要和多说说拜拜了。
多说走了,马上就有很多插件出来接手。由多说的经验,我们在使用这些插件的时候一定要考虑到如果这些插件和多说一样,哪一天也关闭了,那我们岂不是得不偿失了。所以说最好的办法就是将多说的数据迁移到自己的博客中。也就是我们自己开发一个简单的评论功能。当然了,多说的数据是要兼容的。自己开发的评论功能并不需要多说的全部功能,也就是我们只需要多说的部分数据。
所以,第一步就是新建数据表,按照我们的表结构,导入多说的数据。要导入多说的数据,首先要了解多说评论的数据结构(多说为我们提供了导出的功能)。多说评论的数据主要分为两部分
threads 文章记录
{
thread_id, 多说文章ID
thread_key, 文章在当前站点中的唯一标识符,例如文章ID
title, 文章的标题
url, 文章的链接
author_key,文章作者在本站的ID
author_id, 文章作者的多说ID,如果为空,说明发表文章时没有登陆多说账号
likes, 文章被点赞的次数
views 文章的浏览次数
}
posts 评论的内容,不包括垃圾评论、删除的评论等
{
post_id, 多说评论ID
thread_id, 这条评论对应的文章id。也就是针对那篇文章发表的评论。
message, 评论内容
parents, 如果不为空,说明该条评论是针对某一条评论的回复,该字段值即为评论的id
created_at, 评论发表时间
author_id, 作者在多说的id,空表示匿名用户
author_name, 作者显示名称
author_email, 作者邮箱
author_url, 作者邮箱
ip, 作者的ip
}
对于上面的字段我们不需要都导入我们自己的系统中的,只要部分字段即可。这里我根据上面多说的数据结构新建了两个表 message_threads和message_posts。
第二步就是导入数据。在多说系统中我们导出的评论数据格式是json数据。所以我们需要使用某种编程语言读取json数据,然后想办法导入数据表中。这里我使用的是php。
$handle = fopen(DOC_ROOT.'../export.json','r');
while(false != ($res = fread($handle, 1024))){
$json.=$res;
}
fclose($handle);
$arr = json_decode($json,true,512,JSON_BIGINT_AS_STRING);
//解析成数组以后提取我们需要的数据,并且按照我们的数据结构进行处理
for($i=0;$i<count($threads);$i++){
//这里面是处理数据
}
//后面代码是添加数据库操作,代码就不全粘过来了,只是个思路
$sql = "INSERT INTO message_threads ...... ";
$mod->sql($sql);
第三步就是显示评论数据,我们有了自己的表和数据。要显示这些数据应该很简单。
最后一步当然就是添加评论数据了。
这样一个兼容之前多说评论的个人评论功能就完成了。其实,自己开发一个评论功能也是比较简单的,主要的问题就是兼容多说评论的数据。
目前本博客的评论功能也是刚刚完成,有些地方可能不太完善。还请各位在使用的过程中提出宝贵意见。
相关文章
将 CSV 文件数据导入 PostgreSQL 中的表
发布时间:2023/03/20 浏览次数:110 分类:PostgreSQL
-
本教程展示了我们如何将数据从 CSV 文件导入 PostgreSQL 数据库表。