123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #!/usr/bin/env python3
- import requests
- import json
- import os.path
- from pprint import pprint
- LATEST = "https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json"
- VERFILE = "version"
- r = requests.get(LATEST)
- data = r.json()
- stable = data['channels']['Stable']
- version = stable['version']
- update = False
- # Check current version against what is available.
- if os.path.exists(VERFILE):
- with open(VERFILE, "rt") as fp:
- current_version = fp.readline().strip()
- print(f"Current version: {current_version}")
- if current_version != version:
- update = True
- else:
- update = True
- if update:
- with open(VERFILE, "wt") as fp:
- print(f"{version}", file=fp)
- print(f"Google Chrome {version}")
- if not update:
- os.sys.exit()
- # Ok, we need to update
- NEED = ("chrome", "chromedriver")
- grab = list()
- # I need chrome and chromedriver for linux64
- for d in stable['downloads']:
- if d in NEED:
- # Ok, that's something we need!
- for platform in stable['downloads'][d]:
- if platform['platform'] == "linux64":
- grab.append(platform['url'])
- break
- # Ok, lets grab some files here
- def download_file(url):
- local_filename = url.split('/')[-1]
- print(f"Download {url} to {local_filename}")
- # NOTE the stream=True parameter below
- with requests.get(url, stream=True) as r:
- r.raise_for_status()
- with open(local_filename, 'wb') as f:
- for chunk in r.iter_content(chunk_size=8192):
- # If you have chunk encoded response uncomment if
- # and set chunk_size parameter to None.
- #if chunk:
- f.write(chunk)
- print("Done")
- return local_filename
- for g in grab:
- download_file(g)
- # Ok, now what needs to be done?
- # run ./set-bin.sh script!
- #
- # unzip, remove chrome-linux64, chromedriver-linux64 directories.
- # pprint(stable)
- # pprint(grab)
- """
- {'channel': 'Stable',
- 'downloads': {'chrome': [{'platform': 'linux64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/linux64/chrome-linux64.zip'},
- {'platform': 'mac-arm64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/mac-arm64/chrome-mac-arm64.zip'},
- {'platform': 'mac-x64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/mac-x64/chrome-mac-x64.zip'},
- {'platform': 'win32',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/win32/chrome-win32.zip'},
- {'platform': 'win64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/win64/chrome-win64.zip'}],
- 'chrome-headless-shell': [{'platform': 'linux64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/linux64/chrome-headless-shell-linux64.zip'},
- {'platform': 'mac-arm64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/mac-arm64/chrome-headless-shell-mac-arm64.zip'},
- {'platform': 'mac-x64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/mac-x64/chrome-headless-shell-mac-x64.zip'},
- {'platform': 'win32',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/win32/chrome-headless-shell-win32.zip'},
- {'platform': 'win64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/win64/chrome-headless-shell-win64.zip'}],
- 'chromedriver': [{'platform': 'linux64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/linux64/chromedriver-linux64.zip'},
- {'platform': 'mac-arm64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/mac-arm64/chromedriver-mac-arm64.zip'},
- {'platform': 'mac-x64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/mac-x64/chromedriver-mac-x64.zip'},
- {'platform': 'win32',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/win32/chromedriver-win32.zip'},
- {'platform': 'win64',
- 'url': 'https://storage.googleapis.com/chrome-for-testing-public/134.0.6998.35/win64/chromedriver-win64.zip'}]},
- 'revision': '1415337',
- 'version': '134.0.6998.35'}
- """
|