之前由于 livere 评论系统加载速度慢的问题,把评论系统换成了 Gitment,但是集成后发现只能手动初始化所有文章的评论或者一个一个点开界面,作者觉得这件事情非常麻烦,所以手动抓了一下 Gitment 在初始化评论时发出的网络请求后写了一个用于自动化初始评论的脚本。
获取 token
在使用该脚本之前首先要在 GitHub 创建一个新的 Personal access tokens,选择 Generate new token 后,在当前的页面中为 Token 添加所有 Repo 的权限:
在这里创建之后,点击界面最下的面 Generate token 按钮获得一个新的 token,保存好该 token,后续代码中需要。
脚本
配置下面脚本的 5 个变量:
1 | import requests |
配置好后,运行脚本即可:
1 | python comment.py |
运行成功后,在设置的 repo 里会出现很多 issue,如图 :
脚本的存放位置没有要求,只要能访问到你的博客地址和 GitHub 即可。另外,GitHub 中 issue 的可以创建但是并不能删除,所以在配置时请一定检查好所有的配置项是否正确,否则会批量创建一些无用的 issue 虽然没有什么影响,但是看起来非常头疼。
注意事项!!!
上面脚本中的一段:
1 | payload = { |
即创建 issue 时的 label 如何设置,这里要与你的配置文件里的对应,否则会导致生成的 issue 无法在页面加载。
在 Next 主题中的配置文件位于 next/layout/_third-party/comments/gitment.swig
文件中:
1 | {% if page.comments %} |
这里的 id: ''
原来是 id: window.location.pathname
,这里为了避免出现 Error: Validation Failed 的异常设置为了文章标题,因此脚本里处理时,也需要设置 label 为文章标题,若你设置的 id 为其他字段,需要做相应的修改。
参考: