用 Python 自动监测 GitHub 项目更新

875 阅读1分钟

来源| GitPython

01****\

项目概述

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

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

项目地址:

github.com/kenwoodjw/p…

02****

实现过程****

1)获取数据

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

项目的数据地址:

api.github.com/repos/kenwo…

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

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


    

     import request
     

     

     # 1.Github项目及API接口数据
     

     api = 'https://api.github.com/repos/kenwoodjw/python_interview_question'
     
     

     web_page = "https://github.com/kenwoodjw/python_interview_question
     

# 2.发送请求,获取数据
all_info = requests.get(api).json()

# 3.解析想要的数据,并打印
cur_update = all_info['updated_at']
print(cur_update)

    

2)定时监测数据变化

3)打开网页

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


    

     while True:
     

     

         all_info = requests.get(api).json()
     

         cur_update = all_info['updated_at']
     

         print(cur_update)
     

     

         # 假设第一次运行之前,不知道上次的更新时间
     
     

         # 如果last_update 为 none,会执行下面的语句,把当前的时间给到上次时间
     
     

         if not last_update:
     

             last_update = cur_update
     

     

         # 第一次两个时间相等,不会执行
     
     

         # 假设10分钟后,cur_update更新,那么就会自动打开网页
     
     

         # 接下来,把 当前时间 赋值 给上次时间
     
     

         # 开始新一轮的监测
     
     

         if last_update < cur_update:
     

             webbrowser.open(web_page)
     

             last_update = cur_update
     

     

         # 间隔 10分钟,再次while循环,观察新的更新时间是否发生变化
     
     

         time.sleep(600)