def check_and_update(self): """Main function to check for updates and download if needed""" print("=" * 50) print("Chrome Updater") print("=" * 50) # Get current version current_version = self.get_current_chrome_version() if current_version: print(f"Current Chrome version: {current_version}") else: print("Could not detect current Chrome version") # Get latest version latest_version = self.get_latest_chrome_version() if latest_version: print(f"Latest Chrome version: {latest_version}") else: print("Could not fetch latest version") # Compare versions if current_version and latest_version: if current_version == latest_version: print("\n✓ Chrome is already up to date!") return # Download and install print(f"\n🔄 New version available. Downloading Chrome {latest_version}...") installer = self.download_chrome_installer(latest_version) if installer: print(f"\n✅ Download successful!") response = input("\nDo you want to install now? (y/n): ") if response.lower() == 'y': self.install_chrome(installer) else: print(f"Installer saved at: {installer}") else: print("❌ Download failed. Please check your internet connection.") def main(): updater = ChromeUpdater() updater.check_and_update()
This feature provides a complete solution for checking and downloading the latest Chrome version with proper error handling and user feedback. new version of chrome download
def get_current_chrome_version(self): """Get installed Chrome version""" system = platform.system() try: if system == "Windows": import winreg key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Google\Chrome\BLBeacon") version = winreg.QueryValueEx(key, "version")[0] return version elif system == "Darwin": # macOS result = subprocess.run( ['/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', '--version'], capture_output=True, text=True ) return result.stdout.split()[-1] elif system == "Linux": result = subprocess.run(['google-chrome', '--version'], capture_output=True, text=True) return result.stdout.split()[-1] except Exception as e: print(f"Could not get current version: {e}") return None Please check your internet connection
def download_chrome_installer(self, version=None): """Download the latest Chrome installer""" # Create download directory self.download_dir.mkdir(parents=True, exist_ok=True) system = platform.system() arch = platform.machine() # Determine download URL based on OS if system == "Windows": if arch == "AMD64": download_url = "https://dl.google.com/chrome/install/latest/chrome_installer.exe" else: download_url = "https://dl.google.com/chrome/install/latest/chrome_installer_win32.exe" filename = f"chrome_installer_{version or 'latest'}.exe" elif system == "Darwin": download_url = "https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg" filename = f"googlechrome_{version or 'latest'}.dmg" elif system == "Linux": if arch == "x86_64": download_url = "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" else: download_url = "https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb" filename = f"google-chrome-stable_{version or 'latest'}.deb" else: raise Exception(f"Unsupported OS: {system}") filepath = self.download_dir / filename print(f"Downloading Chrome installer from: {download_url}") print(f"Saving to: {filepath}") try: response = requests.get(download_url, stream=True) response.raise_for_status() total_size = int(response.headers.get('content-length', 0)) downloaded = 0 with open(filepath, 'wb') as f: for chunk in response.iter_content(chunk_size=8192): f.write(chunk) downloaded += len(chunk) # Progress indicator if total_size > 0: progress = (downloaded / total_size) * 100 print(f"\rProgress: {progress:.1f}%", end='') print(f"\n✓ Download complete: {filepath}") return filepath except Exception as e: print(f"\n✗ Download failed: {e}") return None 0)) downloaded = 0 with open(filepath
console.log(`Current: ${currentVersion}`); console.log(`Latest: ${latestVersion}`);