GitAutoupdater.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import requests
  4. from urllib.request import urlretrieve
  5. import os
  6. import argparse
  7. def http_down(project, down_list=[], proxy=""):
  8. git_api = "https://api.github.com/repos/{}/releases/latest".format(project)
  9. git_releases="https://github.com/{}/releases/download/".format(project)
  10. print("获取", git_api)
  11. r = requests.get(git_api, verify=False) #不检查证书
  12. # print(soup)
  13. latest_version = r.json()["tag_name"]
  14. print('Latest version:', latest_version)
  15. git_down_url=proxy+git_releases+latest_version+"/"
  16. print('git_down_url:', git_down_url)
  17. if len(down_list):
  18. if not os.path.exists(latest_version):
  19. os.makedirs(latest_version)
  20. for i in down_list:
  21. print('down {}...'.format(i))
  22. urlretrieve(git_down_url+i, latest_version+"/"+i)
  23. print("下载完成")
  24. if __name__ == "__main__":
  25. parser = argparse.ArgumentParser()
  26. parser.add_argument("n", help="项目,譬如 yisier/nps")
  27. parser.add_argument("l", help="下载列表,譬如 windows_amd64_client.tar.gz,windows_amd64_server.tar.gz")
  28. parser.add_argument("-p", default=False, help="代理,譬如 https://ghproxy.com/")
  29. args = parser.parse_args()
  30. project = str(args.n)
  31. down_list = list_str = str(args.l).split(",")
  32. proxy = "https://ghproxy.com/"
  33. if args.p:
  34. proxy = str(args.p)
  35. http_down(project, down_list, proxy)