欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用 Python 自动监测 GitHub 项目更新

程序员文章站 2022-06-13 08:01:00
前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: GitPython PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=305 ......

前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: gitpython

ps:如有需要python学习资料的小伙伴可以加点击下方链接自行获取

项目概述

要知道github项目的更新,提醒方式是邮箱,而大家平时都是不怎么用邮箱的!

那么,如果项目更新,我们怎么能及时的发现,并打开项目主页呢?

用 Python 自动监测 GitHub 项目更新

实现过程

1)获取数据

用 Python 自动监测 GitHub 项目更新

github官方提供了详细的数据接口,并且数据是以json字符串的方式保存的。

用 Python 自动监测 GitHub 项目更新

每一个项目的数据地址,类似于本地磁盘目录。

用 Python 自动监测 GitHub 项目更新

我们通过数据接口的url地址,就可以获取到更新时间。

 1 import request
 2 ​
 3 # 1.github项目及api接口数据
 4 api = 'https://api.github.com/repos/kenwoodjw/python_interview_question'
 5 web_page = "https://github.com/kenwoodjw/python_interview_question
 6 ​
 7 # 2.发送请求,获取数据
 8 all_info = requests.get(api).json()
 9 ​
10 # 3.解析想要的数据,并打印
11 cur_update = all_info['updated_at']
12 print(cur_update)

 

2)定时监测数据变化 3)打开网页

用 Python 自动监测 GitHub 项目更新

设置一个循环,每隔10分钟获取一次update_at的数据,如果前后时间不一致,说明数据更新,并自动打开项目主页。

 1 while true:
 2 ​
 3     all_info = requests.get(api).json()
 4     cur_update = all_info['updated_at']
 5     print(cur_update)
 6 ​
 7     # 假设第一次运行之前,不知道上次的更新时间
 8     # 如果last_update 为 none,会执行下面的语句,把当前的时间给到上次时间
 9     if not last_update:
10         last_update = cur_update
11 ​
12     # 第一次两个时间相等,不会执行
13     # 假设10分钟后,cur_update更新,那么就会自动打开网页
14     # 接下来,把 当前时间 赋值 给上次时间
15     # 开始新一轮的监测
16     if last_update < cur_update:
17         webbrowser.open(web_page)
18         last_update = cur_update
19 ​
20     # 间隔 10分钟,再次while循环,观察新的更新时间是否发生变化
21     time.sleep(600)