做为一个程序猿,github是我们经常使用的网站之一。
但是上面大佬太多,还有各种非常牛逼的开源项目,为了达到我学(zhuang)习(bi)的目的,我关注了很多大佬,看大佬都star了哪些项目,紧跟大佬的步伐。
虽然github是有邮件提醒的功能,但说实在的除了工作邮箱经常使用,其余的邮箱只是偶尔查看一下,完全没办法满足我想第一时间知道大佬动态的需求,所以只好自己动手丰衣足食。
拿崔大的github举例,我们首先要获取崔大github上star了哪些项目,当出现新的项目的时候,就提醒我们或者打开项目页面。
首先我们找到github上关于用户star项目的api:
https://api.github.com/users/{用户名}/starred
其次,分析访问api返回的信息,用浏览器打开可以看到页面显示的内容格式是json,json中id就是star的项目的唯一标识。
我们只需要获取全部的id,当有新的项目id出现时,提醒我们就可以完成我们紧跟大佬步伐的需求了。
以崔大的github为例,当有新的star项目时为我们打开项目地址,且每10分钟检测一次:
import requests
import webbrowser
import time
# api指定了follow的这个人star的所有项目,该用户是Germey
api = "https://api.github.com/users/Germey/starred"
# 先访问一次api,获取star列表
info = requests.get(api).json()
starred = []
# 将star列表中的项目id存到list变量中
for i in info:
starred.append(i['id'])
while True:
# 获取star的项目
info = requests.get(api).json()
for i in info:
# 如果当前项目id在list变量中不存在,则说明是刚刚star的项目
if not i['id'] in starred:
starred.append(i['id'])
# 获取项目名称
repo_name = i['name']
# 获取作者名称
owner = i['owner']['login']
# 在浏览器中打开项目
web_page = "https://github.com/" + owner + "/" + repo_name
webbrowser.open(web_page)
# 每隔600秒(10分钟)检查一次
time.sleep(600)
这样就完成了我们想要学(zhuang)习(bi)的目的了。