用python为Gitalk博客评论插件自动化创建issue

前言

​ 由于Disqus在国内加载比较慢,所以选了Gitalk作为博客的评论插件,支持markdown语法。但是Gitalk 需要手动初始化所有文章的评论或者一个一个点开界面才会创建对应的 issue,非常麻烦。这篇 自动初始化 Gitalk 和 Gitment 评论,解决了这个问题,但是自己不会Ruby,所以用python写一个脚本,顺便记录下自己踩坑的过程。

sitemap

​ sitemap可以列出网站中的网址以及关于每个网址的其他元数据,用于数据抓取,所以先通过 jekyll-sitemap 插件为博客创建对应的 sitemap 文件。

​ jekyll-sitemap插件需要Ruby环境。。。所以还是要先安装ruby(需要2.1以上的版本,注意CentOS7 yum默认安装的是2.0)

​ 1.更换gem源

# 删除默认的gem源 
gem sources --r http://rubygems.org/
# 增加ruby-china作为gem源,taobao那个已经停止维护了 
gem sources -a https://gems.ruby-china.org/
# 查看当前的gem源
gem sources
# 清空源缓存
gem sources -c
# 更新源缓存
gem sources -u

​ 2.安装jekyll-sitemap

1

​ 3.在_config.yml中添加

plugins:
    - jekyll-sitemap
    - jekyll-paginate
    
gems: [jekyll-paginate]

​ 4.安装jekyll-paginate

2

​ 5.运行jekyll,默认在4000端口开启博客服务

3

​ 6.在博客项目目录的_site文件夹下生成sitemap.xml

创建issue

​ 1.首先要在 GitHub 创建一个新的 Personal access tokens,选择 Generate new token 后,并为该 Token 添加所有 Repo 的权限

4

​ 2.抓取sitemap.xml中的所有文章url

def capture():
    url = 'https://xxx/sitemap.xml'
    html = urllib.request.urlopen(url).read()
    html = html.decode('utf-8')
    r = re.compile(r'(xxx/2018.*?</loc>)')  # 截取sitemap.xml中的所有文章url
    big = re.findall(r, html)
    for i in big:
        str = i[:-6]  # 去掉</loc>标签
        op_sitemap_url = open('sitemap_url.txt', 'a')  # 保存到sitemap_url.txt
        op_sitemap_url.write('%s\n' % str)

​ 3.自动化创建issues,并生成相关标签

def create_issues():
    suffix = ' - xxx的博客 | MY Blog'  # 自定义标题后缀
    g = Github(login_or_token="xxxxxx")  # 使用第一步创建的token登陆
    repo = g.get_repo("xxx/xxx.github.io")  # 指定仓库
    # open_issues = repo.get_issues(state='open')  # 获取仓库下open的issues
    for line in open("sitemap_url.txt"):  # 指定生成的sitemap_url
        line_ = line.rsplit('/', 2)  # 截取url获取标题部分
        title = unquote(line_[1]) + suffix  # unquote url_decode 拼接标题
        body = 'https://' + line  # 拼接https
        label = ['Gitalk', md5_label(line[13:].rstrip("\n"))]  # 标签
        repo.create_issue(title, body=body, labels=label)  # 创建issue
        
def md5_label(arg):
    hash = hashlib.md5()
    hash.update(arg.encode("utf8"))
    return hash.hexdigest()

​ 搞定!

5

​ GitHub 中 issue 的可以创建但是并不能删除,所以在配置时请一定检查好所有的配置项是否正确,虽然可以关闭issue,但是看起来还是非常头疼,强迫症表示接受不了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容